два знака равенства в php при НЕ сравнении - PullRequest
0 голосов
/ 08 декабря 2011

Что означают два знака равенства, когда их не используют для сравнения?

$saveOrder  = $listOrder == 'a.ordering';

Я никогда не видел ничего подобного в php .... Я просматриваю ссылки на административный компонент Joomla 1.7.

Спасибо

Ответы [ 5 ]

2 голосов
/ 08 декабря 2011

Это используется для сравнения. За исключением результат сравнения присваивается $saveOrder.

Следующий код:

<?php

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

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

присваивает true переменной $saveOrder1 и false переменной $saveOrder2. Если вы не верите, проверьте себя здесь .

1 голос
/ 08 декабря 2011

Они сравнивают.Он просто не заключен в круглые скобки (как выражение сравнения с if / while / etc).

$saveOrder будет присвоено либо true, либо false (результат условия).

0 голосов
/ 08 декабря 2011
$listOrder1='a.ordering';
$listOrder1='wrong'
$saveOrder1  = $listOrder1 == 'a.ordering';//1
$saveOrder2  = $listOrder2 == 'a.ordering';//

Вы можете увидеть результат при печати, первый из которых будет 1, тогда как второй вернет: (то есть ничего)

0 голосов
/ 08 декабря 2011

В вашем утверждении также двойной знак равенства (==), используемый только для сравнения.На самом деле ваше утверждение содержит операторы «присваивания» (=) и «сравнения» (==), что приводит к вашей путанице.

Это эквивалентно $saveOrder = ($listOrder == 'a.ordering');, поэтому сначала сравните $ listOrder с 'a.ordering' и присвойте результат (true или false) переменной $ saveOrder.

Надеюсь, это устранит вашу путаницу, если нет, дайте мне знать один раз.

0 голосов
/ 08 декабря 2011

Я думаю, это то же самое, что и $saveOrder = ($listOrder == 'a.ordering');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...