Код Laravel в ерунде HasAttributes-Trait?

Я просмотрел исходный код laravel и нашел следующий код:

    $attributes = $this->addDateAttributesToArray(
        $attributes = $this->getArrayableAttributes()
    );

Источник

как видите, есть присвоения переменной $attributes. Один из них находится в списке параметров. Хотя это допустимый синтаксис, он немедленно перезаписывается "внешним" назначением.

Зачем кому-то писать такой код? Есть ли какое-то особое поведение, о котором я не знаю?

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

Jerodev 19.06.2018 12:59
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
342
1

Ответы 1

Как ясно видно в комментариях.

If an attribute is a date, we will cast it to a string after converting it to a DateTime / Carbon instance. This is so we will get some consistent formatting while accessing attributes vs. arraying / JSONing a model.

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

Вот пример.

return new HttPStatus(301);
  • не могли бы вы рассказать мне о том, что делает приведенный выше код ?.

    Возможно, вы загуглите и о коде статуса HTTP 301, который говорит нам, что 301 Moved Permanently используется для постоянного перенаправления URL-адресов.

Давайте посмотрим на другой пример.

json_decode($string, true);
  • Можете рассказать, почему мы пропускаем true?

  • какая это цель.?

Если у вас нет опыта работы с json_decode($string, true);, вы еще раз погуглите, почему мы должны передавать true в json_decode().

у нас есть еще один пример.

json_decode($string, $returnArray = true);

Теперь из приведенного выше кода вы можете ясно понять, что если мы передадим true, он вернет массив. $returnArray = true - это просто одноразовая переменная, которая увеличивает читаемость вашего кода.

То же самое и с этим

// If an attribute is a date, we will cast it to a string after converting it
// to a DateTime / Carbon instance. This is so we will get some consistent
// formatting while accessing attributes vs. arraying / JSONing a model.
$attributes = $this->addDateAttributesToArray(
    $attributes = $this->getArrayableAttributes()
);

$attributes = $this->getArrayableAttributes() - это просто случайная переменная, которая сообщает нам, что мы передаем атрибуты, что увеличивает читаемость кода.

Надеюсь это поможет.

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

Fuzzyma 19.06.2018 14:59

Другие вопросы по теме