6.PHP中的运算符

来源:互联网 发布:主播音效软件 编辑:程序博客网 时间:2024/04/29 04:27

1. 算数运算符

+ - * / % ++ --

%取模需要注意

注意:求模运算符”%”也称取余运算符,在PHP语言中在做求模运算时首先会将%运算符两边的操作数转换为整型

$v1 = 7.5 % 3;              //结果是:1$v2 = 7.5 % 3.5;    //结果是:1对比js中:——js中,不会进行取整处理var  v1 = 7.5  %  3//结果是:1.5var  v2 = 7.5  %  3.5;       //结果是:0.5

前加加和后加加的区别:

  • 前++:先完成变量的递增运算,再取得该变量的值参与别的运算。
  • 后++:先将原来变量的值临时存储,再将变量值递增,最后再将临时存储的值参与别的运算。
  • 推论1:如果独立语句中进行自加运算,前自加后自加没有区别 。
  • 推论2:如果前自加后自加是放在别的语句中,则会有所区别。
  • 推论3: 前加加比后加加效率略高(在循环中建议使用前加加)

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

<?php$a = 10;        //声明一个整型变量$a,值为10$b = $a++ + ++$a;//先使用$a的值10加上$a自增1后再自增1后的值12,再赋值$becho $a.'<br/>';//12echo $b.'<br/>';//22$b = $a-- - --$a;//先使用$a的值12减去$a自减1的值10,再赋值给$becho $a.'<br/>';//输出10echo $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的判断,这就是“或运算符短路现象”
0 0
原创粉丝点击