Проверка переменой на пустоту!

Vladson

Сильнобухер
Чес говоря (задумался об этом ещё до того как собаки в коде перестали тормозить, но было известно что это будет сделано) реально считаю что сейчас в РНР (в силу его природы) действительно переменную (текстовую) достаточно проверять только на длинну. Типа.
Код:
$username = strlen(@$username) ? $username:  'default';
Код:
$username = strlen(@$username) > 2 ? $username:  die('short username');
или (использование die правда для примера, в реале по ситуации надо действовать)
с числами похожая ситуация, там проверять например на наличие только чисел (и знака минуса если отрицательные допустимы, итд, как именно и на что проверять это уже детали)

РНР это собственно не ассемблер где переменная указывает на неопределённое место памяти где непонятно что хранится, она либо имеет нужные данные (массивы, числа, строки, бульки, итд) либо не имеет. С точки зрения отладки куча проверок на всякие пустые или не пустые, только усложняется дебаг. (Хотя многие думают что наоборот чем подробнее проверки тем проще дебаг.)

Если у вас в скрипте есть разница между тем не пришла переменная, пришла пустая, или в ней не то что нужно, это какой-то некрасивый подход к самому проектированию. Мы либо получаем конкретные и главное корректные данные, либо не получаем.

- Неверные данные пришли ? (будь то попытка инъекции, или неверное действие честного пользователя)
- Пришло не то что ждали ? Юзаем дефолт. Если переменная не подразумевает дефолта (как в случае например с открытием страницы под номером "1' or 1=1") закрываем скрипт, клиенту даём 404. Никаких "сюси-муси"
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Пришел ученик к Учителю и спросил: "Является ли ноль пустотой?"
Учитель попросил ученика дать ему ноль.
Ученик сказал: "Ноль разочаровал меня, теперь я не вижу в нем особого смысла!"
Учитель ответил: "Выброси его".
Ученик возразил: "Как я могу выбросить то, чего нет?"
"Если не можешь, неси с собой", - ответил Учитель.

Их разговор услышал другой ученик, обозвал первого жидом, и следующий час весь монастырь наблюдал схватку двух ёкодзун.

https://ru.wikipedia.org/wiki/Шуньята
 
Последнее редактирование:

grigori

( ͡° ͜ʖ ͡°)
Команда форума
думаю, стоит перенести в теорию программирования

grigori, поездки в Амстердам на тебя плохо влияют %)
ты что, это же прекрасно!

"Смысл конструкции пустоты неотделим от смысла языка РНР. Если ты не видишь смысла в пустоте, возможно, тебе нужен другой язык"
 
Последнее редактирование:

флоппик

promotor fidei
Команда форума
Партнер клуба
И Фанат пророк его. Аминь!

%)
Я безусловно согласен, что эпично)) Просто удивляюсь, как ты такие ассоциации выхватываешь)
 
Сверху