[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обсуждение инфраструктуры
Страницы: 1, 2, 3
Arh
twin
Цитата
Черт дернул меня phpdoc писать. smile.gif

Пиши на php 7, он там не нужен, считай устарел =)

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
killer8080
Цитата (twin @ 6.09.2016 - 12:09)
В GET нет массивов. Даже int нету. Только строки, да будет тебе известно.

<input type="checkbox" name="arr[]">
twin
Цитата (Гость_Invis1ble @ 6.09.2016 - 08:13)
а если я вот так использую твою функцию:
echo takeGET('foo');

то какая переменная у меня инициализируется?
NULL будет. Пустота. Нет параметра, нет значения.
Цитата (Гость_Invis1ble @ 6.09.2016 - 08:13)
УАХАХАХ! Это пять! Ясно-понятно, так и запишем: twin не знает о возможности передачи массивов через GET.
Да знаю, чего там не знать. Массив передается строкой, потом только разбирается.

Хорошо, добавлю FILTER_REQUIRE_ARRAY. Хотя сделать это можно было в любой момент. Опять к вопросу о YAGNI.

Что то еще не так? smile.gif

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Guest
Цитата (twin @ 6.09.2016 - 12:58)
NULL будет. Пустота. Нет параметра, нет значения.

То есть никакая переменная не инициализируется? А почему тогда описание функции мне говорит, что у меня инициализируется переменная из GET?

Цитата (twin @ 6.09.2016 - 12:58)
Что то еще не так?

Как насчёт чего-нибудь вроде
    /**
* Получение параметра запроса
*
*
@param string $key
*
@param string|array $default
*
*
@return string|array|null
*/

function getParam($key, $default = null)
{
return $_GET[$key] ?: $default; // KISS motherf***er!
}

? :D
twin
Цитата (Guest @ 6.09.2016 - 09:05)
То есть никакая переменная не инициализируется?

Почему? Переменная, содержащая NULL инициализирована. Нотиса при обращении к ней не выкинет.
Цитата (Guest @ 6.09.2016 - 09:05)
Как насчёт чего-нибудь вроде

Ты пропустил начало. Это практически первая редакция функции. Ну если на phpdoc не смотреть. smile.gif Вот тут можно увидеть.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
killer8080
Цитата (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
Цитата (twin @ 6.09.2016 - 13:12)
Почему? Переменная, содержащая NULL инициализирована. Нотиса при обращении к ней не выкинет.

ещё раз: покажи мне переменную в этом коде
echo takeGET('foo');


Цитата (twin @ 6.09.2016 - 13:12)
Ты пропустил начало. Это практически первая редакция функции. Ну если на phpdoc не смотреть.  Вот тут можно увидеть.

на самом деле нет, не пропустил
просто написал не то, что думал, вот исправленная строчка:
return $_GET[$key] ?? $default;

и сравни её с наслоениями костылей, которые тебе пришлось ввести, дабы не было багов
twin
Цитата (Гость_Invis1ble @ 6.09.2016 - 09:28)
и сравни её с наслоениями костылей, которые тебе пришлось ввести, дабы не было багов

Блин!
Да идет оно все нафиг. Первая редакция была самая верная. И никаких багов. Запутали меня совсем.

Почему не так, как у тебя - там нотис будет.

UPD Вот и самая яркая иллюстрация принципа KISS. Делай все просто. Иначе залезешь в дебри и не разгребешь.

Вернул первую редакцию. Только название изменил и phpdoc.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Гость_Invis1ble
Цитата (twin @ 6.09.2016 - 13:40)
Первая редакция была самая верная. И никаких багов.

О какой редакции без багов ты говоришь? Код в студию.

Цитата (twin @ 6.09.2016 - 13:40)
Почему не так, как у тебя - там нотис будет.

Oh really? Какой нотис?
killer8080
Цитата (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()?
twin
Цитата (killer8080 @ 6.09.2016 - 09:48)
почему '0' заменяется на NULL или дефолт?
Не бывает цифровых ключей массива в GET. Это Инвиз меня в блуд ввел.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
killer8080
Цитата (twin @ 6.09.2016 - 13:49)
Не бывает цифровых ключей массива в GET.  Это Инвиз меня в блуд ввел.

это же не ключ, а значение из GET
Гость_Invis1ble
Цитата (twin @ 6.09.2016 - 13:49)
Это Инвиз меня в блуд ввел.

Это уже перестаёт быть смешным. Во всём виноват проклятый Инвиз ohmy.gif
twin
Цитата (killer8080 @ 6.09.2016 - 09:50)
это же не ключ, а значение из GET

Посмотри внимательно. Это ключ. Нельзя вызвать функцию так:
echo takeGET(0);
Это ошибка.
Цитата (Гость_Invis1ble @ 6.09.2016 - 09:51)
Это уже перестаёт быть смешным. Во всём виноват проклятый Инвиз
Ну это же ты написал?


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
killer8080
Цитата (twin @ 6.09.2016 - 13:55)
Посмотри внимательно. Это ключ. Нельзя вызвать функцию так:
echo takeGET(0);

ну во первых можно, во вторых я не об этом. Если значение равно нулю, вернёт null. Логично возвращать null на отсутствующий элемент, а ноль это не пустое значение.
Быстрый ответ:

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