Часто в PHP я вижу:
$result = mysql_query($query) or die();
Исходя из python, я знаю, почему это должно работать, потому что or
возвращает первое значение, если оно истинно в булевом контексте, а второе значение в противном случае (см. это).
Но когда я попробую вышеупомянутую технику в PHP в другом контексте, например, что-то вроде:
$name = "John Doe";
echo $name or "Anonymous";
or
не возвращает первое значение ( "John Doe" ), оно возвращает 1.
Почему это работает в случае результата mysql_query(), но не в других случаях? Плохо ли это использовать в случае mysql_query() (игнорируйте тот факт, что я не возвращаю пользователю полезную ошибку)?