Php三元运算符到if

Php三元运算符到if,php,ternary-operator,Php,Ternary Operator,我已经阅读了关于三元运算符的PHP手册,发现很难理解 如何将此三元运算符转换为ifstation或edit,以便执行以下代码。我希望代码根据用户是否登录来运行方法,而不是echoing echo 'User ' . ($openid->validate() ? $openid->identity . ' has ' : 'has not ') . 'logged in.'; 外推: $openid->identity() ? loggedInFunction() : notL

我已经阅读了关于三元运算符的PHP手册,发现很难理解

如何将此三元运算符转换为
if
station或edit,以便执行以下代码。我希望代码根据用户是否登录来运行方法,而不是
echo
ing

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

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

您的代码有效地:

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

echo 'User ' . $temp . 'logged in.';
听起来你想做的是:

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

直接翻译为:

echo 'User ';

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

然而,有更干净的方法来编写代码,做同样的事情(看看其他答案)。

不必这样(关于他真正想做什么),不管用户是否登录,这可能只是一种动态打印标签的方法“我希望代码运行一个方法,而不是echo用户已登录/未登录的方法,而不是echo out这意味着他想在每种情况下执行其他方法,而不是实际打印任何内容。不过我可能误解了。谢谢。我想这就是我要找的。另外,如果我有更多的声誉,@zarx的thx会给1+)这不是OP想要的。我没有使用他的变量,仅此而已。对不起,没关系。我没有阅读此部分
或进行编辑,因此它将执行以下操作
。我以为他只是在寻找一个
if
语句-1.:)
echo 'User ';

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