Помощь по list()

Вероломство

не могу понять я её

вот массив

Код (Text):
  1. array (size=3)
  2.   ‘module’ => string ‘guest’ (length=6)
  3.   ‘controller’ => string ‘Home’ (length=4)
  4.   ‘action’ => string ‘index’ (length=5)

вот он прилетел в конструктор

PHP:
  1. public function __construct($route)
  2. {
  3.     list($this->module, $this->controller, $this->view) = $route; // тут отлуп
  4. }

отлуп: Undefined offset: 0

поясните, что я не так делаю

 

mkramer

miketomlin

 

MouseZver

PHP:
  1. <?php
  2.  
  3. class foo
  4. {
  5.     public function __construct ( $route )
  6.     {
  7.         [
  8.             ‘module’ => $this -> module,
  9.             ‘controller’ => $this -> controller,
  10.             ‘action’ => $this -> view
  11.         ] = $route;
  12.     }
  13. }
  14.  
  15. var_dump ( new foo( [
  16.     ‘module’ => ‘guest’,
  17.     ‘controller’ => ‘Home’,
  18.     ‘action’ => ‘index’
  19. ] ) );

В PHP8 еще интереснее.

 

Вероломство

а где $this->view = ‘index’ ($route[‘action ‘])?

короче я запутался и сделал так

PHP:
  1. public function __construct($route)
  2. {
  3.     foreach ($route as $name => $value) {
  4.         $this->{$name == ‘action’ ? ‘view’ : $name} = $value;
  5.     }
  6. }

ерунда какая-то — эта list()

 

MouseZver

смотри лучше

 

Вероломство

надо паузу сделать :)

а то с первого раза чёт не зашло …

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *