三元运算符语法(PHP)

时间:2012-01-12 11:36:22

标签: 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...

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

谢谢

2 个答案:

答案 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在中间某处结束命令:)