PHP运算符分为:
1:算术运算符:加:+, 减:-, 乘:, 除:/, 取余:%
2:字符串运算符:字符运算符只有一个,即英文的句号:“.”
3.赋值运算符:赋值运算符是把基本赋值运算符“=”右边的值赋给左边的变量或常量,常用赋值运算符有:=, +=, -=, =, /=, .=, %=
4.递增或递减运算符:++,—
5.逻辑运算符:逻辑与:&&或and, 逻辑与或||或or, 逻辑异或:xor, 逻辑非:!
6.比较运算符:小于:<, 大于:>, 小于或等于:<=, 大于或等于:>=, 相等:==, 不等:_=, 恒等:===, 非恒等:!==
以下选重点及易错运算符演示:
1.在算术运算符里,/和%很容易混淆,/是除,%是取余数,例如:
echo 10/3;//3.3333333333333
echo 10%3;//1
判断一下去年是不是闰年:
$last_year = date("Y")-1;
if($last_year % 4===0 && $last_year %100 !==0){
printf('%d年是闰年',$last_year);
}else{
printf('%d年不是闰年',$last_year);
}
//运算结果是:2020年是闰年
2.自增和自减运算符在前后的意义:
++$a或—$a是先执行 $a=$a+1,或者$a=$a-1,再用$a,例如:
$a = 10;
printf ('++a=%d,$a=%d',++$a,$a);//++a=11,$a=11
printf ('++a=%d,$a=%d',$a++,$a);//++a=10,$a=11
3.用”.=”做字符串拼接:
$str = "I am:";
$str .= "Jasper";
echo $str;//I am:Jasper
4:==和===的差别:==只要值相等就是true,如果二边类型不同会自动转换,例如:
var_export(100=="100");//true
//展开就是:
var_export(100==(int)100);
//或者:
var_export((string)100=="100");
===是要求值和类型都相同才返回true:
var_export(100==="100");//false
var_export(100===(int)"100");//true
5.太空船运算符:<=>:用于比较两个表达式 $a 和 $b,如果 $a 小于、等于或大于 $b时,它分别返回-1、0或1。例如:
var_export (1<=>1);//0
var_export (1<=>2);//-1
6.三元运算符简化if(){}else{}:
if条件:
$age=18;
if($age>=18){
echo "可以去酒吧玩耍!";
}else{
echo "小孩子好好学习不要去酒吧!";
};
使用三元运算简化后:
echo $age>=18?"可以去酒吧玩耍!":"小孩子好好学习不要去酒吧!";
7.null合并运算符(??)
例如原表达式为:
if(isset($a)){
$a;
} else {
$b;
};
简化成null合并运算符:
$a ?? $b;//$a是不是是null,如果不为null,则返回$a,否则返回$b;
1:单分支:
$score = 80;
if($score>=60){
echo "恭喜你本校录取了!";
}
//php替代语法:
if($score>=60):
echo "恭喜你本校录取了!";
endif;
2.双分支:
if($score>=60){
echo "恭喜你本校录取了!";
}else{
echo "继续努力吧同学!";
};
//PHP简化替代语法:
if($score>=60):
echo "恭喜你本校录取了!";
else:
echo "继续努力吧同学!";
endif;
3.三元表达式:
echo $score>=60?"恭喜你本校录取了!":"继续努力吧同学!";
4.多分支:
if($score>100){
echo "请输入一个合法的分数!";
}elseif($score<80 && $score>=60){
echo "恭喜你被本校录取!";
}elseif($score>=80){
echo "恭喜你被本校录取并可以申请奖学金!";
}else{
echo "继续努力吧同学!";
};
//PHP简化替代语法:
if($score>100):
echo "请输入一个合法的分数!";
elseif($score<80 && $score>=60):
echo "恭喜你被本校录取!";
elseif($score>=80):
echo "恭喜你被本校录取并可以申请奖学金!";
else:
echo "继续努力吧同学!";
endif;
5.用switch判断现在的季节:
$month = date("n");
switch ($month){
case 3 || 4 || 5:
echo "Spring";
break;
case 6 || 7 || 8:
echo "Summer";
break;
case 9 || 10 || 11:
echo "autumn";
break;
case 12 || 1 || 2:
echo "winter";
break;
default:
echo "No such of month in a year...";
};
**//PHP简化替代语法:**
switch ($month):
case 3 || 4 || 5:
echo "Spring";
break;
case 6 || 7 || 8:
echo "Summer";
break;
case 9 || 10 || 11:
echo "autumn";
break;
case 12 || 1 || 2:
echo "winter";
break;
default:
echo "No such of month in a year...";
endswitch;
循环结构有三要素:1循环条件的初始值,2循环条件,3更新循环的条件
1:入口型:
$movies_name = ["无依之地","一秒钟"," 穷途鼠的奶酪梦","女人的碎片","刻在你心底的名字"];
$i=0;
while($i<count($movies_name)){
echo $movies_name[$i]."<br>";
$i++;
};
2.出口型:do{…}while(),就算当前条件为false,也要先干一次再判断
$i=0;
do{
echo $movies_name[$i]."<br>";
$i++;
}while($i<count($movies_name));
3.计算式:for,可以当作是while的简化,可以在循环体中加入条件判断,continue:进入到下一轮,break:直接退出循环
for($i=0;$i<count($movies_name);$i++){
//跳过这部电影:
if($movies_name[$i]=="女人的碎片") continue;
echo $movies_name[$i]."<br>";
};
4.直接遍历所有电影:
foreach ($movies_name as $movie){
if($movie=="女人的碎片") break;//提前跳出循环
echo $movie."<br>";
};
require() 语句的性能与 include() 相类似,都是包括并运行指定文件
include是在运行阶段包含,所以可以用在if中
include与require最大的区别就是:
include在引入不存文件时产生一个警告且脚本还会继续执行,
require则会导致一个致命性错误且脚本停止执行。
include_once和require_once:只包含一次