在 PHP 中加减乘除以及模运算由 +、-、*、/、% 表示,均为中缀二元运算符。
赋值运算符:
- 
=: 表示将右侧表达式值赋给左侧的运算数。赋值后左侧值将是右侧值的拷贝。例如$a = $b;。
- 
&: 引用,加上&后,在赋值时左侧运算数则会和右侧指向同一数据,共享一块内存。例如$a = &$b;。
<?php 
    $a = "meniny";
    echo $a;
    echo "\n";
    $b = $a;
    echo $b;
    echo "\n";
    $c = &$a;
    echo $c;
    echo "\n";
    $a = "MENINY";
    echo $c;
?>
类似的还有 +=、-=、*=、/=、%= 等,均为二元中缀运算符。
以及自增与自减运算符: ++、--,均为一元后缀运算符。
PHP 也支持位运算:
- 
&: 按位与
- 
|: 按位或
- 
^: 按位异或
- 
~: 按位取反
- 
<<: 左移
- 
>>: 右移
PHP 还提供了一些比较运算符,分别是:
- 
==: 中缀二元运算符,左右两边相等(不包括类型)则返回true。
- 
===: 中缀二元运算符,左右两边相等(包括类型)则返回true。
- 
!=: 中缀二元运算符,左右两边不等(不包括类型)则返回true。
- 
<>: 中缀二元运算符,左右两边不等(不包括类型)则返回true。
- 
!==: 中缀二元运算符,左右两边不等(包括类型)则返回true。
- 
>: 中缀二元运算符,左边较大(不包括类型)则返回true。
- 
>=: 中缀二元运算符,左右两边相等或左边较大(不包括类型)则返回true。
- 
<: 中缀二元运算符,右边较大(不包括类型)则返回true。
- 
<=: 中缀二元运算符,左右两边相等或右边较大(不包括类型)则返回true。
<?php 
    var_dump("123" == 123);
    var_dump("123" === 123);
    var_dump("123" != 123);
    var_dump("123" <> 123);
    var_dump("123" < 123);
    var_dump("123" > 123);
    var_dump("123" <= 123);
    var_dump("123" >= 123);
?>
此外 PHP 也提供了三元运算符 (?:),对于表达式 (expr1)?(expr2):(expr3),如果 expr1 的值为 true,则此表达式的值为 expr2,否则为 expr3;
<?php 
    var_dump(true ? "IS TRUE" : "NOT TRUE");
    var_dump(false ? "IS TRUE" : "NOT TRUE");
?>
当然,不能少了逻辑运算符:
- 
and: 逻辑与,中缀二元运算符,两侧均为true则返回true
- 
&&: 逻辑与,中缀二元运算符,两侧均为true则返回true
- 
or: 逻辑或,中缀二元运算符,某一侧为true则返回true
- 
||: 逻辑或,中缀二元运算符,某一侧为true则返回true
- 
xor: 逻辑异或,中缀二元运算符,两侧有且仅有一侧为true则返回true
- 
!: 逻辑非,前缀一元运算符,右侧为false则返回true
对于字符串,前面提到过可以使用 . 符号进行拼接,这里还要介绍另外一个 .= 运算符,用于将两侧内容进行拼接,举个栗子:
<?php 
    $a = "var a ";
    $b = "var b ";
    $c = $a.$b;
    $d = "var d ";
    $d .= $c;
    echo '$a:'.$a."\n";
    echo '$b:'.$b."\n";
    echo '%c=$a.$b:'.$c."\n";
    echo '%d.=$c:'.$d."\n";
?>
还有一个比较特殊的运算符: 错误控制运算符(@),对于一些可能会在运行过程中出错的表达式时,可以将@放置在该表达式之前忽略其产生的错误信息。如果启用 track_error 则这些错误信息会被存放在 $php_errormsg 中,但这个变量的值在每次出错时都会被覆盖掉。
注意:
- 
不能屏蔽解析错误的信息 
- 
不能放在函数或类定义前 
- 
不能用于条件控制结构 
<?php 
    $connection = @mysql_connect("localhost","usr","pwd");
    echo $connection;
    echo $php_errormsg;
?>
 李二狗 — @Meniny
                李二狗 — @Meniny
             
            
             
                 
                