-1

在我的网站上,三元运算符被全部使用,我正在考虑尝试更新它们以合并。这只是一个例子,我希望得到有关进行过渡的提示/建议。合并的事情是它发送它找到的第一个值/字符串,所以我不确定合并是否可能?

echo (
($member_logged_in == 1)
? '<a href="profile.php">My Profile</a>'
: '<a href="login.php">Login</a>'
);

是否有可能将其变成合并或我应该坚持使用三元运算符?

4

2 回答 2

0

只要您打算使用整数或布尔值来控制模板内容,那么您将无法使用逻辑语句。

仅有的两种选择是使用三元默认运算符,或者编写一个辅助函数。

// replace boolean with a string or null
$member_logged_in = '<a href="profile.php">My Profile</a>';
//.....
echo $member_logged_in ?: '<a href="login.php">Login</a>';

使用逻辑函数

function __($a,$b,$c) { return $a ? $b : $c; }
//........
echo __($member_logged_in, '<a href="profile.php">My Profile</a>', '<a href="login.php">Login</a>');

理想情况下,您的模板中不应该有任何条件。您可以注入一个名为的变量,该变量$menu包含要显示的链接,并且模板不应该关心成员是否登录。

于 2017-04-03T17:51:11.220 回答
0

如果第??一个操作数存在且不为空,则返回。$member_logged_in如果等于 ,您想输出一个字符串1

??在这种情况下,您不应该使用运算符。

于 2017-04-03T17:45:10.617 回答