laimas,
че смутило строгое сравнение, оно немного быстрее работает, чем с далнейшим приведением типов if (!empty($_GET['code'])) именно так, потому как код читается |
Цитата:
|
Цитата:
Не в скорости дело, а в читаемости |
Цитата:
|
$code = filter_input(INPUT_GET, 'code', FILTER_VALIDATE_INT); if (false === empty($code)) { $_SESSION['code'] = $code; } else //$code 0, Null, false { $code = 769; } $code = filter_input(INPUT_GET, 'code', FILTER_VALIDATE_INT); if (empty($code))//$code 0, Null, false { $code = 769; } else { $_SESSION['code'] = $code; } :victory: |
Poznakomlus,
Это я знаю, но зачем, если гораздо проще if($a = (int)$_GET['key']) используем $a, ведь другого ничего и не ожидается? Об этом и был вопрос. ) |
$_GET['key'] - это ,будет Notice при отсутствии в адресной строке одноименного гет параметра
empty не генерит Notice, так же в php7 тернарный оператор не генерит |
Цитата:
Я не о empty разговор завел, а о том, что ваш код пропускает на сохранение ненужное сценарию значение, и причина не в empty, а в логике. Я сомневаюсь, что у автора темы есть метод/функция которой перенапраляется ввод, и которая делает проверки всех входных данных, используя при этом фильтры или нет. Просто в данном случае если уж вас так беспокоят нотайсы, то хватило бы isset() && (int). А то сперва "сомнительная забота о чем-то", а потом прицепом еще и фильтры. :) |
Цитата:
а затем скомпилить php без вывода ошибок и радоватся, так привыкнете говнокодить Цитата:
к примеру if($code === 0){ echo 'параметр code должен быть числом'; }:haha: |
Цитата:
Цитата:
Да елки палки, вот ваш код, запустите и посмотрите результат. $_GET['code'] = 'text'; $code = 769; if (false === empty($_GET['code'])) { $code = (int)$_GET['code']; $_SESSION['code'] = $code; } echo $_SESSION['code']; |
Часовой пояс GMT +3, время: 20:35. |