Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (3) 1 [2] 3  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Обсуждение инфраструктуры
Arh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2110
Пользователь №: 27172
На форуме: 5 лет, 8 месяцев, 7 дней
Карма: 70




twin
Цитата
Черт дернул меня phpdoc писать. smile.gif

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


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8737
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 7 дней
Карма: 591




Цитата (twin @ 6.09.2016 - 12:09)
В GET нет массивов. Даже int нету. Только строки, да будет тебе известно.

<input type="checkbox" name="arr[]">
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 6 дней
Карма: 299

Трезвый :
5 лет, 11 месяцев, 16 дней


Цитата (Гость_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
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Цитата (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
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 6 дней
Карма: 299

Трезвый :
5 лет, 11 месяцев, 16 дней


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

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

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


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

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

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8737
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 7 дней
Карма: 591




Цитата (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 инициализирована. Нотиса при обращении к ней не выкинет.

где? Функция возвращает значение, а что с ним будет дальше она не решает. Может я её сразу в условие пихну. Никакой инициализации тут нет.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Гость_Invis1ble  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Цитата (twin @ 6.09.2016 - 13:12)
Почему? Переменная, содержащая NULL инициализирована. Нотиса при обращении к ней не выкинет.

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


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

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

и сравни её с наслоениями костылей, которые тебе пришлось ввести, дабы не было багов
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 6 дней
Карма: 299

Трезвый :
5 лет, 11 месяцев, 16 дней


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

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

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

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

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


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

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

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Гость_Invis1ble  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









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

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

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

Oh really? Какой нотис?
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8737
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 7 дней
Карма: 591




Цитата (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()?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 6 дней
Карма: 299

Трезвый :
5 лет, 11 месяцев, 16 дней


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


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

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

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8737
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 7 дней
Карма: 591




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

это же не ключ, а значение из GET
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Гость_Invis1ble  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Цитата (twin @ 6.09.2016 - 13:49)
Это Инвиз меня в блуд ввел.

Это уже перестаёт быть смешным. Во всём виноват проклятый Инвиз ohmy.gif
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 6 дней
Карма: 299

Трезвый :
5 лет, 11 месяцев, 16 дней


Цитата (killer8080 @ 6.09.2016 - 09:50)
это же не ключ, а значение из GET

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


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

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

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8737
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 7 дней
Карма: 591




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

ну во первых можно, во вторых я не об этом. Если значение равно нулю, вернёт null. Логично возвращать null на отсутствующий элемент, а ноль это не пустое значение.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (3) 1 [2] 3  Ответ в темуСоздание новой темыСоздание опроса