Все еще на обучающих колесах PHP-OOP этот вопрос может принадлежать на failblog.org . знак равно
Каковы преимущества цепочки методов в PHP?
Я не уверен, что это важно, но я буду ставить статический метод. например
$foo = Bar::get('sysop')->set('admin')->render();
Из того, что я прочитал, любой метод, который возвращает $this
разрешен к прикованному. Я только что узнал, что это новое в PHP5. Кажется, что могут быть быстрые выгоды, если мне не нужно создавать новый объект (его статически ставить) и просто выбрать несколько методов, которые мне нужны из класса?
У меня есть это право?
Не существует существенных преимуществ при использовании любого подхода, особенно на производственном сервере с байтом кеш-кода.
Цепочка метода – это всего лишь более короткий способ писать вещи. Сравните с более длинной версией:
$foo = Bar::get('sysop'); $foo -> set('admin'); $foo -> render();
Однако у него есть некоторые причуды: типичная среда IDE (например, Eclipse) может автоматически заполнить ваш код в более длинной версии (пока известен тип $foo
), но вам нужно документировать возвращаемый тип всех методов для работайте в короткой версии.
Он все еще создает объект; он просто не привязан к переменной. В принципе, вы просто вызываете методы анонимного объекта.
Я думаю, что любая экономия цикла будет незначительной, но я думаю, что неназначенные объекты будут освобождены сразу после этой строки кода, поэтому у вас может быть некоторая экономия памяти (вы могли бы сделать то же самое, установив назначенные объекты в null
когда вы закончите с их).
Основная причина, по которой люди используют цепочку методов для удобства; вы делаете много в одной строке кода. Лично я считаю, что это беспорядочно и неподвластно.
если мне не нужно создавать экземпляр нового объекта (его статически ставить) и просто выбрать несколько методов, которые мне нужны из класса?
Неправильно! Чтобы вернуть $this
, класс должен быть создан.