Для сравнения строк я бы порекомендовал использовать оператор тройного равенства по двойным равным.
// This evaluates to true (this can be a surprise if you really want 0)
if ("0" == false) {
// do stuff
}
// While this evaluates to false
if ("0" === false) {
// do stuff
}
Для проверки переменной $ _GET я скорее использую array_key_exists, isset может вернуть false, если ключ существует, но содержимоеимеет значение null
что-то вроде:
$_GET['param'] = null;
// This evaluates to false
if (isset($_GET['param'])) {
// do stuff
}
// While this evaluates to true
if (array_key_exits('param', $_GET)) {
// do stuff
}
По возможности избегайте выполнения заданий, таких как:
$myVar = $_GET['param'];
$ _ GET, зависит от пользователя.Таким образом, ожидаемый ключ может быть доступен или нет.Если ключ недоступен при доступе к нему, уведомление о времени выполнения будет активировано.Это может заполнить ваш журнал ошибок, если уведомления включены, или спам ваших пользователей в худшем случае.Просто создайте массив array_key_exists, чтобы проверить $ _GET, прежде чем ссылаться на ключ.
if (array_key_exists('subject', $_GET) === true) {
$subject = $_GET['subject'];
} else {
// now you can report that the variable was not found
echo 'Please select a subject!';
// or simply set a default for it
$subject = 'unknown';
}
Источники:
http://ca.php.net/isset
http://ca.php.net/array_key_exists
http://php.net/manual/en/language.types.array.php