企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
**(expr1) ? (expr2) : (expr3);** 在expr1求值为 **`TRUE`** 时的值为expr2,在expr1求值为 **`FALSE`** 时的值为expr3 ``` $a=-1; $c=$a>0?'a':'b';//$c=($a>0?'a':'b'); echo $c; ``` **expr1 ?: expr3** 自 PHP 5.3 起,可以省略三元运算符中间那部分。在expr1求值为 **`TRUE`** 时返回expr1,否则返回expr3。 **(expr1) ?? (expr2)** PHP 7 开始存在 "??" (NULL 合并)运算符。 当expr1为 **`NULL`** 或不存在时值为expr2,否则为expr1。 >[danger]尤其要注意,当不存在左侧的值时,此运算符也和[isset()](https://www.php.net/manual/zh/function.isset.php)一样不会产生警告。 对于 array 键尤其有用 ``` // NULL 合并运算符的例子 $action = $_POST['action'] ?? 'default'; // 以上例子等同于于以下 if/else 语句 if (isset($_POST['action'])) { $action = $_POST['action']; } else { $action = 'default'; } ```