Creator of https://github.com/railt and https://github.com/phplrt. PHP Russia Conference (https://phprussia.ru/2020 ) co-organizer/program committee member. Maintainer of Laravel Framework Russian Community. Jedi of PHP, JavaScript, GraphQL, C#, Java and OpenSource (OSS) enthusiast.
Контакты
Местоположение
Россия, Москва и Московская обл., Москва

Достижения

Все достижения (26)

Наибольший вклад в теги

Все теги (112)

Лучшие ответы пользователя

Все ответы (300)
  • Как вернуть 2 значения в PHP return?

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    Вариант 1 - Деструктуризация:
    // Возврат нескольких значений:
    function some() {
        return [23, 42];
    }
    
    // Получение
    [$a, $b] = some();
    
    \var_dump($a, $b);


    Вариант 2 - Деструктуризация с ключами:
    // Возврат нескольких значений:
    function some() {
        return ['a' => 23, 'b' => 42];
    }
    
    // Получение
    ['a' => $a, 'b' => $b] = some();
    
    \var_dump($a, $b);


    Вариант 3 - Генераторы с ключами:
    function some() {
        yield 'a' => 23;
        yield 'b' => 42;
    }
    
    foreach (some() as $key => $value) {
      echo $key . ':' . $value; // a:23 b:42
    }


    Вариант 4 - Генераторы без ключей:
    function some() {
        yield 23;
        yield 42;
    }
    
    foreach (some() as $value) {
      echo $value; // 23 42
    }


    Вариант 5 - Генераторы с возвратом:
    function some() {
        yield 23;
        return 42;
    }
    
    $value = some();
    echo $value->current(); // 23
    $value->next();
    echo $value->getReturn(); // 42


    Вариант 6 - DTO:
    class DataTransferObject
    {
        private $a;
        private $b;
    
        public function __construct($a, $b)
        {
            $this->a = $a;
            $this->b = $b;
        }
    
        public function getA()
        {
            return $this->a;
        }
    
        public function getB()
        {
            return $this->b;
        }
    }
    
    function some() {
        return new DataTransferObject(23, 42);
    }
    
    $value = some();
    echo $value->getA(); // 23
    echo $value->getB(); // 42


    И ещё куча всяких вариантов, но мне влом придумывать уже)
    Ответ написан
    4 комментария
  • Что такое библиотека кода?

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    Ну фигачишь ты функцию, которая превращает строки в массив слов в этой строке. И нафигачил ты её настолько круто, что дали тебе премию на работе, а в отдельном тёмном уголке офиса поставили "Уголок Поклонению Делителю Строк". Даже включили в дайджест на хабре.

    Но есть одно "НО", тебе поручили писать новый проект, а ты без этой функции - как без воздуха, ну просто невозможно жить, через неё делятся строчки, выполняется код, покупаются акции Apple и управляются котики с помощью шапочек из фольги. Ну т.е. вообще никак.

    И решил ты её перетащить в другой проект. Но решил не с помощью Ctrl+C -> Ctrl+V, а по-хитрому, создал целый файл с исходным кодом. Так вот этот файл и есть библиотека.

    P.S. В ходе рассказа ни один котик не пострадал.

    P.P.S. Но потом конечно же ты опубликовал её в npm и назвал фреймворком, но это уже другая история...
    Ответ написан
    Комментировать
  • Почему не работает метод save() в связанных моделей?

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    Потому что argument 1 to Illuminate\Database\Eloquent\Realtions\BelongsToMany::save() must be an instance of Illuminate\Database\Eloquent\Model, but an array given.

    Всегда рад помочь, не благодари.
    Ответ написан
    Комментировать
  • Почему не стоит использовать алтрентативный синтаксис PHP?

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    Второй вариант по очевидным причинам - он тупо не работает по-умолчанию в PHP.

    Первый же вкусовщина, можно использовать, никто не запрещает и минусов нет никаких.
    Ответ написан
    Комментировать
  • Чего не хватает моим функциям?

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    Друг, твой код - это феерический трешак, а начальник твой - хуже школьника. Так ему и передай, можешь на меня ссылаться.

    Мой добрый совет - беги оттуда, пока не поздно.
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (32)