twin
Цитата |
Черт дернул меня phpdoc писать. |
Пиши на php 7, он там не нужен, считай устарел =)
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
killer8080
6.09.2016 - 12:19
Цитата (twin @ 6.09.2016 - 12:09) |
В GET нет массивов. Даже int нету. Только строки, да будет тебе известно. |
<input type="checkbox" name="arr[]">
Цитата (Гость_Invis1ble @ 6.09.2016 - 08:13) |
а если я вот так использую твою функцию: echo takeGET('foo');
то какая переменная у меня инициализируется? |
NULL будет. Пустота. Нет параметра, нет значения.
Цитата (Гость_Invis1ble @ 6.09.2016 - 08:13) |
УАХАХАХ! Это пять! Ясно-понятно, так и запишем: twin не знает о возможности передачи массивов через GET. |
Да знаю, чего там не знать. Массив передается строкой, потом только разбирается.
Хорошо, добавлю FILTER_REQUIRE_ARRAY. Хотя сделать это можно было в любой момент. Опять к вопросу о YAGNI.
Что то еще не так?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (twin @ 6.09.2016 - 12:58) |
NULL будет. Пустота. Нет параметра, нет значения. |
То есть никакая переменная не инициализируется? А почему тогда описание функции мне говорит, что у меня инициализируется переменная из GET?
Цитата (twin @ 6.09.2016 - 12:58) |
Что то еще не так? |
Как насчёт чего-нибудь вроде
@param @param @return
function getParam($key, $default = null)
{
return $_GET[$key] ?: $default;
}
? :D
Цитата (Guest @ 6.09.2016 - 09:05) |
То есть никакая переменная не инициализируется? |
Почему? Переменная, содержащая NULL инициализирована. Нотиса при обращении к ней не выкинет.
Цитата (Guest @ 6.09.2016 - 09:05) |
Как насчёт чего-нибудь вроде |
Ты пропустил начало. Это практически первая редакция функции. Ну если на phpdoc не смотреть.
Вот тут можно увидеть.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
killer8080
6.09.2016 - 13:25
Цитата (twin @ 6.09.2016 - 12:58) |
Хорошо, добавлю FILTER_REQUIRE_ARRAY |
зачем? Не всегда же там массив, чаще как раз наоборот.
Цитата (twin @ 6.09.2016 - 09:26) |
function takeGET($key, $default = null, $filter = FILTER_DEFAULT) { $param = filter_input(INPUT_GET, $key, $filter, FILTER_REQUIRE_ARRAY); return (!empty($param) || $param == 0) ? $param : $default; } |
это не будет работать.
Цитата (twin @ 6.09.2016 - 13:12) |
Цитата (Guest @ 6.09.2016 - 09:05) То есть никакая переменная не инициализируется?
Почему? Переменная, содержащая NULL инициализирована. Нотиса при обращении к ней не выкинет. |
где? Функция возвращает значение, а что с ним будет дальше она не решает. Может я её сразу в условие пихну. Никакой инициализации тут нет.
Гость_Invis1ble
6.09.2016 - 13:28
Цитата (twin @ 6.09.2016 - 13:12) |
Почему? Переменная, содержащая NULL инициализирована. Нотиса при обращении к ней не выкинет. |
ещё раз: покажи мне переменную в этом коде
echo takeGET('foo');
Цитата (twin @ 6.09.2016 - 13:12) |
Ты пропустил начало. Это практически первая редакция функции. Ну если на phpdoc не смотреть. Вот тут можно увидеть. |
на самом деле нет,
не пропустилпросто написал не то, что думал, вот исправленная строчка:
return $_GET[$key] ?? $default;
и сравни её с наслоениями костылей, которые тебе пришлось ввести, дабы не было багов
Цитата (Гость_Invis1ble @ 6.09.2016 - 09:28) |
и сравни её с наслоениями костылей, которые тебе пришлось ввести, дабы не было багов |
Блин!
Да идет оно все нафиг. Первая редакция была самая верная. И никаких багов. Запутали меня совсем.
Почему не так, как у тебя - там нотис будет.
UPD Вот и самая яркая иллюстрация принципа KISS. Делай все просто. Иначе залезешь в дебри и не разгребешь.
Вернул первую редакцию. Только название изменил и phpdoc.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Гость_Invis1ble
6.09.2016 - 13:45
Цитата (twin @ 6.09.2016 - 13:40) |
Первая редакция была самая верная. И никаких багов. |
О какой редакции без багов ты говоришь? Код в студию.
Цитата (twin @ 6.09.2016 - 13:40) |
Почему не так, как у тебя - там нотис будет. |
Oh really? Какой нотис?
killer8080
6.09.2016 - 13:48
Цитата (twin @ 6.09.2016 - 13:40) |
Блин! Да идет оно все нафиг. Первая редакция была самая верная. И никаких багов. Запутали меня совсем. |
Цитата (twin @ 6.09.2016 - 09:26) |
/////// ГЛОБАЛЬНЫЕ ФУНКЦИИ ///////
/** * Получает GET параметр по ключу. * * @param string $key * @param string $default * * @return mix */ function takeGET($key, $default = null) { return !empty($_GET[$key]) ? $_GET[$key] : $default; } |
почему '0' заменяется на NULL или дефолт?
Может все таки isset()?
Цитата (killer8080 @ 6.09.2016 - 09:48) |
почему '0' заменяется на NULL или дефолт? |
Не бывает цифровых ключей массива в GET. Это Инвиз меня в блуд ввел.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
killer8080
6.09.2016 - 13:50
Цитата (twin @ 6.09.2016 - 13:49) |
Не бывает цифровых ключей массива в GET. Это Инвиз меня в блуд ввел. |
это же не ключ, а значение из GET
Гость_Invis1ble
6.09.2016 - 13:51
Цитата (twin @ 6.09.2016 - 13:49) |
Это Инвиз меня в блуд ввел. |
Это уже перестаёт быть смешным. Во всём виноват проклятый Инвиз
Цитата (killer8080 @ 6.09.2016 - 09:50) |
это же не ключ, а значение из GET |
Посмотри внимательно. Это ключ. Нельзя вызвать функцию так:
echo takeGET(0);
Это ошибка.
Цитата (Гость_Invis1ble @ 6.09.2016 - 09:51) |
Это уже перестаёт быть смешным. Во всём виноват проклятый Инвиз |
Ну это же ты написал?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
killer8080
6.09.2016 - 14:00
Цитата (twin @ 6.09.2016 - 13:55) |
Посмотри внимательно. Это ключ. Нельзя вызвать функцию так: echo takeGET(0); |
ну во первых можно, во вторых я не об этом. Если значение равно нулю, вернёт null. Логично возвращать null на отсутствующий элемент, а ноль это не пустое значение.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.