К примеру такой код:
<?php
if ($string) echo $string;
else echo "Переменная не существует";
?>
У меня от такого кода вылезет ошибка
Notice: Undefined variable: string in C:\Apache\localhost\www\index.php on line 3
А как сделать так, чтоб просто появлялось "Переменная не существует", без использования функции isset() ?
alexbel2404
10.11.2013 - 21:33
<?php
if (@$string) echo $string;
else echo "Переменная не существует";
?>
но это говнокод)
зачем тебе без использования isset?
isset это не функция а конструкция языка, и потому работает с соответсвующей очень быстрой скоростью, и собственно специально предназначена для проверки на наличие переменной.
Для чего мне это нужно: Обучаюсь php-программированию по одному видеокурсу, и в видеоуроках как раз-таки у автора такая проверка проходит без использования этой, как вы говорите, Конструкции языка. Это очень удобно, сокращает размер кода, повышает читабельность и плюс к этому не придётся исправлять код автора.
Мне кажется, что это должно выставляться в настройках php.ini или каком-то другом конфигурационном файле, но в каком именно месте искать - не знаю. Кто в курсе дела?
alexbel2404
Так то работает, но не совсем то... Тут просто отключается вывод ошибок, а хотелось бы, чтоб при отсутствии переменной просто возвращался false.
sergeiss
10.11.2013 - 22:26
Altai - это, случайно, не поповский видеокурс?

На самом деле, "избавиться" от нотисов можно. Но не нужно. А нужно писать код так, чтобы нотисов не было. Для этого, в частности, и используется isset() - чтобы проводить грамотные проверки.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
inpost
10.11.2013 - 22:39
AltaiТы учишься на программиста или кого?
Если тебе нужен чай, то ты покупаешь чай, если тебе нужен телефон, то ты покупаешь ТЕЛЕФОН, если тебе надо проверить на существование, то ты пользуешься функцией, которая проверяет переменную на существование, и эта функция есть isset. Всё остальное - извращения.
То, что ты делаешь - пытаешься скрыть ошибку, а скрытая ошибка - это ошибка, которая есть, но которую не видно! Программист - это тот, кто пишет код без ошибок и если ему нужна девушка, то он знакомится с девушкой, а не переодетым в женское платье мужиком! О как загнул!
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Цитата (sergeiss @ 10.11.2013 - 22:26) |
Altai - это, случайно, не поповский видеокурс?  |
Нееет ))) Про Попова начитался уже на этом форуме. Если интересно - курс Михаила Русакова. В плане безопасности там тоже не всё хорошо, но по-лучше Попова (который я к стати тоже прошел

)
Цитата (sergeiss @ 10.11.2013 - 22:26) |
На самом деле, "избавиться" от нотисов можно. Но не нужно. |
Почему не нужно? А если можно, то всё-таки хотелось бы знать как
Цитата (inpost @ 10.11.2013 - 22:39) |
Altai Ты учишься на программиста или кого? Если тебе нужен чай, то ты покупаешь чай, если тебе нужен телефон, то ты покупаешь ТЕЛЕФОН, если тебе надо проверить на существование, то ты пользуешься функцией, которая проверяет переменную на существование, и эта функция есть isset. Всё остальное - извращения.
То, что ты делаешь - пытаешься скрыть ошибку, а скрытая ошибка - это ошибка, которая есть, но которую не видно! Программист - это тот, кто пишет код без ошибок и если ему нужна девушка, то он знакомится с девушкой, а не переодетым в женское платье мужиком! О как загнул! |
Я вижу недопонимание в твоём тексте. Я хочу не ошибки спрятать, а хочу выставить настройку обработки кода таким образом, чтобы при проверке
if ($Variable)
при отсутствии этой самой $Variable возвращало false а не ошибку. Как-бы на автомате isset() работала. Это ведь возможно, я своими глазами это видел. Вот и хочу узнать, КАК ?
Цитата (Altai @ 10.11.2013 - 22:48) |
при отсутствии этой самой $Variable возвращало false а не ошибку. Как-бы на автомате isset() работала. Это ведь возможно, я своими глазами это видел. |
Такое нельзя сделать, а то что ты видел - это отключенный вывод предупреждений.
А отключать вывод ошибок и предупреждений это также плохо как и глобальные переменные.
Цитата (Guest @ 10.11.2013 - 23:02) |
Такое нельзя сделать, а то что ты видел - это отключенный вывод предупреждений. |
Ясно.. А жаль.. Было бы очень удобно...
inpost
10.11.2013 - 23:55
Ну вот, пытаюсь объяснить истину, что выкидывать подобные курсы надо и учиться правильно программировать, даже на примере девушек, а всё равно мимо ушей. Не буду даже себя пиарить, раз ты такой непослушный)
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Цитата (Altai @ 10.11.2013 - 23:26) |
Было бы очень удобно... |
Удобно сегодня и не удобно завтра.
В рабочем проекте, через пол года, в таком коде будешь искать где же эта $string объявляется.
Игорь_Vasinsky
11.11.2013 - 07:16
ужс... как принести воды в ведре, но ведро трогать не нужно.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.