3 回答

TA貢獻2019條經驗 獲得超9個贊
我對此的標準實現是:
if (isset($array['nonExistentYet']))
$array['nonExistentYet']++;
else
$array['nonExistentYet'] = 1;
但這是我使用@運算符抑制警告的極少數情況之一,但前提是要完全控制數組:
@$array['nonExistentYet']++;
通常,禁止警告或錯誤消息是不好的!

TA貢獻1878條經驗 獲得超4個贊
嗯,我想一個更可讀的方式是使用if..else如,
$arr = [];
if(array_key_exists('nonExistentYet', $arr)) {
$arr['nonExistentYet'] += 1;
}
else {
$arr['nonExistentYet'] = 1;
}

TA貢獻1895條經驗 獲得超7個贊
如果經常使用此方法,則可以定義一些輔助方法,該方法還具有有趣的副作用...
function inc(&$element) {
$element++;
}
$array = [];
inc($array['nonExistentYet']);
print_r($array);
給...
Array
(
[nonExistentYet] => 1
)
沒有警告。如您所見,該函數將參數定義為&$element,如果該值不存在,則將創建該參數,因此函數調用本身將創建該元素,然后將其遞增。
- 3 回答
- 0 關注
- 233 瀏覽
添加回答
舉報