一.PHP运算符
PHP运算符分为:
1:算术运算符:加:+, 减:-, 乘:, 除:/, 取余:%
2:字符串运算符:字符运算符只有一个,即英文的句号:“.”
3.赋值运算符:赋值运算符是把基本赋值运算符“=”右边的值赋给左边的变量或常量,常用赋值运算符有:=, +=, -=,=, /=, .=, %=
4.递增或递减运算符:++,—
5.逻辑运算符:逻辑与:&&或and, 逻辑与或||或or, 逻辑异或:xor, 逻辑非:!
6.比较运算符:小于:, 小于或等于:<=, 大于或等于:>=, 相等:==, 不等:_=, 恒等:===, 非恒等:!==
以下选重点及易错运算符演示:
1.在算术运算符里,/和%很容易混淆,/是除,%是取余数,例如:
echo10/3;//3.3333333333333
echo10%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;
二.PHP的流程控制与循环结构
流程控制:
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){
case3||4||5:
echo"Spring";
break;
case6||7||8:
echo"Summer";
break;
case9||10||11:
echo"autumn";
break;
case12||1||2:
echo"winter";
break;
default:
echo"No such of month in a year...";
};
**//PHP简化替代语法:**
switch($month):
case3||4||5:
echo"Spring";
break;
case6||7||8:
echo"Summer";
break;
case9||10||11:
echo"autumn";
break;
case12||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
echo $movies_name[$i]."
";
$i++;
};
2.出口型:do{…}while(),就算当前条件为false,也要先干一次再判断
$i=0;
do{
echo $movies_name[$i]."
";
$i++;
}while($i
3.计算式:for,可以当作是while的简化,可以在循环体中加入条件判断,continue:进入到下一轮,break:直接退出循环
for($i=0;$i
//跳过这部电影:
if($movies_name[$i]=="女人的碎片")continue;
echo $movies_name[$i]."
";
};
4.直接遍历所有电影:
foreach($movies_nameas$movie){
if($movie=="女人的碎片")break;//提前跳出循环
echo $movie."
";
};
三.include和require引入的差别
require() 语句的性能与 include() 相类似,都是包括并运行指定文件
include是在运行阶段包含,所以可以用在if中
include与require最大的区别就是:
include在引入不存文件时产生一个警告且脚本还会继续执行,
require则会导致一个致命性错误且脚本停止执行。
include_once和require_once:只包含一次