【发布时间】:2016-12-26 17:12:25
【问题描述】:
我想有条件地执行两个函数:
while($row = mysql_fetch_assoc($result))
(strtolower($message) == $row['question'])
? msg($row['answer']) && update($row['question'])
: '';
但此代码不起作用。
【问题讨论】:
-
什么不起作用?如果 msg() 返回 false,update() 当然不会触发。
-
msg()和update()的定义是什么?这些可能会导致问题。既然你说
if(strtolower($message) == $row['question']) { msg($row['answer']) && update($row['question'])} else { return ''} -
语法正确,没有错误。函数 msg();和更新();只是mysql_update。此代码没有 update();功能正常工作。当它们是两个功能时,第二个功能不起作用。
-
尝试
||而不是&& -
就像@Bert 所说,
update()函数不会触发,因为您使用的是三元运算符,而三元运算符只使用简单的输入。您唯一能做的就是编写另一个函数,可能是msg_upate(),用它们的参数包装msg()和update(),并将语句更改为:(strtolower($message) == $row['question']) ? msg_update($row['answer']) : '';
标签: php if-statement conditional-operator shorthand