I have a class Block_Model (actually a model in Kohana framework) with 2 methods input()and output().
class Block_Model extends ORM {
function input($arg) {
//...
}
function output() {
//...
}
//...
}
The method input is called from a function written inside a controller called Home_Controller and it passes an argument to the method input.
class Home_Controller extends Controller {
function doSomething() {
$block = new Block_Model();
//...
$block->input($val);
//...
}
}
How can I make the argument passed to input() be accessible in the method output()?
You'll need private property:
class Something{
private $_variable = "";
function input( $data ){
$this->_variable = $data;
//do the rest of function
}
function output( ){
//get previously set data
echo $this->_variable;
}
}
This is similar to @silent's answer, but you can combine setter & getter in one method.
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;
}
Now you can use $value = $object->foo(); and $object->foo($value)->do_something_else();
来源:https://stackoverflow.com/questions/6289352/to-pass-value-of-a-variable-in-one-function-to-another-function-in-same-class