Мои настройки php и настройки php на хостинге не ругаются если использовать записьif ($_POST['specialist_id']) {...}
.
Хорошему программисту на php лучше использовать if (isset($_POST['specialist_id'])) {...}
или не возбраняется писать просто if ($_POST['specialist_id']) {...}
?
Рекомендую всегда использовать isset()
в данном контексте.
isset проверяет на существование переменную или элемент массива. А сам if проверяет уже значение. Это совершенно разные конструкции. Рекомендуеться проверять и на наличие переменной и само значение.
+-------------------+-------------+-------------------+
|$var | isset($var) | if($var) |
+-------------------+-------------+-------------------+
|не задана | false | false + E_NOTICE |
+-------------------+-------------+-------------------+
|приводится к false | true | false |
|[],"",false,0,"0" | | |
+-------------------+-------------+-------------------+
|приводится к true | true | true |
+-------------------+-------------+-------------------+
Для полного эквивалента вашего условия нужно проверять не только что переменная задана, но и что значение у нее есть:
if (!empty($_POST['specialist_id'])) {
// эквивалент isset($_POST['specialist_id']) && $_POST['specialist_id']
}
Другим вариантом может быть отключить ругань в вашем варианте:
if (@$_POST['specialist_id'])) {
}
Впрочем на последний многие будут смотреть с опаской и подозрением.
Если в $_POST
не будет ['key']
, то есть $_POST['key']
не будет установлен, будет выведен NOTICE
, а если сделать isset($_POST['key'])
то даже, если этот ключ не будет определен, NOTICE
не будет.
В отличии от empty
конструкция isset
поддерживает оператор and so on
, по этому мы можем использовать такой синтаксис: isset($_POST['key'], $_POST['key2'])
, чего нельзя делать с empty
.
Проверку на то, что переменная или ключ массива существует, нужно делать только в том случае, если вы не уверены, что этой переменной или ключа массива может не быть.
Это относится к тем областям. где переменная или ключ массима создается динамически или может быть удален в ходе.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый день,после установки модуля popup корзины на опенкарт возникла ошибка,то есть при загрузке страницы модулей выдает текст:"Страница,...
У меня есть такой файл из 1C, но не могу получить данные из xml:
При использовании функции gets_s () с какими разделителями может происходить считывание информации с консоли? Какой тип данных возвращает функция...
Помогите с лабой пожалуйста: учим С, и эта прога должна выводить ровную табличку в консоли, но у меня вместо русских символов оркские и сама...