網頁設計 EP06-運算子(下)

更新 發佈閱讀 11 分鐘

上一篇跟大家介紹邏輯判斷與運算子後,接下來就繼續完成下篇運算子的部分。

網頁設計 EP05-迴圈與邏輯判斷運算子(上)

運算子

PHP 運算子用於執行變數與數值的運算,主要分為算術、賦值、比較、邏輯、字串及遞增/遞減等類型。

數學運算子

加 : +

減 : -

乘 : *

除 : /

取餘數 : %

次方 : **

正數 : +$variable

負數 : -$variable

<?php
$a = 10;
$b = 2;

$sum = $a + $b;        // 加法,結果為 12
$difference = $a - $b; // 減法,結果為 8
$product = $a * $b;    // 乘法,結果為 20
$quotient = $a / $b;   // 除法,結果為 5
$remainder = $a % $b;  // 取餘,結果為 0
$power = $a ** $b;     // 指數,結果為 100

echo "加法: $sum\n";
echo "減法: $difference\n";
echo "乘法: $product\n";
echo "除法: $quotient\n";
echo "取餘: $remainder\n";
echo "指數: $power\n";
echo "正數: ".+$a;
echo "負數: ".-$a;
?>

遞增、遞減運算子

先遞增 : ++$variable

先遞減 : --$variable

後遞增 : $variable++

後遞減 : $variable--

<?php
$a = 10;
$b = 5;
$c = 4;
$d = 3;

$a++;
echo $a; //輸出11

$b--;
echo $b; //輸出4

echo(++$c);//輸出5

echo(--$d);//輸出2
?>

指派運算子

賦值 : =

累加 : +=

累減 : -=

累乘 : *=

累除 : /=

累取餘數 : %=

連接 : .=

Ternary Operator(三元運算子) : ? :

類似 if...else ,當$condition為真時,執行statement1,否則執行statement2。

($condition) ? ($statement1) : ($statement2) 

Null Coalescing Operator(空合併運算子) : ??

三元運算子的進階版,傳回第一個非空值,意思是如果第一個值是空值就回傳第二個值。

($variable1)??($variable2) 
<?php
$a = 10;
$b = 5;
$c = null;
$d = false;
echo ($a+=$b);//$a =$a + $b 輸出15
echo ($a-=$b);//$a =$a - $b 輸出5
echo ($a*=$b);//$a =$a * $b 輸出50
echo ($a/=$b);//$a =$a / $b 輸出2
echo ($a%=$b);//$a =$a % $b 輸出0
echo ($a.=$b);//$a =$a . $b 輸出105
echo ($d?$a:$b);//$d為假 輸出5
echo ($a ?? $c); // 輸出10
?>

邏輯判斷運算子

數位邏輯中的及閘(and)、或閘(or)、反閘(not)和互斥或閘(xor)。

否(not) : !

為相反,1變0、0變1

與(and) : &&

都為1才為1

或(or) : ||

有1就為1

與(and) : and

都為1才為1

或(or) : or

有1就為1

互斥(xor) : xor

一樣為0,反之為1

<?php
$a = true;
$b = false;
var_dump($a&&$b); //輸出 bool(false)
var_dump($a||$b); //輸出 bool(true) 
var_dump(!$b); //輸出 bool(true) 
var_dump($a and $b); //輸出 bool(false)
var_dump($a or $b); //輸出 bool(true) 
var_dump($a xor $b); //輸出 bool(true) 
?>

運算符優先級

當同一個條件中有多個運算子時,這時運算子的優先級就很重要了,這裡僅介紹邏輯判斷的部分,詳情可參考官方文檔:

https://www.php.net/manual/zh/language.operators.precedence.php

! >> &&|| >> andor >> xor

練習題:

<?php
$a = true;
$b = false;
$c = true;

var_dump($a xor $c&&$b||$b);
?>

在這邊休息一下,試試看能不能找出答案是甚麼~

位元運算子

用來對整數中的位元進行2進位操作,在進行底層數據處理、權限設定或高效能計算時非常有用。

與(and) : &

都為1才為1

或(or) : |

有1就為1

互斥(xor) : ^

一樣為0,反之為1

否(not) : ~

跟反閘一樣變0,0變1,也就是1補數,不過目前電腦儲存整數的方式幾乎都使用2補數,所以反轉時如果是首個位元是1(也就是負)時,就會做2補數,突然複習了一下機概😂

左移 : <<

向左位移指定位數,相當於乘以2

右移 : >>

向右位移指定位數,相當於除以2

<?php
$a = 5;//0101
$b = 6;//0110
echo ($a & $b);  //輸出 0100
echo ($a | $b);  //輸出 0111
echo ($a ^ $b);  //輸出 0011
echo (~$a);      //輸出 -6
echo ($a << 1);  //輸出 1010
echo ($a >> 1 ); //輸出 0010
?>

字串運算子

連接字串和變數、常數或函數用 : .

