字符串运算符
<?php
$a = 123;
$a .=987;
var_dump($a);
?>
结果:string(6) "123987";
结论: .=得到的是字符串型的数据。
关系运算符
$i = 10;
if ($i = 0) {
echo "true";
}else{
echo "false";
}
结果:false;
结论:把0赋值给10,输出整型0,0表示false,所以返回为false。
字符当数字:用加号;
数字当符号:用.;
比较运算符
== 和 === 的区别
$a = 'hhh';
if ($a == 0) {
echo "true";
}else{
echo "false";
}
结果:true
结论:当用“==”用于字符串和数字之间做比较运算,会进行自动转换,将字符串部分转会为数字(具体转换时根据字符串第一个字符决定,如果第一个字符为数字,则结果为数字,否则将整个字符串当作0进行判断。)
“===”用于对类型和数据同时做判断。
逻辑运算符
逻辑与(&&):当两边同时为真的时候,整个表达式才为真;
逻辑或(||):当两边同时为假的时候,整个表达式才为假;
逻辑非(!):非真即假,只有一个表达式参与判断;
异或(xor):两边同时为假或同时为真时,结果为假,
两边一真一假时,结果为真。
条件运算符
条件表达式?值1:值2;
成立,执行值1,不成立,执行值2;
位运算符
& 按位与,表示两个位都同时为1的时候,返回1,否则就返回0(和逻辑与做类比)
| 按位或,表示两个位都同时为0的时候,返回0,否则就返回1(和逻辑或做类比)
~ 按位非,非1即0,非0即1(和逻辑非做类比)
^ 按位异或,如果两个位不同,返回1,否则就返回0(和逻辑异或做类比)
<< 按位左移,将整个字节向左移动,右边用0填充!
>> 按位右移,将整个字节向右移动,正数左边用0填充,负数左边用1填充
其他运算符:
错误抑制符(@):抑制错误信息的提示,不代表错误信息不存在。
流程控制语句
顺序结构
是整个脚本程序的基本结构!
选择结构
分为:if语句,if else语句,if elseif语句和switch语句。
If语句中,括号内的结果为一个bool型:true和false;
If和switch的区别:
If属于条件分支(在我理解,当结果不明确的时候,用if,比如判断一个数的范围),switch属于状态分支(在我理解,当结果明确的几个值的时候,比如判断一年的春夏秋冬);
循环结构
While括号中的值为bool型:true或false;
While和do-while的区别:
1.do-while的循环语句保证会执行一次;
2.Do-while的表达式可能会依存循环体而进行判断;
3.Do-while是在循环结束时进行判断而不是开始时,进行判断。
for
第一个表达式在循环开始前无条件求值(并执行)一次。
第二个在每次循环开始前求值。如果值为 TRUE ,则继续循环,执行嵌套的循环 语句。如果值为 FALSE ,则终止循环。
第三个在每次循环之后被求值(并执行)。
循环中断语句
Continue和break的区别:
Continue跳过此次循环,执行下次循环;
Break中断整个循环。
中断层次
指的是从当前中断语句开始算起,往外层循环中断的层数,默认值是1,
比如
break 1 中断当前循环
break 2 中断当前循环和上一层循环
例如,当双层for循环的时候,在内层循环的时候执行break2,则外层循环和内层循环同时结束。
GO TO
用于跳到循环指定的位置。