细说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>";
?>
上一篇:Python 较为完善的猜数字游戏


下一篇:ElasticSearch性能优化官方建议