第四章:第13节 PHP运算符-字符串运算符、赋值运算符、三元运算符

更新于:2019-11-27 21:03:36

字符串运算符


其实只有一个:  “.” ,前面也讲过了。



1.png


结果:


1.png


由上面的运算符衍生出一个新运算符“.=”


1.png

结果和上面的是一样的。$a .= $b => $a = $a + $b;


需要注意的地方,“.=”运算符是一个整体,中间不能有空格。


大家可能看到了,楠神在写代码时,在一些运算符、变量之间会有空格,其实空格可以不用加的,这只是楠神的编程习惯,有空格更美观,代码不显得紧凑。


赋值运算符


赋值运算符只有一个“=”


赋值运算符可以这样用:


1.png

结果:

1.png


由“=”衍生多个赋值运算符 “+=”、“-=”、“*=”、“/=”、“%=”、“.=”,这几个赋值运算符中间都不能有空格。



基本形式为:$变量  赋值运算符   数据2;

这些衍生的赋值运算符,是这种运算的一个简化形式:

$v  =  $v  [算术/字符串运算符]  数据2;//某个变量跟另一个数据进行某种运算之后的结果再存入该变量

对比(它不是这种形式的简化):

$v  =  数据2  [算术/字符串运算符]  $v; //这种形式不应该简化



$a += $b => $a = $a+$b;


$a -= $b => $a = $a-$b;


$a *= $b => $a = $a*$b;


$a /= $b => $a = $a/$b;


$a %= $b => $a = $a%$b;


三元运算符


三元运算符其实是逻辑运算符和赋值运算符的结合体

 

三元运算符需要至少3个数据参与!


形式为:数据1  ?  数据2 :数据3


通常,数据1最终应该是一个布尔值(如果不是,则会当作布尔值来使用)。


含义:

如果数据1为true,则运算结果为数据2, 否则运算结果为数据3


典型举例:

$score = 66;

$result 1=  $score >= 60  ?  “及格”  : “不及格”;  //结果是“及格”

 

$result 2=  $score  ?  “及格”  : “不及格”;  //结果是“及格”,但含义完全不同,因为即使分数是33,也是及格。只有分数为0才是不及格。


1.png

结果:


1.png


三元运算符可以转换为if else语句来实现:

if( $score >= 60){
    $result1 = “及格";
}else{
    $result1 = “不及格";
}


拓展:


从php5.3开始


(expr1) ?: (expr3)


在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。


$b = $a ?: 1; 等同于 $b = $a ? $a : 1; 


从PHP7开始


(expr1) ?? (expr3)  它和  ?:  相似,被称为“NULL 合并运算符”。


$a = $a ?? 1;  等同于 $b = isset($a) ? $a : 1;


两者区别:


$b = $a ?: 1;  当$a未定义时,?: 会报一个 未定义变量的notice错误级别。而且$a必须为true才返回$a。


$b = $a ?? 1; 当$a定义过且值不为null,即返回$a。当$a未定义时,??不会报错,返回1。



本节学习代码》》》