Подскажите, пожалуйста, где можно узнать про использование в скриптах "or die" Например в этом случае, когда будет выведено "Вы не выбрали победителя"? PHP: $winner = $_POST['winner'] or die("Вы не выбрали победителя")); А в других случаях? что вообще это за команда or? (конечно я догадываюсь интуитивно, что в случае ошибки, но хотелось бы конкретнее) В мане и гугле не нашел если плохо искал, помогите найти ;-).
Логические операторы die or - или. В твоём коде говорится "присвой переменной $winner значение $_POST['winner'], или умри" Сообщение будет выведено, если в $_POST[] нету ключа winner, тоесть это поле не было отправлено пользователем. Сценарий прекратит свою работу.
Да, я делал по-другому, (проверял каждый инпут и затем ошибки все выводил рядом с необходимыми полями ввода). Это я разбираю чужой код, и понял что не знаю как работает это дело. что я узнал из мана? Логическое ИЛИ, и эквивалент "Output a message and terminate the current script" и еще: "оператор присвоения означает, что левый операнд получает значение правого выражения". не могу понять Код (Text): function foo($somevar) { echo "In foo() $somevar<br />\n"; return "ReturnedValue"; } print foo() or die ("an error"); Вот тут почему не выводит "an error" а только Пример, понимаю дурацкий Хочса разобраться просто.
Потому что парсер натыкается на ошибку в синтаксисе раньше, чем происходит вывод. (См. что писал Clone)
1) PHP: $a=5; //=0; $c=0; $b=$a or $c=1; echo 'a='.$a.' b='.$b.' c='.$c; $a=(2+3)*4; foo() всегда вернет истину (непустую строку, не равную "0"), поэтому die никогда не выполнится. а вот если PHP: function check($x) { return ($x>0); } $a=0; echo check($a) or die('error');
PHP: <?php function check() { return (0); } echo check() or die('error'); Вывод: error function check() { // пусто } echo check() or die('error'); Вывод: error function check() { return (1); } echo check() or die('error'); вывод: 1 //и вообще NULL or die ('error') ?> то есть другими словами or die "срабатывает" при возврате 0 либо NULL ? верно? спасибо, теперь понятно
Гон. Функция, определяющая, что ей обязательно нужен один параметр(переменная $somevar) без него не запустится.
Давнишняя моя тема Хотелось бы ответить на свой первый пост: (Из книги Котерова Самоучитель PHP 5) Конструкция ordie() Давайте еще раз посмотрим на предыдущие примеры. Обратите внимание на доселе не встречавшуюся нам конструкцию or die о'. Ее особенно удобно применять как раз при работе с файлами. Как мы знаем, оператор or имеет очень низкий приоритет (даже ниже, чем у =), поэтому в нашем примере всегда выполняется уже после присваивания. Иными словами, первая строчка примера с точки зрения РНР выглядит так: ($f=fopen("/home/user/file.txt", "r")) or die("Ошибка!"); Конечно, то, что or обозначает "логическое ИЛИ" в нашем случае не так интересно (ибо возвращаемое значение просто игнорируется). Нас же сейчас интересует другое свойство оператора: выполнять второй свой операнд только в случае ложности первого. Смотрите: если файл открыть не удалось, fopen о возвращает false, а значит, осуществляется вызов die о "на другом конце" оператора or. Заметьте, что нельзя просто так заменить or на, казалось бы равнозначный ему оператор | |, потому что последний имеет гораздо более высокий приоритет — выше, чем у =. Таким образом, в результате вызова функции $f=fopen("/home/user/file.txt", "r") || die("Ошибка!"); в действительности будет выполнено $f = (fopen("/home/user/file.txt", "r") II die("Ошибка!")); Как видите, это не совсем то, что нам нужно. -------------------------- Читать книги очень полезно. Причем прежде чем садится чтото делать, а не после Столько бы времени сэкономил себе и людям, если бы раньше сел и почитал от корки до корки.