我一直認為,如果我想檢查一個變數是否存在并具有一定的值,我必須使用兩個if條件:
if(isset($x)){
if($x->age==5){}
}
但我意識到它也可以通過這種方式在一行中完成:
if(isset($x) && ($x->age==5)){}
$x有人可以告訴我為什么第二個變體如果為空不會導致錯誤。鑒于這$x是 null 并且沒有屬性age?它會試圖訪問一個不存在的屬性嗎?
$x=null;
uj5u.com熱心網友回復:
因為$x是空的,isset($x)所以是假的。然后,由于邏輯運算子“AND”( &&),無法完全驗證條件,因此,測驗在此停止,($x->age==5)不執行。
對于較短的代碼,從 PHP 8.0.1 開始,您可以使用NullSafe 運算子 ( ?->)
if ($x?->age == 5) { }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/427554.html
