@KronosHD

Как проверить есть ли переменные сразу в одном if?

Есть такой код. Он работает, но...
if(!isset($_GET['id']))
	{
		exit('Отсутствует обязательный параметр "ID"');
	}

Когда я добавляю ещё однут, то выполнение скрипта прекращается. В чём ошибка?
if(!isset($_GET['id'] or $_GET['id2']))
	{
		exit('Отсутствует обязательный параметр "ID"');
	}
  • Вопрос задан
  • 194 просмотра
Решения вопроса 1
@bears
Вот так правильно проверять две переменные:
if (!isset($_GET['id']) || !isset($_GET['id2'])) {
    exit('Отсутствует обязательный параметр "ID"');
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Akdmeh
@Akdmeh
PHP, Yii2, Music
Включайте вывод ошибок и будьте внимательнее.
Вы делаете так: взять значение $_GET['id']. Оно не существует? Проверяем id2. Есть? Значит возвращает единицу. Проверяем с помощью isset, существует ли единица.
А для вас нужно:
if (!isset($_GET['id']) && $_GET['id2']) ...
(если не существует обеих значений). Если нужно, чтобы ошибка выскакивала, если не существует хотя бы одного значения - нужно if (!isset($_GET['id']) || $_GET['id2']) ...
Также для вашей цели лучше подойдет !empty, так как для isset "0" - вполне валидное значение, а для empty - будет возвращать false
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы