Метод проверки переменных класса PHP методом - PullRequest
0 голосов
/ 10 ноября 2018

Я хочу отправить массив в метод массива запроса методом внутри класса. так что я пишу что-то вроде этого:

class Check {
   protected $request;

   function __construct($request) {
      $this->request = $request;
   }

   public function author($request) {
       $this->request->merge(['author' => 1 ]);
       $this->identifier($this->request);
   }

   public function identifier($request) {
       $this->request->merge(['identifier' => 'test' ]);
       $this->kip($this->request);
   }

   public function kip($request) {
       $this->request->merge(['kip' => 1 ]);
       $this->NextMethodName($this->request);
   }
  // many more methods here that should merge to $request variable
 } 

Есть ли чистый способ предотвратить повторение $ this-> NextMethodName ($ this-> request)?

1 Ответ

0 голосов
/ 11 ноября 2018

Ну, есть хитрый способ сделать что-то вроде этого

function __construct($request) {

  $this->request = $request;

  // get class methods

  $methods = get_class_methods($this);

  // remove constructor and static call method

  $methods = array_diff($methods, [ '__construct', 'create_save_request']);

  // execute every methods for $request to prepare save request array

  foreach ($methods as $method) call_user_func([$this, $method]);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...