PHP运算符杂谈

%e8%bf%90%e7%ae%97%e7%ac%a61

每一种语言中都有运算符,在php中也不例外,分类也有很多的方法,比如看参与运算的个数来分分为一元运算符,二元运算符和三元运算符。当然也可以根据使用方式来分类:分为算数运算符,赋值运算符,比较运算符,逻辑运算符,位运算符以及其它运算符。我们将分别介绍:

1.算术运算符号有: + – * / % ++ —
2.赋值运算符号 有:= += -= *= /= %=
3.比较运算符号 有:> < == >= <= === != !==
4. 逻辑运算符号有: && || !
5.位运算符号有: & | ^ ~ >> <<
6.其它运算符号 有:? : @ => -> “

【算数运算】

  1. 加法运算符”+” 2个数的和,例如$a+$b,结果为$a和$b的和。
  2. 减法运算符”-“2个数的差,例如$a-$b,结果为$a和$b的差。
  3. 乘法运算符”*”2个数的乘积,例如$a*$b,结果为$a和$b的乘积。
  4. 除法运算”/”2个数的商,例如$a/$b,结果为$a和$b的商。
  5. 求余运算符”%”取模运算得到2个数相除得到的余数,例如$a%$b,结果为$a和$b的余数。值得注意的一点是[取模运算结果的符号取决于被除数符号,与除数的符号无关例如5%-2余数是1,-5%2余数是-1]
  6. 累加/递减运算符”++”,累加,例如$a++/$a–或者++$a/–$a,表示$a的值+1但是这2种方式的区别在于前一种是先使用然后再累加,第二种则相反。例如:

//第一种

$a =4;

$b =$a++;

$c=++$a;

echo $b.'<br/>';//在此处应该输出$b的值4

echo $c;//此处应该输出$c的值6

【赋值运算符】

  1. 赋值运算符’=’,作用是:将一个值或表达式的结果赋给变量,例如$a =3,把3赋给$a。
  2. 赋值运算符’+=/-=/*=/ /=/%=’这些符号的作用相似,以$a+=3;为例,作用相当于$a = $a+3;其他的一样的道理。
  3. 赋值运算符’.=’,这个符号比较特别,相当于java等语言中的字符串连接符可以将2个字符串连接起来。例如:

$a ='hello ';

$a.='world!';

echo $a;//此时应该输出hello world!

【比较运算符】

  1. 普通比较运算符(与数学中一致)'< ,>,>=,<=’,其作用在于,这个等式成立时返回true,相反返回false。
  2. 比较运算符’==’,2边的操作数值相同就返回true,否则返回false。
  3. 比较运算符’===’,全等符号,2边的值和类型都必须完全相同才会返回true,其他情况返回false。
  4. 比较运算符'<>,!=’,不等于,2边的值不相等时返回true,否则返回false。
  5. 比较运算符’!==’,非全等符号,2边的值和类型都不相等时返回true,否则返回false。

例如:


$a = 7.00;

$b = 7;

var_dump( $a==$b );//返回true

var_dump($a===$b);//返回false

【逻辑运算符&& ,||和!】

  1. 逻辑运算符’&&’,通过这个运算符,只有左右2边的表达式都为真的时候,结果才是真。
  2. 逻辑运算符’||’,通过这个运算符,左右表达式中只要有一个为真,结果就是真。
  3. 逻辑运算符’!’,这是一个一元运算符,可以将一个表达式的返回值取反。

值得注意的是:上面的前2个逻辑运算符具有短路特性。即’&&’,运算的时候,当第一个表达式为假的时候,就不会去执行第二个表达式。同理’||’,当第一个表达式为真的时候,第二个表达式就不会执行了。

例如:


$a=3;

$b=4;

$a>2||$b++;

echo $b.'<br/>';

$a>4&&$b++;

echo $b;

【位运算符’&,|,^,~,<<,>>’】

  1. 位运算符’&’,意义是按位与,只有2位都是1结果才是1。
  2. 位运算符’|’,意义在于按位或,2位中只要有一位是真就为真。
  3. 位运算符’^’,意义在于亦或运算,只有当2位不相同才返回真,其余情况都为0。
  4. 位运算符’~’,意义在于取反运算,将所有位按位取反。
  5. 位运算符'<</>>’,意义是左移/右移运算符,相当于将整个数值向左/右移动。

上面的运算都是在,底层2进制中实现的,比如整型在php中使用32位来表示。我们表示17这个数就是

0 0000000 00000000 00000000 00010001表示整数17第一位是表示符号位,0表示正,1表示负。

还有左移相当于给这个数乘以2的n次方,n表示左移的位数。例如:


$a=5;

$b=$a<<2;

echo $b;//输出的结果是20

$c=-5;

$d=$c<<2;

echo $d;//输出的结果是-20

【其他运算符’?:,@,=>,->,“’】

  1. 运算符’?:’,这是3元运算符,用法表达式1?表达式2:表达式3,作用是当表达式1为真的时候,执行表达式2,表达式1为假的时候执行表达式3.
  2. 运算符’@’,这个符号很少使用,用法是@表达式,作用是当将其放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
  3. 运算符’=>’,数组下标指定符号,通过此符号指定数组的键与值。
  4. 运算符’->’,用于访问对象中的成员属性或者成员方法。
  5. 运算符’“’,作用是我们能够在程序运行中调用系统的命令行命令。例如 echo `ls -a`;相当于我在系统中执行了这条命令。

通过上面,我对php的运算符算是有了一些更加深入的理解,当然,想要熟练的掌握他们,只用通过工作来大量的使用了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注