我有一个类Block_Model
(实际上是Kohana框架中的模型),有两个方法input()
和output()
。
class Block_Model extends ORM {
function input($arg) {
//...
}
function output() {
//...
}
//...
}
方法input
是从一个名为Home_Controller
的控制器内部编写的函数调用的,它将一个参数传递给方法input
。
class Home_Controller extends Controller {
function doSomething() {
$block = new Block_Model();
//...
$block->input($val);
//...
}
}
如何在方法input()
中访问传递给output()
的参数?
答案 0 :(得分:0)
你需要私人财产:
class Something{
private $_variable = "";
function input( $data ){
$this->_variable = $data;
//do the rest of function
}
function output( ){
//get previously set data
echo $this->_variable;
}
}
答案 1 :(得分:0)
这类似于@ silent的答案,但你可以结合使用setter&用一种方法吸气。
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();