Php三元运算符如果

时间:2012-08-10 22:47:12

标签: php ternary-operator

我查看了关于三元运算符的PHP手册,我发现很难理解。

如何将此三元运算符转换为if语句或进行编辑,以便在下面执行以下代码。而不是echo我希望代码根据用户是否已登录来运行方法,

echo 'User ' . ($openid->validate() ? $openid->identity . ' has ' : 'has not ') . 'logged in.';

3 个答案:

答案 0 :(得分:1)

您的代码是有效的:

if ($openid->validate()) {
    $temp = $openid->identity . ' has ';
} else {
    $temp = 'has not ';
}

echo 'User ' . $temp . 'logged in.';

听起来你想做的是:

if ($openid->validate()) {
    handleLoggedInFunction();
} else {
    handleNotLoggedInFunction();
}

答案 1 :(得分:1)

直接翻译将是:

echo 'User ';

if($openid->validate()) {
   echo $openid->identity . ' has ';
} else {
   echo 'has not '
} 
echo 'logged in.'; 

然而,有更简洁的方法来编写执行相同操作的代码(查看其他答案)。

答案 2 :(得分:0)

$value = true;
$value ? runFunction() : (echo "has not logged in");

外推:

$openid->identity() ? loggedInFunction() : notLoggedInFunction();