【发布时间】:2016-02-08 14:58:09
【问题描述】:
在构建一个小型反馈解决方案时,人们可以给多个星(在 0 到 5 之间),我注意到所有用户提交的评分都只存储了 1 星。
我自己试过了,提交5星,后台还是1星。
所以我查看了代码,这是导致问题的部分:
$feedback->rating = ($wire->input->post->rating || 1);
实际上,|| 运算符并没有像我怀疑的那样做。
事实上,它每次只返回 1(除非双方都是 $false)。
查看下面的示例代码:
$example1 = ($true || 5);
$example2 = ($false || 5);
$example3 = ($false || $false);
$example4 = (5 || 0);
echo $example1."\n";
echo $example2."\n";
echo $example3."\n";
echo $example4."\n";
我也在这里粘贴了:https://eval.in/514978.
我的假设是,PHP 尝试根据给定的元素将语句转换为整数(0 或 1),这是真的吗?
我经常在 JavaScript 中使用 || 运算符,我可以在其中输入
var i = myFunction() || "default";
这将检查 myFunction() 是否返回布尔值,如果不只使用右侧值(而不是将所有内容都转换为 int)。
【问题讨论】:
-
你为什么不直接谷歌Logical operators PHP?这些关于type casting in php的知识和知识将是答案。
标签: php logical-operators