У меня есть класс Block_Model
(на самом деле модель в структуре Kohana) с 2 методами input()
и output()
.
class Block_Model extends ORM { function input($arg) { //... } function output() { //... } //... }
Ввод метода вызывается из функции, записанной внутри контроллера Home_Controller
и передает аргумент на input
метода.
class Home_Controller extends Controller { function doSomething() { $block = new Block_Model(); //... $block->input($val); //... } }
Как я могу сделать аргумент, переданный на input()
, доступным в методе output()
?
Вам понадобится частная собственность:
class Something{ private $_variable = ""; function input( $data ){ $this->_variable = $data; //do the rest of function } function output( ){ //get previously set data echo $this->_variable; } }
Это похоже на ответ @ silent, но вы можете комбинировать setter & getter одним способом.
protected $_foo; public function foo($val = NULL) { if ($val === NULL) { // its a getter! return $this->_foo; } // its a setter $this->_foo = $val; // return current object, so it becomes a chainable method return $this; }
Теперь вы можете использовать $value = $object->foo();
и $object->foo($value)->do_something_else();