[php] in_array 與 GLOBALS 的組合
2016 Feb 05 技術筆記
最近寫一段 seo-rank.tw 的 shell script
剛好組合了 in_array 跟 GLOBALS
in_array 是看某個 array 裡面有沒有某個 key 的元素
GLOBALS 則是拿來存取全域變數
先不管用全域變數好不好 這不是本篇的重點
我想拿 in_array 去檢查某個變數有沒有在 GLOBALS
所以寫了
$existed = in_array('abc', $GLOBALS);
用 var_dump 去印 $GLOBALS['abc'] 明明就有東西喔
但 $existed 永遠都是 false
很神奇
google 了一下果然就有結果
因為 GLOBALS 變數 是遞迴的
GLOBALS 裡面有個元素叫做 GLOBALS
也就是自己
所以如果你企圖用一些把樹狀結構走完的 function 去印 GLOBALS 的話
可能會爆炸(跑不完)
in_array 就是類似的東西
所以 in_array 遇到遞迴的 array
一律都會回傳 false
我不知道 in_array 怎麼檢查遞迴的 array 結構
但既然 in_array 知道這件事情
那表示是可以判斷的
反正呢
GLOBALS 就是不能用 in_array
只能用 isset($GLOBALS['abc']) 判斷
ABOUT ME

路老闆 Louis
路老闆有限公司創辦人、Compassio 個人品牌一站式網站系統的開發者。二十年網站與行銷實戰經驗,長期陪伴講師、顧問與創作者把專業變成品牌。每週透過電子報與 Podcast《路老闆的個人品牌診療室》,分享個人品牌、網站經營與 AI 行銷的實務觀察。
如想留言評分,請先 登入會員!