你是否必须在三元运算符PHP中包含一个错误的值?
如果某个变量为真,我需要将附加数据添加到字符串,如果没有,我不需要追加任何内容。目前,我正在做:你是否必须在三元运算符PHP中包含一个错误的值?
$string = (condition()) ? 'something'.$string.'something' : $string;
有没有办法跳过添加虚假选项中三元操作?如果条件为假,那么说$ string = $ string似乎很浪费。
你不能跳过它。您可以重新编写为一行if
条件:
if (condition()) $string = 'something'.$string.'something';
不,无法跳过它。如果你想跳过虚假位,回到if
方法:
if (condition()) $string = 'something' . $string . 'something';
三元方法只是一个短暂的手if
声明反正。如果您可以使if
语句短而又不牺牲可读性(如上例所示),那么您应该考虑它。
不过,说实话,我甚至格式化,使其更可读性:
if (condition())
$string = 'something' . $string . 'something';
除非你急缺显示器的高度,那将是更容易理解一览:-)
是的,您必须。把三元运算符看作一个函数。你会想到会的行为,如果你做了这样的事情,但不想进行分配,如果评估为false
condition()
:
$string = ternary(condition(), $yesValue, $noValue);
没有办法,你可以放弃分配到变量$string
如果condition()
的计算结果为false。
不。这是三元组的关键。如果你不想要一个错误的值,为什么不只是让condition()返回你需要的值呢?
喜欢的东西:
$string = condition($string);
function condition($string){
if($string == 'whatever')
{
$string = 'something'.$string.'something';
}
return $string;
}
我可以看到其他人已经打败我,所以这里是三元文档:
,因为他可能只想显示它是否为真,如果是虚假的则不显示。 – 2015-11-11 22:10:38
@hanoncs - 你刚才建议什么?如果他不想定义错误的处理,那么不要使用三元朴素简单。他的问题没有“可能”。很显然,他只想追求真实,但认为自我重新宣布是虚假的浪费。所以,如果这是一个问题,他正在运行一个函数来检查,为什么不直接说$ string = condition()并让该函数给出字符串的最终结果? – 2015-11-12 16:01:42
这是我的下一个选择,但希望它可以完成。感谢您的确认。 – Ayub 2012-03-01 01:15:13