刚刚学习了三元运算符并期望以下内容起作用:
$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/