LINUX.ORG.RU

[php]оператор @

 


0

0

Господа phpшники-профессионалы, вам вопрос от любителя.

Часто надо писать что-то вроде

if(isset($_GET['param']) && $_GET['param']!=0 /*или !='' или !='0'*/ )

в таких случаях я считаю разумным писать

if(@$_GET['param'])

Я прав? Если нет, то почему?

PS проверка допустимости значения делается, конечно, в обязательном порядке, но позже.

★★★★★

>if(isset($_GET['param']) && $_GET['param']!=0 /*или !=" или !='0'*/ )

if(!empty($_GET['params']))

Я прав? Если нет, то почему?


На эту тему можно очень много спорить с разумными аргументами обеих сторон. Для меня вопрос малоактуален, так как в PHP программирую обычно на уровне фреймворка, а там такие проверки - редкость.

KRoN73 ★★★★★
()
Ответ на: комментарий от legolegs

Соответственно, если логику if'а поменять, можно от not избавиться.

Ещё часто полезно что-то типа такого:

function defval($data, $key, $default = NULL)
{
    if(($val = @$data[$key])) // тут @ по моим принципам допустима
        return $val;

    return $def;
}

$page = defval($_GET, 'page', 1);
$id = defval($_GET, 'id');

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Парсилка аргументов со значениием по умолчанию там и так есть, но мне именно надо менять логику в зависимости от присутствия параметра.

legolegs ★★★★★
() автор топика
Ответ на: комментарий от legolegs

Тогда правильнее всего - empty().

Главное не путаться с логикой isset(), но это, судя по топикстарту, ты уже понял :)

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.