我需要能夠在純粹未定義的變量和空變量之間進行區分。 PHP很難做到這一點。困境在下面的鏈接解釋說:PHP - 在函數中包裝「未定義的檢查」技巧?
https://stackoverflow.com/a/14309841/3163495
在該鏈接,還有一招看到如果一個變量是真正的不確定,或簡單地設置爲NULL:
.. 。還有你可以用「緊湊型」,可以讓你 確定一個變量已經被定義,即使其值爲null,則使用一個技巧:
var_dump(!!compact('noSuchVariable')); // false var_dump(!!compact('nullVariable')); // true
訣竅本身的偉大工程,但是當你試圖將其包裝在一個函數像這樣它打破:
function IsDefined(& $variable){
return (!!compact('variable'));
}
上述功能IsDefined總是返回true,不管是什麼形式的不確定變量的我通過它。 請注意$ variable變量的「&」符號 - 我通過引用傳遞,否則PHP將拋出一個「未定義的變量」錯誤。
如何將上面提到的「未定義檢查」技巧轉化爲可重用的工作函數?
你爲什麼要這麼做?如果你必須經常這樣做以至於你需要一個函數,那麼你的代碼似乎有問題。 – Barmar
它們是否總是您需要檢查的全局變量?你可以測試'isset($ GLOBALS [$ varname])' – Barmar
@Barmar不,它們不會是全局變量,它們將是我將嘗試通過引用傳遞給函數的變量IsDefined – user3163495