В других языках программирования (Python, Ruby, Scheme) я привык делать такие вещи, как
$foo = $cat && $dog;
$bar = $fruit || $vegetable;
Я бы ожидал, что $ foo будет назначен на $ dog, если $ cat будет нулевым, и $ bar на $ fruit, если $ fruit не будет нулевым. Кажется, я вспоминаю, как переживал подобные вещи в PHP, и я никогда не знал, как именно логические операторы обрабатывают не булевы операнды. Может кто-нибудь объяснить или указать мне правильное направление? Я попытался прочитать следующую страницу в официальных документах, но это не относится к небулевым значениям:
http://us3.php.net/manual/en/language.operators.logical.php