php - 三元运算符语法 (PHP)

标签 php

刚刚学习了三元运算符并期望以下内容起作用:

$dbh =new PDO('mysql:blad','user','pass');
(!$dbh) ? throw new Exception('Error connecting to database'); : return $dbh; 

相反,我收到以下错误:

parse error: syntax error, unexpected T_THROW in...

对正确的语法有什么想法吗?

谢谢

最佳答案

三元运算符的语法是 expr1 ? expr2 : expr3。简而言之,表达式是 "anything that has a value" .

对于 PHP 8 之前的 PHP 版本,throw …return … 不是表达式,它们是语句。这意味着它们不能用作三元运算的操作数。

从 PHP 8 开始,throw ... 是一个表达式,因此可以用作三元运算的操作数,return ... 仍然是一个声明。


在任何情况下,如果构造函数出现问题,PDO 类都会抛出它自己的异常。正确的(意思是,没有损坏的)语法是这样的:

try {
    $dbh = new PDO('mysql:blad','user','pass');
    return $dbh;
} catch (PDOException $e) {
    throw new Exception('Error connecting to database');
}

关于php - 三元运算符语法 (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8834413/

相关文章:

php - Codeigniter 数据库查询两个表

PHP 多个 2/3-D 数组排序、添加、删除

php - 检查字符串中是否存在至少 3 个不同字符的正则表达式

php - yii2 多选下拉记住选中

php - 居中对齐 WordPress 子菜单

javascript - 在 Laravel 中使用 javascript 将日期从数据库加载到表单

php - 在将日期插入数据库之前更改日期格式

php - 如果在 php 类中建立连接并且函数 mysqli_real_escape_string 在单独的函数文件中使用,如何使用 mysql 连接?

php - 遍历传递给 Twig 模板的所有参数

PHP file_exist 与正则表达式