Если $ id не установлен, вызов setdefault ($ id, 0) выдаст предупреждение. Такая функция, как setdefault, не работает в PHP. Используйте это вместо этого.
if (!isset($id)) $id = 0;
Если вы делаете это для переменных массива, таких как $ _GET и $ _POST, вы можете сделать это:
function getuservar($A, $index, $default = '') {
if (!isset($A[$index])) return $default;
if (get_magic_quote_gpc()) return stripslashes($A[$index]);
return $A[$index];
}
$clean_id = getuservar($_GET, 'id', 0);
Эта форма возврата лучше, потому что вы немедленно прекращаете использовать массив $ _GET и используете только те переменные, которые очищены в остальной части кода. Вы очищаете свои внешние переменные один раз и больше никогда не касаетесь внешних переменных в своем коде. $ A может быть $ _GET, $ _POST, $ _REQUEST или $ _COOKIE.
Он также обрабатывает раздражающий материал magic_quote для вас, так что вы знаете, что данные в переменной - это текст, отправленный пользователем. Просто не забудьте очистить его снова при отправке обратно пользователю или в базу данных.