一、变量引用
01、引用操作符 & 可以在关联赋值中使用,就像一个别名,使得变量都指向了内存的相同地址
<?php $a = 5; $b = &$a; echo $b; //输出5 $a = 7; echo $b; //输出7 ?>
02、只有变量才有地址,也就是只有变量才能有引用;
03、一个变量发生变化,另一个变量的值也会变化;
04、在使用 unset() 函数时,如果有引用关系,只是解除了这种引用关系,只删除一个名字,另一个还存在;
05、如果两个变量是引用关系,一个改变,另一个也会改变,但如果给其中一个引用,不是普通的值,而是一个新的引用,则改变引用关系;
2、变量类型 - PHP支持八种原始类型 -- var_dump()
01、四种标量类型:布尔型、整型、浮点型、字符串
02、两种符合类型:数组、对象
03、两种特出类型:资源(Resource)、NULL
3、当其他类型转换为 boolean 类型时,以下值被认为是 FALSE:
01、布尔值FALSE;02、整型值 0;03、浮点型值 0.0(零)04、空白字符串和字符串 “0”;05、没有成员变量的数组(空数组);06、没有单元的对象(仅适用于PHP 4);07、特殊类型 NULL (包括尚未设定的变量);
二、字符串
01、一个字符,和多个字符都是字符串(php);
02、声明一个字符串必须使用单引号 或 双引号引起来;
03、字符串是没有长度限制;
04、在单引号中能使用双引号,在双引号中也可以使用单引号;
05、在单引号中不能再使用单引号,在双引号不能再使用双引号;
06、可以使用转义字符 : ;
07、字符串特殊字符:: (换行) ; (回车) ; (水平线) ; \ (反斜线) ;$ (美元符) ;" (双引号);
08、双引号可以解析变量和转义字符,单引号不可以;
09、尽量使用单引号。
10、定界符号声明字符串:使用 <<< 小于号,在开始的定界符(自定义的字符串中)一定要左边挨着 <<< ,写完定界的字符串,一定要直接回车(空格都不可以),
在结尾的字符串定界中,一定要顶头写和开始的字符串要一致,并写完直接回车(空格都不能有);
//将hello改成'hello',定界符的作用变成单引号作用 $str =<<<hello shi is a content hello
三、数据类型之间的转换
1、强制转换;
01、获取变量类型:var_dump();getType(变量);
02、设置变量类型:setType(变量,类型); ----- 是将原变量给转换
03、在变量使用时,前面加上类型符号,转换(例:$d = (int)$int ) ---- 是在赋值时给新变量一个新类型,原变量类型不变
04、intval(),floatval(),strval()
2、变量类型的测试函数:
//变量类型的测试函数: is_bool(var);//判断是否为布尔型 is_int(var);//is_integer()、is_long() 判断是否为整型 is_float(var);//is_double()、is_real(); 判断是否为浮点型 is_string(var);//判断是否为字符串 is_array(var);//判断是否为数组 is_object(var);//判断是否为对象 is_resource(var);//判断是否为资源类型 is_null(var);//判断是否为null is_scalar(var);//判断是否为标量 is_numeric(var);//判断是否是任何类型的数字和数字字符串 is_callable(name);//判断是否是有效的函数名 $a = true if (is_bool()) { # code... echo "true"; }
四、常量(一旦声明,常量的值就不会改变)
1、常量是使用函数 define() 声明;
<?php $root = "localhost"; define("ROOT", 100); echo ROOT; ?>
2、如果常量没有声明,则常量名在使用时,会自动转为字符串;
3、常量名称,不要加 $ 符号;
4、常量名称,默认是区分大小写的,习惯上常量名称全部大写;
5、可以使用 define()第三个参数来决定是否让这个常量名称区分大小写:true 、false;
6、常量的值只支持标量数据类型;
7、常量不能使用 unset()释放一个常量;
8、可以使用 defined();判断一个常量是否存在;
五、位运算符
1、& => 按位与 两个二进制数相比同为真才为真
2、| => 按位或 两个二进制数相比一个为真才就为真
3、^ => 按位异或 相同为假不同为真
4、~ => 按位取反
5、<< => 左移 二进制整体向左移动N个位数,移几位乘几次2
6、>> => 右移 二进制整体向右移动N个位数,移几位除几次2