2019鐵人賽
PHP
昨天聊到了 PHP 基本的語法,今天在來談談運算子和運算符,運算符顧名思義就是類似數學運算的運算符,在程式語言裡也是用這些基本運算原則來處理程式碼。
例如:
1.運算式是從左到右
2.先乘除後加減
不過特別的事還要複合式運算符,這些比較特別的用法就是程式語言才有的,基本上都大同小異,但是對於一個初學者而言,是有必要先看一下的。
$a = '我喜歡的程式是:';
$b = 'PHP';
echo $a.$b;
把等號右邊的值存入左方的變數
依序為 加、減、乘、除、取餘數
// 『+=』—>加法指派
$a += $b; //等同於 $a = $a + $b
// 『-=』—>減法指派
$a -= $b; //等同於 $a = $a - $b
// 『*=』—>
$a *= $b; //等同於 $a = $a * $b
// 『/=』—>
$a /= $b; //等同於 $a = $a / $b
// 『%=』—>
$a %= $b; //等同於 $a = $a % $b
// 『.=』—>
$a .= $b; //等同於 $a = $a . $b
『++』:變數值加1
『--』:變數值減1
* 遞增/遞減運算子放在變數前後會有不一樣的效果
++$a:先把 $a 增加1,再傳回 $a 的值
$a++:先傳回 $a 的值,再把 $a 增加1
比較運算子會將運算式兩邊的運算元加以比較,再將結果以布林值回傳。
『==』:相等
『===』:全相等
『!=』:不等於
『!==』:不全等
『<』:小於
『>』:大於
『<=』:小於等於
『>=』:大於等於
$a = 100; //型別為數字
$b = '100'; //型別為字串
$a == $b; //回傳值為 True,因為資料型別會自動轉換。
$a === $b; //回傳值為 False,因為資料型別不相等。
條件運算式 ? 成立時傳回運算式 : 不成立時傳回運算式;
$a = 2;
$b = ($a > 0) ? "正數" : "負數";
echo $b; //正數
實務上常會有這個需求:定義兩個運算元,當第一個運算元存在時即回傳其值,否則回傳另一個運算元的值。
$a = 10;
$b = 20;
$c = $a ?: $b;
echo $c; //10
『and』等同於『&&』:$a、$b都 true 才成立
『or』等同於『||』:$a、$b其中一個為 true 就成立
『xor』:$a、$b都是 true 或都是 false 時不成立,反之則成立
『!』:!$a,結果是 $a 的相反
『@』:錯誤控制運算子能夠在PHP程式運作發生錯誤時,抑制錯誤訊息的顯示。使用的方法只要將『@』符號加在常發生錯誤的指令前面。
$fp = @fopen ("test.txt");
執行指令預算子能讓 PHP 程式執行作業系統中的 shell 指令。使用時只要將執行指令前後用『 ` 』符號包含即可。
$myIP = `ping www.e-happy.com.tw`;
echo nl2br($myIP); //使用nl2br() 函式將傳回值結果自動分行顯示。
<高>
++, --
!, ~, *, /, %
+, -
<<, >>
<, <=, >, >=
==, !=, ===, !==
&
^
|
&&
||
?:
=, +=, -=, *=, /=, %=, .=
and
xor
or
<低>
//當運算子在同一層時優先順序是由左至右,但是不含指定與複合運算子
//當然,在運算式中還是可以用括號()來改變運算的優先順序,括號中的運算式會先行計算。