1.字符串
(1).双引号解析变量,单引号不解析变量;
(2).字符串内的变量后面要接上特殊字符,例如空格等分开,若不想有空格,也可用{};
(3).双引号解析转义字符(\n,\t),单引号不解析转义字符,但单引号能解析\'和\;
(4).单引号效率高于双引号;
(5).双引号当中插入单引号,单引号当中插入变量,这个变量会被解析;
(6).用.来拼接字符串;
(7).用定界符声明字符串如同双引号,例:$dingjie = <<<A ...... A;
2.浮点型的两个声明
(1).普通声明:$a = 1.123; echo $a;
(2).科学声明:$a = 1.123; var_dump($a);
3.NULL类型的产生
(1).直接赋值为NULL:$a = null;
(2).未定义的变量;
(3).使用函数unset()将变量销毁;
4.跟NULL相关的两个函数
(1).empty():参数为一个变量,该变量的值若为false或为null的话,返回true;
(2).isset():参数为一个或多个变量,只要有其中一个变量为null的话,则返回false,否则返回true;
5.判断数据类型
使用is_types系列函数判断变量的数据类型,如:
is_int()
is_bool()
is_float()
is_string()
is_array()
is_object()
is_null()
is_resource()
is_callable() 等。
6.布尔值判断时的自动类型转换
(1).整型的0为假,其它整型值全为真;
(2).浮点型的0.0布尔值为假;
(3).空字符串为假;
(4).字符串的0,也看作为假;
(5).空数组为假;
(6).空也为假;
(7).未声明成功的资源也为假;
7.其它类型参与运算时的自动类型转换
(1).布尔值的true参与运算时会变成整型或浮点型的1,而false会变成整型或浮点型的0;
(2).字符串开始处为整型或浮点型的字符,参与运算时会取出该整型或浮点型转换成相应的类型参与运算;
8.强制类型转换
(1).用intval()、floatval()、strval()类型转换函数可完成相应的类型转换;
(2).变量前加上(),里面写上类型,可把某变量转换后赋值给其它变量;
(3).可用函数settype(变量,'类型'),直接改变变量本身;
9.常量——define('常量名','内容')
(1).常量值只能为标量(比如:整型、浮点型、字符串类型);
(2).常量名不限制大小写,但通常大写;
(3).在define()函数里填写常量名参数时可不用引号括起来,但通常加引号;
(4).在字符串中调用常量时,必须在引号外用.连接,例:$a = 'abc' . CHANGLIANG;
(5).常量名建议只用字母和下划线;
10.安全机制——defined('常量')
(1).功能:参数为常量,若常量定义了就返回true,否则返回false;
(2).作用:主要防止其他人绕过安全检查文件,举个例子:
我们在一个php文件(version.php)里写上一些安全检查(检查版本号、版本声明或者授权声明等)的语句,并在这个文件里添加一个常量define('CHECK', true);
而在另一个写业务代码的php文件里,我们就可以用
include 'version.php';
if(defined('CHECK'))
来判断是否加载并读取了安全文件。
11.可变变量、外部变量、环境变量和变量引用
(1).可变变量,即变量的变量,好比套娃,如:
$shu = 'biao';
$biao = '鼠标';
echo $$shu; //结果为鼠标,想套几个都没问题
(2).外部变量,即PHP在使用过程中规定好的一些变量,如:
$_COOKIE:得到会话控制中cookie传值;
$_SESSION:得到会话控制中session传值;
$_FILES:得到文件上传的结果;
$_GET:得到表单get传值的结果(get传值在url中可见,是不安全的);
$_POST:得到表单post传值的结果(post传值在url中不可见,是通过浏览器header头部分将数据发送给指定服务器的,要通过专门的工具才能看到post传的值是什么,相对安全);
$_REQUEST:既能得到get的传值结果,也能得到post的传值结果;
注意,以上这些外部变量全是超全局的,这意味着它们在一个脚本的全部作用域都可用。
(3).环境变量可在phpinfo()里找,主要为$_SERVER[""]。
(4).变量引用,好比指针,指向同一存储空间,例:
$a = 1;
$b = &$a;
$b = 2;
结果b为2,a也为2。
12.赋值运算
$x += $y——$x = $x + $y
$x -= $y——$x = $x - $y
$x *= $y——$x = $x * $y
$x /= $y——$x = $x / $y
$x %= $y——$x = $x % $y
$x .= $y——$x = $x . $y
13.自加自减
$x++:先赋值后加
$x--:先赋值后减
++$x:先加后赋值
--$X:先减后赋值
14.比较运算符
>,<,>=,<=,!=,==,===,!==,注意,后两个全等于和全不等除了会判断数据,还会判断数据类型。
15.逻辑运算符
&&:逻辑与,都为真则返回真;
||:逻辑或,都为假返回假,其余为真;
!:逻辑非,真变假,假变真;
xor:逻辑异或,即相同取假,相异为真;
注意,&&和||为短路写法,即只要第一个条件符合了,第二个条件就不进行了,非短路写法可用&和|,这样无论第一个条件符不符合,第二个条件都进行。
16.三元运算符和其它运算符
(1).三元运算符:$x ? 真代码段 : 假代码段,例:
$x ? $y = 5 : $y = 6; //即如果$x为真,则$y = 5,否则$y = 6。
(2).反引号``,反引号里插入命令,执行系统命令,等价于shell_exec函数。
(3).@:单行错误抑制符(尽量少用或不用,效率低下)。
(4).=>:数组下标访问符。
(5)->:对象访问符。