@ilya200

Как описать структуру PHP объекта?

Доброго времени,
php код:
$base->test('string1') ->chek('string')->hello;
Какие будут выглядеть классы, которые смогут описать такой код?
  • Вопрос задан
  • 170 просмотров
Решения вопроса 2
anton_reut
@anton_reut
Начинающий веб-разработчик
Чтобы делать "каскад" последовательных методов тебе нужно в каждом методе возвращать этот же объект.

class Base {
	
	public function test($string){
		// Что то делаем.
		return $this;
	}
	
	public function chek($string){
		// Что то делаем.
		return $this;
	}
	
	public function hello(){
		// Что то делаем.
		return $this;
	}
}

А писать в коде удобнее так:

$base
->test('string1')
->chek('string')
->hello();
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Классы могут выглядеть как угодно.
К синтакису вызова "структура объектов" (на самом деле классов) не имеет никакого отношения.

В РНР используется унифицированный синтаксис. К результату любого выражения в РНР можно обратиться так же как к переменной.
Если выражение возвращает массив, то можно приписать скобочки и обратиться к элементу возвращаемого массива
echo function()[1];
Если выражение возвращает объект, то можно приписать стрелочку обратиться к методу или свойству
echo function()[1]->hello;

Следовательно, чтобы писать стрелочку после метода, метод - сюрприз - должен возвращать объект. Себя или любой другой - без разницы
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы