我试图解决问题,并需要了解if语句这是什么说法:一个php语句与一个等号...?这是什么意思?
if ($confirmation = $payment_modules->confirmation()) {
所有我能找到的资源只显示,如果用双等号语句,而不是单一的。这是一个PHP的简写形式吗?它在做什么?
(如果它实际上是错误的语法,将其更改为双等号不能解决问题,因为在某些情况下,它确实返回true,在故障排除情况下,它不返回真正的,直到我刷新浏览器。)
任何帮助非常感谢!
我试图解决问题,并需要了解if语句这是什么说法:一个php语句与一个等号...?这是什么意思?
if ($confirmation = $payment_modules->confirmation()) {
所有我能找到的资源只显示,如果用双等号语句,而不是单一的。这是一个PHP的简写形式吗?它在做什么?
(如果它实际上是错误的语法,将其更改为双等号不能解决问题,因为在某些情况下,它确实返回true,在故障排除情况下,它不返回真正的,直到我刷新浏览器。)
任何帮助非常感谢!
这是速记的形式,这是完全等价的:
$confirmation = $payment_modules->confirmation();
if ($confirmation) {
}
完美,谢谢!我能理解!现在要弄清楚为什么$ payment_modules-> confirmation()是空的,直到我刷新浏览器之后... – FrustratedPHPnovice 2009-10-05 02:59:16
@FrustratedPHPnovice单击此答案旁边的复选框以接受它 – 2009-10-05 12:35:31
是啊! ;)hehehe – nickf 2009-10-05 23:23:01
=
表示赋值($ a = 1),==
用于比较(true == false为false)。我认为在你的例子中它应该使用=
,因为它将它赋值给确认的返回值,这应该是评估为true的东西。
尝试做的var_dump:
var_dump($payment_modules->confirmation());
看到它的计算结果为布尔什么,并从那里,你可以排除故障。如果您需要更多帮助,请发布更多代码。
class test() {
public function confirmation() { return true; }
}
$boolean = test::confirmation();
var_dump($boolean);
将等同于true
var_dump的想法也有帮助。它在刷新之前为空,刷新后用数组内容填充。感谢您的超级快速响应和提供更多帮助。让我把这些信息先运行一下。 – FrustratedPHPnovice 2009-10-05 03:12:52
人有时候喜欢做的任务,然后检查是否分配经历好的。将其与失败时返回错误(或等效)的函数进行配对,您可以同时进行作业和检查。
为了理解这一点,请记住赋值是一种表达式,所以(像所有表达式)都有一个返回值。该返回值与变量中的值相等。这就是为什么你可以这样做
a = b = c = 0;
来分配所有这些变量在同一时间。
这将首先将$payment_modules->confirmation()
的值分配给$confirmation
。 =
运营商将评估新值$confirmation
。
这与写作同样的效果:
$confirmation = $payment_modules->confirmation();
if ($confirmation) {
// this will get executed if $confirmation is not false, null, or zero
}
这更多的是一个元观察,但是当代表性较低的人比代表性较高的代表人更少时,即使答案几乎相同而代表性较低的代表人首先回答,这也不是很有趣吗?有趣的社会现象就是全部。 +1与该代码一起清晰解释。 – mrduclaw 2009-10-05 03:43:56
代码工作,因为赋值返回指定的值,因此如果$payment_modules->confirmation()
是true
,$confirmation
将被设置为true
,然后分配将返回true
。 false
同样的事情。
这就是为什么你可以使用一个命令来分配许多变量,如a = b = 0
。将零分配给b
并返回零。因此,它变成a = 0
。而a
收到零,它会返回该零,可以或不可以使用。
感谢你们所有人为你的AWESOMELY快速响应!哇,我无法告诉你,在一堆挫败中获得快速和有益的回复是多么令人耳目一新!我在下面评论了迄今为止使用的那些。谢谢! – FrustratedPHPnovice 2009-10-05 03:16:54