0

三項演算子についてのPHPマニュアルを調べましたが、理解するのが難しいことがわかりました。

この三項演算子をステートメントに変換ifまたは編集して、以下のコードを実行するにはどうすればよいですか。ingの代わりにecho、使用がログインしているかどうかに応じてコードにメソッドを実行させたいのですが、

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

3 に答える 3

1

あなたのコードは事実上:

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

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

あなたがやりたいことは次のように聞こえます:

if ($openid->validate()) {
    handleLoggedInFunction();
} else {
    handleNotLoggedInFunction();
}
于 2012-08-10T22:51:55.117 に答える
1

直訳すると次のようになります。

echo 'User ';

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

ただし、同じことを行うコードを書くためのよりクリーンな方法があります (他の回答を見てください)。

于 2012-08-10T22:53:02.410 に答える
0
$value = true;
$value ? runFunction() : (echo "has not logged in");

外挿:

$openid->identity() ? loggedInFunction() : notLoggedInFunction();
于 2012-08-10T22:50:43.623 に答える