Здравствуйте, вопрос от нуба в PHP. Объясните мне, пожалуйста, почему информация о переменной $x, заданной как Код (Text): <?php $x = true xor true ?> при выводе с помощью Код (Text): <?php var_dump($x); ?> выводится bool(true), хотя ожидается bool(false). Решение проблемы есть: поставить скобки в значении переменной при объявлении, т.е. : Код (Text): <?php $x = (true xor true) ?> Только тогда выводится bool(false). Но почему так важны эти скобки? Заранее спасибо!
Потому что присваивание имеет высший приоритет, чем xor (в пыхе, как в сишке, присвание возвращает значение). Зачем так сделано - хрен его знает Я правда не помню, когда в последний раз писал xor
А, то есть PHP берет только <?php $x = true ?>, ясно. Ну хоть понятнее стало, спасибо большое! --- Добавлено --- Додуматься да такого для меня было бы сложно.
PHP "берёт" всё выражение, которое записано. Делов порядке выполнения операторов присваивания и исключающего или. Чтобы не додумываться: PHP: Руководство по PHP - Manual О приоритете: PHP: Приоритет оператора - Manual