2023-02-01 07:52:15
在 PHP 中,三元运算符可通过 条件 ? 值1 : 值2 语法设置默认值,若条件为假则返回“值2”作为默认值。PHP 7+ 推荐使用更简洁的空合并运算符 ?? 实现相同功能。
一、三元运算符设置默认值的基本用法三元运算符的语法为:条件 ? 值1 : 值2
示例:从 $_GET 获取 name 参数,若不存在则默认值为 'Guest'
$name = isset($_GET['name']) ? $_GET['name'] : 'Guest';若需确保值“有意义”(如非空字符串、非 0 等),可结合 empty() 函数:
示例:从 $_POST 获取 username,若为空则默认值为 'default_user'
$username = !empty($_POST['username']) ? $_POST['username'] : 'default_user';注意:根据业务需求选择是否使用 empty()。例如,若允许 0 作为有效值,则不应使用 empty(),而应直接检查 isset() 或 null。
三、PHP 7+ 推荐的空合并运算符 ??PHP 7 引入的空合并运算符 ?? 更简洁且安全,语法为:变量 ?? 默认值
示例 1:设置 name 的默认值
$name = $_GET['name'] ?? 'Guest';示例 2:设置多个默认值
$age = $_GET['age'] ?? 18;$gender = $_GET['gender'] ?? 'unknown';对比三元运算符 + isset()
三元运算符:
适用于需要复杂条件判断的场景(如结合 empty()、类型检查等)。
示例:$score = isset($_POST['score']) && is_numeric($_POST['score']) ? (int)$_POST['score'] : 0;
空合并运算符 ??:
适用于简单检查变量是否存在且不为 null 的场景。
示例:$config = $customConfig ?? ['timeout' => 30, 'retries' => 3];