php(2)

基础语法

初步语法

PHP是一种运行在服务器端的脚本语言,可以嵌入到HTML中。(HTML是通过浏览器解析,PHP是通过PHP引擎解析,那么嵌入到里面以后如何区分什么时候通过什么来解析?)

**PHP注释:*行注释://(双斜杠)或# 块注释:/ */

PHP语句分隔符:

1、在PHP中,代码以行为单位,系统需要通过判断行的结束,通常都用;表示结束。

注注注:PHP中标记结束符?>有自带语句结束符的效果,最后一行PHP代码可以没有语句结束符。

2、PHP中代码的书写并不是全嵌入到HTML中,而是单独存在,所以可以不用标记结束符?>

变量

1、变量是用来存储数据的; 2、变量是存在名字的;

3、变量是通过名字访问数据的; 4、变量的数据是可以改变的。

变量的使用

1、定义:在系统中增加对应的变量名字(在内存中开发一块地)

2、赋值:将数据赋值给变量(在定义时直接初始化)

3、可通过变量名访问数据

4、变量可从内存中删除

// 定义时不需要关键字,但必须使用$符号
$var1;
$var2 = 1;
echo $var2;   // 访问变量,通过变量名找到数据,并显示
$var2 = 2;        // 修改变量
echo '<hr/>',$var2;    // hr/“ 为下划线,分隔符
unset($var2); // 删除变量,从内存中剔除 
echo $var2;   // 此时会报错,因为不存在变量
变量命名规则

1、变量名字必须以"$"开头;

2、变量名可由数字、字母、下划线命名,但必须以字母和下划线开头

3、允许中文变量;

预定义变量

即提前定义的变量,由系统定义的变量,存储许多要用到的数据(预定义变量都是数组)。

可变变量

如果一个变量保存的值刚好是另外一个变量的名字,则可直接通过访问一个变量得到另外一个变量的值:但需在变量前多加一个$符号

$a = 'b';    // a变量的内容正好是b变量的名称,故称a为可变变量
$b = 'bb';
echo $$a;    // 使用时需加一个$符号
变量传值

将一个变量赋值给另一个变量:值传递、引用传递

值传递:将变量保存的值复制一份,并将该值给另外一个变量保存(两个变量无关系)

引用传递:将变量保存值所在的内存地址传递给另外一个变量,两个变量同指一块内存(名字不一样而已)。

值传递
// 值传递
<?php
 
// 2.1 执行此行,在栈区开辟一块内存存储$a,在数据段中开辟一块内存保存值1。然后将1所在位置赋值给a变量
$a = 1;   
// 2.2 栈区开辟存储$b;发现是赋值运算,故会取出$a的值,
// 并在数据段重新开辟一块内存并保存,且再把新开辟地址赋值给栈区的变量b
$b = $a;   // 值传递
// 2.3 执行该行
$b = 2;
echo $a,$b;
引用传递
// 引用传递
<?php

// 2.1 执行此行,在栈区开辟一块内存存储$a,在数据段中开辟一块内存保存值1。然后将1所在位置赋值给a变量
$a = 1;   
// 2.2 栈区开辟存储$b;发现是引用运算,故会取出$a的地址,并将该地址给栈区的变量b
$b = $a;   // 值传递
// 2.3 执行该行
$b = 2;
echo $a,$b;

常量

常量与变量一样,均是用来保存数据的。

常量的基本概念

const/constant:是在程序运行中,不可改变的量(数据);常量一旦定义,通常不可更改。

常量定义的形式
定义方式

1、使用定义常量的函数:define(‘常量名’,常量值)——类似于c++的 #define

2、const

<?php
// 使用函数定义常量
define('PI',3.1415);   // 注意此处与c++不同,#define 为预处理命令,宏定义,无需加;。。
// 使用const关键字定义
const PI1 = 3;

// 定义特殊常量
define('^-^','smile');
// const ^-^   // 报错

// 访问常量
echo PI1;
// echo ^-^   // 报错
constant('^-^');  // 特殊常量的访问

