strlen():函數調用開銷 (符號表查找、小寫化、參數棧桢) + 直接讀取 zval 結構體中已存長度字段 → O(1) 但有函數調用成本。isset($str{$len}):語言結構 (非函數),編譯期優化,直接檢查字符串偏移量是否存在,**零函數調用開銷**。$str = 'https://www.phpernote.com/php-template/436.html';
// strlen 寫法
if (strlen($str) < 5) { echo '未滿5'; }
// isset 寫法 (檢查第 5 個字符偏移是否存在,即長度 > 5)
if (!isset($str{5})) { echo '未滿5'; } // 注意:偏移從 0 開始,{5} 即第 6 個字符
isset($str{5}) 判斷長度 **> 5** (嚴格大於)。若需 **>= 5** 用 !isset($str{4})。$str[5] 代替 $str{5} (花括號語法棄用)。< 10、> 100),不適用於獲取精確長度。strlen 返回字節數,isset($str[5]) 同樣按字節偏移判斷,**非字符數**;精確字符數仍需 mb_strlen。strlen: 0.048s isset: 0.021s // 約 2.3 倍快
微優化屬於「錦上添花」,**首優算法/架構/數據庫/緩存/網絡**,再考慮此類語言級微調。但在高頻循環 (如解析器、編碼器) 中積少成多效果明顯。