刚刚学习了三元运算符,并希望以下工作:
$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...
有关正确语法的任何想法吗?
谢谢
答案 0 :(得分:11)
三元运算符的语法是expr1 ? expr2 : expr3
。简明扼要的一个表达是"anything that has a value"。
throw…;
和return…;
是非表达式,它们是语句。
在任何情况下,如果构造函数中存在问题,PDO类将抛出自己的异常。正确的(意思是,未破坏的)语法如下:
try {
$dbh = new PDO('mysql:blad','user','pass');
return $dbh;
} catch (PDOException $e) {
throw new Exception('Error connecting to database');
}
答案 1 :(得分:-2)
也许没有分号,因为完整中的三元运算符被视为一个命令,你必须用分号结束:
(!$dbh) ? throw new Exception('Error connecting to database') : return $dbh;
所以DONT在中间某处结束命令:)