В чем разница между void и self в методе установки

Я начинаю использовать систему отображения ORM доктрины.

В чем разница между void и self в функции установки?

Пустота

/**
* @param string|null $firstname
*/
public function setFirstname(?string $firstname): void
{
    $this->firstname = $firstname;
}

а также

СЕБЯ

/**
* @param string|null $firstname
*/
public function setFirstname(?string $firstname): self
{
    $this->firstname = $firstname;
    return $this
}

@MagnusEriksson это можно опубликовать как ответ

Cid 08.04.2019 14:31

Просто заявим это прямо: ни вопрос, ни ответ никоим образом не ограничиваются сущностями доктрины. self и void подсказки типа возвращаемого значения являются языковой функцией php.

simon.ro 09.04.2019 09:02
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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 и хотите разрабатывать...
2
2
559
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

пустота

void означает, что метод ничего не возвращает. (Добавлено в PHP 7.1). Из документации:

A void return type has been introduced. Functions declared with void as their return type must either omit their return statement altogether, or use an empty return statement. NULL is not a valid return value for a void function.

себя

self означает, что метод возвращает экземпляр класса (для цепочки методов и т. д.). Это означает, что вы можете использовать класс следующим образом:

$class->setFirstname('Foo')->setLastname('Bar');

Если вы посмотрите на ваши два метода, вы увидите, что один с void не содержит return-утверждения, а второй содержит return $this.

Примечание: Так же, как @simon.ro упоминает в комментарии под исходным вопросом:

Just to state that explicitly: neither the question nor the answer are in any way confined to Doctrine Entities. self and void return type hints are a language feature of php.

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