在使用PHP變數時,常常會用到isset()來判斷變數是否存在。最常使用的情況,大概是判斷某陣列是否有指定的index值吧~

但有時會怕因為變數值或index值不存在,而導致出現錯誤訊息,因此會希望若變數不存在可以使用預設值,來保證運作正常。

PHP7以前的版本

在舊版本我們可以透過兩種方式,來達成:

方法一

一直以來,我都是用這種寫法

$name = isset($name) ? $name : 'aidec';

$name = isset($data['name']) ? $data['name'] : 'aidec';

方法二

除了上面那種寫法,還能改寫成這樣

isset($name) ?: $name = 'aidec';

PHP7以上的版本

從php7開始有了新的寫法,可以讓我們更簡化,只要改成這樣就行啦~

$name = $name ?? 'aidec';

不過值得注意的是,若要使用這種方法來判斷陣列的index,必須要7.1.11以上的版本才可以

$name = $data['name'] ?? 'aidec';

如果出現 Undefined index: hint 就表示PHP版本不夠高,可以通過升級PHP版本或者是改用原始方法來解決此問題。


文章轉載或引用,請先告知並保留原文出處與連結!!(單純分享或非營利的只需保留原文出處,不用告知)

原文連結:
https://blog.aidec.tw/post/php-isset-default-value