無需實作 Iterator 介面即可建立迭代器,記憶體效率極高:
function xrange($start, $end, $step = 1) {
for ($i = $start; $i <= $end; $i += $step) {
yield $i;
}
}
foreach (xrange(1, 9, 2) as $num) {
echo "$num "; // 1 3 5 7 9
}
try {
// 可能拋出異常的代碼
} catch (Exception $e) {
// 處理異常
} finally {
// 無論是否異常都會執行(釋放資源、關閉連線)
}
$hash = password_hash("secret123", PASSWORD_DEFAULT); // 自動處理鹽值、演算法升級
if (password_verify("secret123", $hash)) { /* 登入成功 */ }
$data = [[1, 2], [3, 4]];
foreach ($data as list($a, $b)) {
echo "A: $a; B: $b\n"; // A: 1; B: 2 / A: 3; B: 4
}
function alwaysTrue() { return true; }
empty(alwaysTrue()); // 合法,PHP 5.5+ 不再報錯
echo [1, 2, 3][0]; // 1
echo 'PHP'[0]; // P
namespace Name\Space;
class ClassName {}
echo ClassName::class; // Name\Space\ClassName
將編譯後的 opcode 存於共享記憶體,免除每次請求的編譯開銷,大幅提升效能。php.ini 啟用:zend_extension=opcache.so + opcache.enable=1。
實作 Iterator::key() 可回傳任意類型鍵,不再限於標量。
imageflip() 翻轉圖片imagecrop() / imagecropauto() 裁剪imagecreatefromwebp() / imagewebp() WebP 格式支援PHP 5.5 已停止維護,現代專案請直接升級至 PHP 8.1+,享受 JIT、纖程、readonly 屬性等更多現代特性。