php中不进行比较时的两个等号

php中不进行比较时的两个等号,php,syntax,Php,Syntax,当不用于比较时,这两个等号是什么意思 $saveOrder = $listOrder == 'a.ordering'; 我在php中从未见过这样的东西。。。。我正在查看weblinks Joomla 1.7管理组件 谢谢我想这和$saveOrder=($listOrder='a.ordering')是一样的; 我猜它与$saveOrder=($listOrder=='a.ordering')相同; 他们正在比较。它只是没有用括号括起来(就像比较表达式中的if/while/etc) $save

当不用于比较时,这两个等号是什么意思

$saveOrder  = $listOrder == 'a.ordering';
我在php中从未见过这样的东西。。。。我正在查看weblinks Joomla 1.7管理组件


谢谢

我想这和
$saveOrder=($listOrder='a.ordering')是一样的;

我猜它与
$saveOrder=($listOrder=='a.ordering')相同;

他们正在比较。它只是没有用括号括起来(就像比较表达式中的
if
/
while
/etc)


$saveOrder
将被分配
true
false
(条件的结果)。

它们正在比较。它只是没有用括号括起来(就像比较表达式中的
if
/
while
/etc)


$saveOrder
将被分配
true
false
(条件的结果)。

用于比较。除了之外,比较结果被分配给
$saveOrder

以下代码:

<?php

list($listOrder1, $listOrder2) = array('a.ordering', 'a.something_else');

$saveOrder1  = $listOrder1 == 'a.ordering';
$saveOrder2  = $listOrder2 == 'a.ordering';

用于比较。除了之外,比较结果被分配给
$saveOrder

以下代码:

<?php

list($listOrder1, $listOrder2) = array('a.ordering', 'a.something_else');

$saveOrder1  = $listOrder1 == 'a.ordering';
$saveOrder2  = $listOrder2 == 'a.ordering';

在您的语句中,双等号(=)也仅用于比较。实际上,您的语句同时包含'assignment'(=)和'comparison'(==)运算符,这会导致您的混淆

这相当于
$saveOrder=($listOrder=='a.ordering'),因此首先将$listOrder与“a.ordering”进行比较,并将结果(true或false)分配给$saveOrder


希望这能澄清您的困惑,如果不让我知道一次的话。

在您的声明中,双等号(=)也仅用于比较目的。实际上,您的语句同时包含'assignment'(=)和'comparison'(==)运算符,这会导致您的混淆

$listOrder1='a.ordering';
$listOrder1='wrong'
$saveOrder1  = $listOrder1 == 'a.ordering';//1
$saveOrder2  = $listOrder2 == 'a.ordering';//
这相当于
$saveOrder=($listOrder=='a.ordering'),因此首先将$listOrder与“a.ordering”进行比较,并将结果(true或false)分配给$saveOrder

希望这清楚你的困惑,如果不让我知道一次

$listOrder1='a.ordering';
$listOrder1='wrong'
$saveOrder1  = $listOrder1 == 'a.ordering';//1
$saveOrder2  = $listOrder2 == 'a.ordering';//
打印时可以看到输出,第一个将为
1
,而第二个将返回:
(即无)


打印时可以看到输出,第一个将是
1
,而第二个将返回:
(即无)

什么使您认为它没有被用于比较?在我看来,它就像是对比较
$listOrder
'a.ordering'
的布尔结果的
$saveOrder
变量的赋值。你怎么会认为它不用于比较?在我看来,它就像是对比较
$listOrder
'a.ordering'
的布尔结果的
$saveOrder
变量的赋值。