[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Адекватность кода
Страницы: 1, 2, 3, 4, 5, 6
Valick
Цитата
N0ob чем твой вариант лучше?

не даёт варнинга при отсутсвии $_GET['page']
только взамест логического "и" надо логическое "или"

_____________
Стимулятор ~yoomoney - 41001303250491
glock18
Цитата (Valick @ 19.03.2014 - 05:23)
Цитата
N0ob чем твой вариант лучше?

не даёт варнинга при отсутсвии $_GET['page']
только взамест логического "и" надо логическое "или"

Вы прям так уверены в этом? )
TMake
Valick только что проверил и видимо вы ошибаетесь
glock18
Предложенный фикс из разряда
Цитата

if (isset($var) && !empty($var) && is_int(intval($var)) && !!$var !== !$var && (!($var && false) === $var || true))


Одно слово. Избыточность wink.gif Я не говорю про !is_array, поскольку это возможно опечатка. Хотя и меняет смысл достаточно серьезно.

Оригинальный код не лишен недостатков, да, но конкретно это условие само по себе вполне адекватно.
Valick
Цитата
Вы прям так уверены в этом? )

в том что надо менять логику и "и" на "или" да уверен
в варнингах не особо уверен, да и проверять абсолютно не имею желания
лично я не мешаю мух с котлетами, я сначала принимаю переменную, а уже потом её обрабатываю
$page = isset($_GET['page'])? trim($_GET['page']): '';
if(empty($page) || is_array($page)) $page = 'index';
echo $page;

_____________
Стимулятор ~yoomoney - 41001303250491
glock18
Valick
"Или" в предложенном нубом коде как раз станет порождать warning.

PS: так же как и в изначальном
Valick
glock18, да причем тут варнинги, для начала надо сделать нормальную логику
или по вашему пусть не работает, зато без варнингов? biggrin.gif
у Zzepish, кстати изначально и есть "OR" и ему сразу сказали, что необходимо проверить наличие элемента массива, прежде чем с ним работать

_____________
Стимулятор ~yoomoney - 41001303250491
glock18
Valick
Судил по цитате нуба, да в оригинале нормально все. И в цитате тоже нормально. Вы если не понимаете этого, то проверьте. Мне даже код запускать не нужно, чтобы понять, что там именно не так. Не думал даже, что кому-то проверять надо это специально, но вот выше Степан это сделал, и вам написал об этом.
Valick
if(isset($_GET['page']) && !empty($_GET['page']) && !is_array($_GET['page']))
$_GET['page']='index';
если переменная существует и она не пуста, и она не массив, то тттттррррррам!!! меняем её на index
где логика?
заменим isset на !isset
if(!isset($_GET['page']) && !empty($_GET['page']) && !is_array($_GET['page']))
$_GET['page']='index';
если переменная не существует и она не пуста и она не массив, то тттттррррррам!!! условие не выполняется
где логика?
если переменная существует, но она пуста, то тттттррррррам!!! условие не выполняется
где логика?

_____________
Стимулятор ~yoomoney - 41001303250491
glock18
Valick
Ну это вы были адвокатом этого условия.

Цитированное было
Цитата
if(!empty($_GET['page']) && is_array($_GET['page']))

Что не имеет недочетов.

Еще вы говорили, что в том условии, которое вы так подробно разобрали, нужно просто "и" заменить на "или". Облом, поскольку единственная имеющая какой-то смысл замена
if(isset($_GET['page']) && !empty($_GET['page']) || !is_array($_GET['page']))


Ведет к ситуации, когда is_array может выполняться на неопределенной переменной.
AllesKlar
Цитата (stepan @ 19.03.2014 - 08:59)
N0ob чем твой вариант лучше?

Потому что проверка на существование переменной типа string и на ее пустоту не проводится функцией empty()

Файл 0.php - корректное имя файла.

empty('0') === false

url типа http://site.com?page=%22filename коректен и пройдет у тебя проверку, но файла с именем 'пробел'filename.php существовать не может

http://de3.php.net/manual/ru/function.empty.php

Писать нужно то, что ты конкретно имеешь ввиду.

А конкретно ты имеешь ввиду, что строка существует, и она не пуста.
$bool = isset($str_var) && trim($str_var) != '';



_____________
[продано копирайтерам]
Valick
glock18, я сказал что в условии логическое и надо заменить на логическое или
откуда я мог знать что у кого-то не хватает ума это сделать, мы вроде как на форуме программистов, а не копипастеров

if(!isset($_GET['page']) || empty($_GET['page']) || is_array($_GET['page']))


_____________
Стимулятор ~yoomoney - 41001303250491
Valick
Цитата
Цитированное было
Цитата
if(!empty($_GET['page']) && is_array($_GET['page']))

Что не имеет недочетов.

а если подумать, да умных книжек почитать?

_____________
Стимулятор ~yoomoney - 41001303250491
AllesKlar
ЛЮДИ
Ну кто, КТО??? вас научил проверять пустоту строки с помощью empty() ???
Ну читайте же уже манулаы уже же же...

_____________
[продано копирайтерам]
glock18
Цитата (AllesKlar @ 19.03.2014 - 08:01)
Потому что проверка на существование переменной типа string и на ее пустоту не проводится функцией empty()


Хоспате откуда вы этого набрались вообще
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.