首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 邏輯運算子完整詳解:位運算、比較運算與錯誤控制

     編輯:PHP 相關知識

運算子分類總覽

PHP 提供豐富的運算子,本文聚焦邏輯運算相關的三大類:位運算子、比較運算子、錯誤控制運算子。

一、位運算子

位運算子直接操作整數的二進制位元。若兩運算元皆為字串,則操作字元的 ASCII 碼。

運算子名稱說明範例
&按位與 (AND)兩位皆為 1 才為 15 & 3 = 1
|按位或 (OR)任一位為 1 即為 15 | 3 = 7
^按位異或 (XOR)兩位不同才為 15 ^ 3 = 6
~按位非 (NOT)0 變 1、1 變 0~5 = -6
<<左移乘以 2 的 n 次方5 << 1 = 10
>>右移除以 2 的 n 次方5 >> 1 = 2

位運算實例:5 & 3

5  = 0101 (二進制)
3  = 0011 (二進制)
-----------
1  = 0001 (結果)

程式碼驗證

<?php
$a = 5;
$b = 3;
$c = $a & $b;
echo $c . "<br>";  // 輸出 1
echo 5 & 3;         // 輸出 1
?>

提醒:位運算涉及底層二進制,一般業務邏輯較少用到,常見於權限掩碼、顏色運算、資料壓縮等場景。

二、比較運算子

比較運算子回傳布林值,重點區別 == 與 ===:

運算子名稱說明
==等於僅比較值,1 == '1' 為 true
===全等比較值與型別,1 === '1' 為 false (PHP 4+)
!= / <>不等僅比較值
!==非全等比較值與型別 (PHP 4+)
<, >, <=, >=大小比較數值或字串比較

關鍵差異示範

<?php
var_dump(1 == "1");   // true - 僅比值
var_dump(1 === "1");  // false - 比值又比型別
var_dump(0 == false); // true
var_dump(0 === false); // false
?>

最佳實踐:除非確定需要型別轉換,優先使用 === 與 !==,避免隱性轉換導致邏輯錯誤。

三、錯誤控制運算子 @

將 @ 置於表達式前,可抑制該表達式產生的錯誤訊息。

<?php
$file = @file('not_exist.txt') or die("讀取失敗: $php_errormsg");
$value = @$cache[$key];  // 避免未定義索引的 Notice
?>

適用範圍與限制

  • ✅ 變數、函式呼叫、include、常數等「可取得值」的表達式
  • ❌ 函式/類別定義、if、foreach 等控制結構

搭配 track_errors

啟用 track_errors = On 時,錯誤訊息會存入 $php_errormsg,但該變數每次出錯會覆蓋,需儘早檢查。

總結

掌握位運算、嚴格比較、錯誤抑制三類運算子的特性與適用場景,能寫出更健壯、可預測的 PHP 程式碼。日常開發中,比較運算子使用最頻繁,建議養成「嚴格比較優先」的習慣。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved