php运算符

算术运算符

有以下几个:+   -   *    /    %    ++    --

注意:注意取余运算%,先取整,再取余

$v1 = 7.5 % 3; //结果是:1

$v2 = 7.5 % 3.5; //结果是:1

对比js中:——js中, 不会进行取整处理

var  v1 = 7.5  %  3 //结果是:1.5

var  v2 = 7.5  %  3.5; //结果是:0.5

自增自减运算符:

常规:对数字进行自加1或自减1。

字符串: 只能自增,且自增的效果就是“下一个字符”

布尔值递增递减无效

null递减无效,递增结果为1

前加加和后加加的区别:

++:先完成变量的递增运算,再取得该变量的值参与别的运算。

++:先将原来变量的值临时存储,再将变量值递增,最后再将临时存储的值参与别的运算。

推论1:如果独立语句中进行自加运算,前自加后自加没有区别 。

推论2:如果前自加后自加是放在别的语句中,则会有所区别。

推论3: 前加加比后加加效率略高(在循环中建议使用前加加)。

比较运算符:

包括:>   >=    <    <=    ==松散相等    !=    ===严格相等     !==

=====的区别:

==:松散相等,比较的是两个数据“类型转换之后”是否有可能相等,也常常认为是“数据内容是否相同”

===:严格相等,全等,只有两个数据的类型和数据的内容都完全一致,才相等。

严重推荐参考手册〉〉附录〉〉类型比较表

常见不同类型的比较(主要指标量类型的数据)——非正常比较

正常比较——数字的大小比较

如果有布尔值,均转为布尔值比较:规则:true > false

否则,如果有数字,均转为数字比较:

否则,如果两边都是纯数字字符串,转为数字比较

否则,就按字符串比较

字符串的比较规则为:按字符的先后顺序依次一个一个比较,发现哪个大,则就表示整体大,后续不再比较

逻辑运算符:&&   ||   !

前提:都是针对布尔类型的值进行的运算,如果不是布尔,就会转换为布尔。

逻辑与:

规则(真值表):

true && true   ==> true;

true && false ==>false

false && true ==>false;

false && false ==>false;

只有两个都是true,结果才是true

只要有一个是false,结果就是false

逻辑或:

规则(真值表):

true || true   ==> true;

true || false ==>true

false || true ==>true;

false || false ==>false;

只有两个都是false,结果才是false

只要有一个是true,结果就是true

逻辑非:

!true ==> false

!false ===>true

短路现象之逻辑与短路:

在实际应用中,参与逻辑运算的数据,往往都不是直接的布尔值,而是有关计算之后的布尔结果值。

大致如下:

if(  IsFemale( $uName )  &&  isAge($uName) > 18){

......echo “女士优先”

}

此时,如果IsFemale()函数判断的结果是false,那么后续的函数isAge()就不再调用,自然也不再进行大于18的判断,这是就称为“短路现象”

短路现象之逻辑或短路:

if(  IsFemale( $uName )  ||  isAge($uName) < 18){

......echo “有限照顾女士或未成年人”

}

此时,如果IsFemale()函数判断的结果是true,那么后续的函数isAge()就不再调用,自然也不再进行小于18的判断,这就是“或运算符短路现象”

字符串运算符:

只有一个:  .    

衍生一个:  .=

会将运算符两边的数据转换为字符串。

对比js+(具有双重含义,此时就需要一定的“判断”)

赋值运算符:

只有一个: =

衍生多个: +=   -=   *=   /=   %=   .=

基本形式为:

$变量  符合赋值运算符   数据2

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

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

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

$v2  =  数据2  [运算符]  $v2 //这种形式不应该简化

条件(三目)运算符:

一般的运算符需要2个数据参与

有几个运算符只需要一个数据参与: ++,   --   !

则:

条件运算符就需要至少3个数据参与!

形式为:

数据1  ?  数据2 :数据3;

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

含义:

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

典型举例:

$score = 66;

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

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

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

if( $score >= 60{

$result1 = “及格";

}

else{

$result1 = “不及格";

}

原文地址:https://www.cnblogs.com/ybygb-geng/p/9607106.html