Как изменить переменную внутри родительской функции? - PullRequest
0 голосов
/ 09 января 2012

Я хочу изменить $ item родительского элемента, а затем разрешить родительскому процессу выполнить оставшийся процесс.Как сделать?(Я не могу изменить родительский класс, который будет часто обновляться при обновлении программного обеспечения. Также обратите внимание, что $ item - это переменная внутри функции, это не parent-> var)

Class Parent{
     function __constructor(){....}
     function save(){
       $items = get_items($id, $this->var);
       // process the data and save
     }
}
Class Child extends Parent{
     function __constructor(){
         parent::__construct();
     }
     function save(){
     $items = get_items($id, $var)// if.. then $var=$this->var, else $var=$something_else
      // precess data and save
    }
}

Ответы [ 2 ]

0 голосов
/ 09 января 2012
Class Parent{
    protected $items;
     function __constructor(){....}
     function save(){
       $this->items = get_items($id, $this->var);
       // process the data and save
     }
}
Class Child extends Parent{
     function __constructor(){
         parent::__construct();
     }
     function save(){
         $this->items = something_else();
        parent::save();
    }

}

0 голосов
/ 09 января 2012

передать их в качестве параметра.Например

Class Parent{
     function __constructor(){....}
     function save(){
     function save($items = null){
        $items = is_null($items) ? get_items($id, $var) : $items;
        // process the data and save
     }
}
Class Child extends Parent{
     function __constructor(){
         parent::__construct();
     }
     function save($items = null){
       $items = is_null($items) ? get_items($id, $var) : $items;
        // precess data and save
     }
     return parent::save($items);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...