三元运算符语法(PHP)

rix*_*rix 4 php

刚刚学习了三元运算符,并期待以下工作:

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

相反,我得到以下错误:

parse error: syntax error, unexpected T_THROW in...
Run Code Online (Sandbox Code Playgroud)

有关正确语法的任何想法吗?

谢谢

sal*_*the 11

三元运算符的语法是expr1 ? expr2 : expr3.简洁地说,一个表达是"任何有价值的东西".

throw…;return…;不是表达式,它们是语句.


在任何情况下,如果构造函数中存在问题,PDO类将抛出自己的异常.正确的(意思是,未破坏的)语法如下:

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