Чтобы передать значение переменной в одной функции другой функции в том же классе

У меня есть класс 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();