您的位置:首页 > 编程语言 > PHP开发

6.PHP中的运算符

2016-05-03 12:47 645 查看

1. 算数运算符

+ - * / % ++ --


%
取模需要注意

注意:求模运算符”%”也称取余运算符,在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:如果独立语句中进行自加运算,前自加后自加没有区别 。

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

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

下面说明了前缀模式和后缀模式之间的区别

<?php
$a = 10;        //声明一个整型变量$a,值为10
$b = $a++ + ++$a;//先使用$a的值10加上$a自增1后再自增1后的值12,再赋值$b

echo $a.'<br/>';//12
echo $b.'<br/>';//22

$b = $a-- - --$a;//先使用$a的值12减去$a自减1的值10,再赋值给$b

echo $a.'<br/>';//输出10
echo $b.'<br/>';//输出2


字符串变量的算数运算

只能递增,不能递减,’Z’+1得到’AA’.并且只支持纯字母(a-z和A-Z)。例如:

<?php
$i = 'a';
for($n=0;$n<52;$n++){
echo ++$i."<br/>";
}
结果:b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba


2. 字符串运算符

只有一个,英文句号”.”。可以将一个字符串和任何标量数据类型连接起来,合并成的都是新的字符串。

3. 赋值运算符

只有一个: =

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

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

$v2 = $v2 [运算符] 数据2 //某个变量跟另一个数据进行某种运算之后的结果再存入该变量 ``` *对比(它不是这种形式的简化)* ```
php $v2 = 数据2 [运算符] $v2;    //这种形式不应该简化


4. 比较运算符

> = >= <= ==(等于) ===(全等于) <>或!=(不相等) !===(非全等于)


注意:参考手册〉〉附录〉〉类型比较表 |运算符|说明| |:—|:—| |==|左边操作数等于右边操作数时返回true,否则返回false|

|===|左边操作数等于右边操作数,并且它们的类型也相同时返回true,否则返回false|

|<>或!=|当左边操作数不等于右边操作数时返回true,返回false|

|!===|当左边操作数不等于右边操作数,或者它们的类型不相同时返回true,否则返回false|

常见不同类型的比较—-非正常比较

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

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

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

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

否则,就按字符串比较

“abc35”>”abc123” ==>true(遵循字符比较规则)

“35”>”123” ==>false(遵循数字比较规则)

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

5. 逻辑运算符:
&&    ||  !

5.1 逻辑与短路

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

if(  IsFemale( $uName )  &&  isAge($uName) > 18){
echo “女士优先”
}

//此时,如果IsChildren()函数如果判断为false,则isAge()就不再调用了,自然也不再进行大于12的判断,这就是称为"短路现象"


5.2 短路现象之逻辑或短路:

if(  IsFemale( $uName )  ||  isAge($uName) < 18){
......echo “有限照顾女士或未成年人”
}

//此时,如果IsFemale()函数判断的结果是true,那么后续的函数isAge()就不再调用,自然也不再进行小于18的判断,这就是“或运算符短路现象”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: