list(, $mid) = explode(';', $str); // 直接取第 2 段
=== 替代 is_null()
if ($var === null) // 比 is_null($var) 快(省函式呼叫)
=== 避免隱性轉型
"42" == 42 // true
"42" === 42 // false(型別不同)
continue:結構化重寫為 if-else,減少跳轉開銷switch/in_array 鬆散比較
switch ($name) { case "laruence": ... }
// $name = 0 會匹配所有 case!
// 修正:switch (strval($name)) { ... }
in_array($needle, $haystack, true); // 第 3 參數 true = 嚴格比較
switch (true) 替代多重 if-else
switch (true) {
case $a: break;
case $b: break;
case $c: case $d: break;
}
list($a, $b) = array($b, $a);
// 整數可用異或(無溢出風險)
$a ^= $b; $b ^= $a; $a ^= $b;
~~$num 替代 floor()(正數適用)
echo ~~4.9; // 4,速度約 floor() 3 倍
// 注意:大數會溢出(32 位系統 ~99999999999999 → 錯誤)
do {} while (0) 技巧:消除 goto、巨集程式碼塊、模擬 break 跳出多層條件@:相當於 error_reporting(0); func(); error_reporting($old);,額外開銷大、除錯困難// 遞迴階乘
function f($n) { return $n ? $n * f($n-1) : 1; }
// 迴圈版
$r = 1; for ($i=2; $i<=$n; $i++) $r *= $i;
$_SERVER['REQUEST_TIME'] 替代 time():省一次函式呼叫(精度同秒)// 慢
for ($i=0; $i < strlen($str); $i++) {}
// 快
for ($i=0, $len=strlen($str); $i < $len; $i++) {}
preg_match("!^foo_!i", $s) → !strncasecmp("foo_", $s, 4)
preg_match("![a8f9]!", $s) → strpbrk("a8f9", $s)
preg_match("!string!i", $s) → stripos($s, "string") !== false
echo "{$name}[2]"; // 明確界定變數範圍
false;查無資料 → null微優化雖小,**可讀性、正確性、維護性**永遠優先。效能瓶頸通常在 I/O、資料庫、演算法,而非語法糖。建議配合 xhprof/Blackfire 實測再優化。