// 系统常量
echo '<hr/>',PHP_VERSION,'<br/>',PHP_INI_SIZE,'<br/>',PHP_INI_MAX;   // 有符号整形

// 魔术常量
echo '<hr/>',__DIR__,'<br/>',__FILE__,'<br/>',__LINE__; 
echo __LINE__;  // 输出的行数会变
常量命名规则:

1、常量不需要使用"$"符号,一旦使用被认为是变量

2、变量名可由数字、字母、下划线命名,但必须以字母和下划线开头(const定义)

3、常量的名字通常是以大写字母为主(与变量以示区别)

4、变量命名的规则比变量要松散,可以使用一些特殊字符(define函数)

5、变量通常不区分大小写,但可以区分(define函数的第三个参数)

系统常量

魔术常量:由双下划线+常量名+双下划线组成,其值会随着环境变化而变化,用户无法改变。

数据类型

数据类型:data type,在PHP中指的是数据本身的类型,而不是变量的类型。PHP是一种弱类型语言,变量本身没有数据类型。

PHP八大数据类型

在这里插入图片描述

转自:https://www.cnblogs.com/wayne173/p/3768247.html

类型转换

很多情况需要指定数据类型,需要将外部数据类型(当前PHP获得的数据)转换成目标数据类型。

两种转化方式:

1、自动转化:系统根据自己的需求判断,自己转化(用的较多、但效率较低)。

2、强制转换(手动):在变量之前增加一个(),并在括号里面写上对于的类型,其中NULL特殊,需用unset。

转换说明:

1、以字母开头的字符串,永远为0;

2、以数字开头的字符串,取到碰到字符串为止。(不会同时包含两个小数点)

<?php
// 数据类型
// 创建数据
$a = 'abcd1.1.1';
$b = '1.1.1abc';

// 自动转换。算术运算,系统先转化为数值类型,然后运算
echo $a+$b;  //   结果为1.1(0+1.1)

// 强制转换
echo '<br/>',(float)$a,(float)$b;  // 01.1

// 类型判断
echo '<hr/>';
var_dump(is_int($a));         // bool(FALSE)
var_dump(is_string($a));      // bool(TRUE)

// 获取数据类型
echo '<hr/>';
echo gettype($a);    // string(虽然前面强制转换了,但并未改变本身)

// 设置类型
// var_dump 输出展示展示代码内容,结构与类型。该函数作可以窥探所有内容的类型,以及内部信息
var_dump(settype($b,'int'));    // 先将字符串转换为int型,转换成功返回true,var_dump判断是否为bool型,故显示                                 bool(true)
echo gettype($b),$b;     // interger1
整数类型
<?php

/*
十进制转换二进制----->除以2
10  1010  注:不管结果ruhr,均需补足32位:00000000 00000000 00000000 00001010
*/

// php中提供了很多函数进行转换:
// Decbin():十进制转二进制
var_dump(decbin(107));     // 结果:string(7) "1101011"
// 同理,还有Decoct():十进制转八进制
// Dechex():十进制转十六进制
// Bindec():二进制转十进制

*/
浮点数类型

问:为什么浮点数和整型均占用四个字节,为什么比整型表示的范围大?

整型数据的32位均通过*2转化为十进制。而浮点型中,前八位的后七位为指数,所以表示的范围要大。

另,实际使用时,尽量不用浮点型数字做精确判断,且计算机中凡是小数基本上均不准确。

<?php

// 浮点数的定义
$f1 = 1.23;
$f2 = 1.23e10;
$f3 = PHP_INT_MAX+1;   // 若整型超过自身存储的大小之后会自动改为浮点型存储

var_dump($f1,$f2,$f3);
// 结果:float(1.23)float(1.2300000000) float(214748348)

// 浮点数判断
$f4 = 0.7;
$f5 = 2.1;
$f6 = $f5/3;
var_dump($f6 == $f4);      // 结果:bool(false),,因此其不能进行精确判断

小结

php的变量常量并不难理解,基础语法和逻辑也一样,把他和其他的编程语言的不同着重强化一下,掌握起来据没什么大问题了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值