PHP isset 主要是判斷變數是否存在,但無法判斷是否有值,主要運用會再送前端送表單時,後端所須做的判斷


在講解isset之前來先看個表格
變數 isset empty
NULL 變數不存在,回傳FALSE 變數存在,回傳TRUE
0 變數存在,回傳TRUE 判斷為值,回傳TRUE
'' 變數存在,回傳TRUE 判斷為值,回傳TRUE
[] 變數存在,回傳TRUE 變數不存在,回傳TRUE
檢查變數是否存在
isset($a); //false
---
$b = 5;
isset($b); //true
---
$c = [];
isset($c); //true
搭配表單
//表單送出無username的欄位
$username = $_POST['username']; //接收參數 (直接報錯);
---
//要做防範措施
$username = isset($_POST['username'])? $_POST['username']: ''; //搭配三元運算子

其實上面的寫法是還要搭配三元運算子
但其實最終結果就是「沒有username時給空值,有的話給送出表單的值」

所以有另外一種寫法可以直接解決這個問題。

$username = $_POST['username'] ?? '';

左側「??」右側
「??」左側是:判斷變數/陣列是否存在,存在直接延用此變數
「??」右側是:判斷變數/陣列不在存時給的預設值