Задать вопрос
@AndrewOverlord

Можно ли на PHP сделать итерацию/цикл внутри «цепочки» методов?

Доброе время суток.
Подскажите пожалуйста новичку в php (да в ООП впрочем тоже), возможно ли вклинить каким-то образом в цепочку методов что-то на подобии foreach()?
Попробую наглядно описать что имею ввиду:
<?php
$a = array('1', '2', 'n');
$c = SomeClass::method_1()
->method_2()
->{ что-то на подобии foreach($a as $b) { 
вызываем n-раз method_3($b) }}
->method_m();

... или альтернативный вариант.

Спасибо.
  • Вопрос задан
  • 2393 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
karneds
@karneds
Что мешает сделать так?
<?php
$a = array('1', '2', 'n');
$c = SomeClass::method_1()->method_2();
foreach($a as $b) { 
    $c = $c->method_3($b);
}
$c->method_m();
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
deadbyelpy
@deadbyelpy
веб-шмеб
class Chain
{
    protected $data;

    public static  function first() {
        $c = new Chain();
        return $c;
     }
    public function second($data) {
     $r = current($data);
     while(next($data)) {
         var_dump($r);
         $this->data[] = $r + 3;
         
         $this->second($data);
     }
     return $this;
    }  

    public function three() {var_dump($this->data); }

}
$a = array(1,2,3);


Chain::first()->second($a)->three();


Такой вариант подойдет? Вызывать методы по цепочке довольно просто, но думаю в вашем случае проще сделать foreach внутри необходимого метода, ведь все равно данные должны придти к method_m после циклической обработки в method_3
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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