[英]PHP If shorthand
我想用一個簡單的if速記來檢查一個數組是否有一個特定的鍵,如果是這樣的話,那么就不用了。
$test = array("hi" => "123");
isset($test["hi"]) ? unset($test["hi"]);
為什么這會給出解析錯誤? 什么是正確的語法。
您不能在三元條件運算符中使用unset()
,因為該語言構造不返回值,並且運算符期望求值為某個值,而不是執行代碼塊。 另外,您的三元運算符不完整(缺少a :
組件)。
if語句如何更長?
if (isset($test["hi"])) unset($test["hi"]);
因為它是三元運算符 。 這段代碼:
$a = ($condition)? $b : $c;
相當於:
if($condition) $a = $b;
else $a = $c;
根據你的要求,不需要檢查,你可以簡單地unset()
數組元素而不先檢查它,它不會給出任何錯誤消息:
unset($test["hi"]);
三元條件運算符如下所示:
a ? b : c
您缺少該c
子句,並且您的b
子句不是返回值的表達式。 這個結構不是 if
語句的簡寫,而是你試圖使用它而不是它的設計。
使用if
語句:
if (isset($test['hi']))
unset($test['hi']);
還有更明確的array_key_exists
。 將其文檔與isset
文檔進行比較,以確定哪個更適合您的需求。
你不需要測試任何東西。 如果您嘗試取消設置非設置變量,則不會發生任何事情。
相當於您的代碼將是:
$test = array("hi" => "123");
unset($test["hi"]);
即使沒有設置$test["hi"]
,你仍然可以取消它...
$test = array("hi" => "123");
!isset($test["hi"]) ?: unset($test["hi"]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.