我想在字符串中评估一个简单的三元运算符,但似乎找不到正确的语法。
我的代码如下所示:
foreach ($this->team_bumpbox as $index=>$member)
echo ".... class='{((1) ? abc : def)}'>....";
但我似乎无法让它正常工作。关于如何实现这一点的任何想法?
我想在字符串中评估一个简单的三元运算符,但似乎找不到正确的语法。
我的代码如下所示:
foreach ($this->team_bumpbox as $index=>$member)
echo ".... class='{((1) ? abc : def)}'>....";
但我似乎无法让它正常工作。关于如何实现这一点的任何想法?
本质上,您不能在字符串内部执行此操作。您需要点连接。像这样的东西:
echo ".... class='" . (1 ? "abc" : "def") . "'>....";
好吧,您实际上可以这样做:
$if = function($test, $true, $false)
{
return $test ? $true : $false;
};
echo "class='{$if(true, 'abc', 'def')}'";
我会让你决定是纯粹的优雅还是纯粹的疯狂。但是请注意,与真正的条件运算符不同,函数的两个参数总是被计算。