Я создал одноэлементный класс с методами цепочки (для использования в шаблоне).
Чтобы цепочка работала, мне нужно вернуть new static
. Это позволяет добавить следующую цепочку. У меня проблема в том, что я не хочу возвращать статический объект, если больше нет цепочек.
Пример
<?php
class bread {
public static $array;
public static function blueprints() {
static::$array = array('some', 'values');
return new static;
}
public static function fields() {
return static::$array;
}
}
$blueprints = bread::blueprints();
$fields = bread::blueprints()->fields();
print_r($blueprint) // Returns object - FAIL
print_r($fields ) // Returns array - OK
В приведенном выше примере я хочу, чтобы $blueprints
возвращал массив, потому что к нему больше не привязаны методы.
Как это сделать?
$a = B::c(); $a->d()
? Нет разумного способа обнаружить это. Вы также плохо смешиваете статические и нестатические вызовы. Совершенно не здравый подход. - person deceze♦   schedule 29.03.2017bread::blueprint('projects', 'en')->fields('title')->value('label');
, чтобы он был однострочным, но вместо этого мне, вероятно, нужно использовать массив аргументов. Спасибо! - person Jens Törnell   schedule 29.03.2017