细说php(三) 运算符与表达式
一、算术运算符 + - * / % ++ --
<?php $a = 100; $a++; // $a=$a+1; 先用变量再自增1 ++$a; // $a=$a+1; 先用自增1再用变量 $a--; // $a=$a-1; 先用变量再自减1 --$a; // $a=$a-1; 先用自减1再用变量 echo "a = ".$a."<br>"; // 100 $b = $a % 3.3; // % 会把两边的数转为整数后再进行整除 echo "b = ".$b; ?>
二、字符串运算符 .
<?php $name = "tom"; $age = 27; $height = 1.75; echo "我的名字是:{$name} 我的年龄是:{$age} 我的身高是:{$height}米<br>"; echo '我的名字是:' . $name . ' 我的年龄是:' . $age . ' 我的身高是:' . $height . '米' . '<br>'; echo '我的名字是:' , $name , ' 我的年龄是:' , $age , ' 我的身高是:' , $height , '米' , '<br>'; ?>
三、赋值运算符 = += -= *= /= %= .=
<?php $a = 10; $a += 10; // $a = $a + 10; $a -= 10; // $a = $a - 10; $a *= 10; // $a = $a * 10; $a /= 10; // $a = $a / 10; $a %= 10; // $a = $a % 10; $a .= "abc"; // $a = $a . "abc"; ?>
四、比較运算符 > < >= <= == === != 或<> !==
<?php /** === 比較时不仅要求内容同样,也要求类型同样 !== 比較时不仅要求内容不同样,也要求类型不同样 **/ $a = 100; if ($a === "100") { echo "111111111111111"; } else { echo "000000000000000"; } ?>
五、逻辑运算符 && 或and ||或 or ! 或not
<?php // 逻辑运算符仅仅能操作bool型值, 返回的也是bool型值 // 与Java一样&&和||也有短路的问题 var_dump(true && true); // true var_dump(true and false); // false var_dump(true || false); // true var_dump(true or false); // true var_dump(!false); // true ?>
六、位运算符 & | ^ ~ << >> >>>
<?php /*************************************************************** * 20 000000000 00000000 000000000 00010100 * 30 000000000 00000000 000000000 00011110 & * ------------------------------------------------------------ * 000000000 00000000 000000000 00010100 20 ***************************************************************/ $a = 20; // 16+4 00010100 $b = 30; // 16+8+4+2 00011110 $c = $a & $b; echo $c . "<br>"; // 20 /*************************************************************** * 20 000000000 00000000 000000000 00010100 * 30 000000000 00000000 000000000 00011110 | * ------------------------------------------------------------ * 000000000 00000000 000000000 00011110 30 ***************************************************************/ $a=20; // 16+4 00010100 $b=30; // 16+8+4+2 00011110 $c= $a | $b; echo $c . "<br>"; // 30 /*************************************************************** * 20 000000000 00000000 000000000 00010100 * 30 000000000 00000000 000000000 00011110 ^ * ------------------------------------------------------------ * 000000000 00000000 000000000 00001010 10 ***************************************************************/ $a = 20; // 16+4 00010100 $b = 30; // 16+8+4+2 00011110 $c = $a ^ $b; echo $c . "<br>"; // 10 $c = ~$a ; echo $c . "<br>"; // -21 /*************************************************************** * 00000000 00000000 000000000 000101 >> 2 * 00000000 00000000 000000000 0001010000 << 2 ***************************************************************/ $c = $a << 2 ; echo $c . "<br>"; // 80 ?>
七、其它运算符 ? : `` @ => -> :: & $
<?php // 三目运算符 $a = 10; $b = $a > 50 ? $a : 5; echo $b; // 运行系统命令 $str=`ipconfig /all`; echo '<pre>'; echo $str; echo '</pre>'; // 隐藏异常信息 @getType(); echo "##############<br>"; ?>