将一个函数中的变量值传递给同一个类中的另一个函数

时间:2011-06-09 07:16:58

标签: php kohana

我有一个类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()的参数?

2 个答案:

答案 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();