<?php
$a = 10;
echo "正數: ".-$a;
?>

比較運算子

相等(值相等) : ==

全等(值與資料型態都相等) : ===

不相等 : !=<> 不全等 : !==

大於 : >

小於 : <

大於等於 : >=

小於等於 : <=

比較 : <=>

左邊比右邊大回傳1

左邊比右邊小回傳-1

左邊與右邊一樣大回傳0

<?php

$a = 5;
$b = "5";
$c = 6;

var_dump ($a==$b); //輸出bool(true)
var_dump($a===$b); //輸出bool(false)
var_dump ($a != $c); //輸出bool(true)
var_dump ($a <> $c); //輸出bool(true)
var_dump ($a !== $b);//輸出bool(true)
var_dump ($a > $c); //輸出bool(false)
var_dump ($a < $c); //輸出bool(true)
var_dump ($a >= $c); //輸出bool(false)
var_dump ($a <= $c); //輸出bool(true)
var_dump ($a <=> $c);//輸出int(-1)
?>

錯誤控制運算子

在php程式執行發生錯誤時,可以抑制錯誤訊息產生,避免在網頁上顯示PHP的錯誤訊息,並繼續執行程式碼。使用方式只要將 @ 符號加在常發生錯誤的指令前面。

<?php
$a = @($b*255);
echo ("測試我會不會被執行到");//輸出 測試我會不會被執行到
?>

可搭配內建函數 die() 自訂顯示錯誤訊息,當指令回傳false時便會執行 die()

<?php
$a = @($b*255) or die("program error");//因為$b沒有事先進行宣告,輸出program error
echo ("測試我會不會被執行到");
?>

不過有利必有弊,使用錯誤控制運算子可能會增加偵錯的困難,只是暫時的,php還是有提供其他錯誤處理機制,像是 try-catch,在發生錯誤時能執行相對應的處理機制。

執行運算子

執行指令運算子能讓 PHP 程式執行作業系統中的 shell 指令。使用時只要將執行指令前後用 `符號包含即可。

<?php
 $out = `dir`;//windows顯示檔案清單以列出目錄中的檔案及子目錄
 $result = `ls`;//linux顯示檔案清單以列出目錄中的檔案及子目錄
 echo $out;
 echo $result;
?>

指令詳細參數使用方法可以參考各作業系統指令介紹~


本篇文章到這裡就結束了,大家會希望繼續探索PHP更深層的內容還是想要穿插一些HTML+CSS的內容呢🫡,歡迎在下方討論討論。

如果喜歡我的文章或覺得有用的話,歡迎動動手指點擊愛心,你/妳的支持是我最大的動力,我們下篇文章見🙌。

留言
avatar-img
逃的沙龍
0會員
6內容數
分享學習路上的內容與心得
逃的沙龍的其他內容
2026/02/22
深入探討 PHP 中的各種邏輯判斷語句和迴圈結構,包括 for、foreach、while、do/while,以及 switch case 與 match 的差異,還有 if/else 的應用。本文提供清晰的宣告方式、實際應用場景和程式碼範例,幫助開發者掌握這些基礎但關鍵的程式設計概念。
Thumbnail
2026/02/22
深入探討 PHP 中的各種邏輯判斷語句和迴圈結構,包括 for、foreach、while、do/while,以及 switch case 與 match 的差異,還有 if/else 的應用。本文提供清晰的宣告方式、實際應用場景和程式碼範例,幫助開發者掌握這些基礎但關鍵的程式設計概念。
Thumbnail
2026/02/17
探討 PHP 變數範圍,包括全域變數、區域變數、靜態變數,並詳細介紹 $_GLOBALS, $_SERVER, $_REQUEST, $_POST, $_GET, $_FILES, $_ENV, $_COOKIE, $_SESSION 等超全域變數的用法與應用。
Thumbnail
2026/02/17
探討 PHP 變數範圍,包括全域變數、區域變數、靜態變數,並詳細介紹 $_GLOBALS, $_SERVER, $_REQUEST, $_POST, $_GET, $_FILES, $_ENV, $_COOKIE, $_SESSION 等超全域變數的用法與應用。
Thumbnail
2026/02/13
本篇文章將帶你快速瞭解 PHP 的基本語法,包含標籤、分號、列印 (echo)、註解、變數宣告、命名規則、常見資料型別 (字串、整數、浮點數、布林值、null) 以及型別轉換 (casting) 的應用。適合剛接觸 PHP 的初學者,為後續的程式撰寫奠定基礎。
Thumbnail
2026/02/13
本篇文章將帶你快速瞭解 PHP 的基本語法,包含標籤、分號、列印 (echo)、註解、變數宣告、命名規則、常見資料型別 (字串、整數、浮點數、布林值、null) 以及型別轉換 (casting) 的應用。適合剛接觸 PHP 的初學者,為後續的程式撰寫奠定基礎。
Thumbnail
看更多