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

Php 将一个函数中变量的值传递给同一类中的另一个函数,php,kohana,Php,Kohana,我有一个类Block_模型,实际上是Kohana框架中的一个模型,有两个方法inputand output 方法输入是从一个名为Home\u controller的控制器中编写的函数调用的,它将一个参数传递给方法输入 如何使传递给输入的参数在方法输出中可访问?您需要私有属性: class Something{ private $_variable = ""; function input( $data ){ $this->_variable = $data;

我有一个类Block_模型,实际上是Kohana框架中的一个模型,有两个方法inputand output

方法输入是从一个名为Home\u controller的控制器中编写的函数调用的,它将一个参数传递给方法输入


如何使传递给输入的参数在方法输出中可访问?

您需要私有属性:

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->做其他事情

你能再详细一点吗?通过调用输出并在内部传递变量,可以轻松访问输入中传递的变量。但是读到你的问题我感到困惑。顺便说一句,我对Kohana框架不太熟悉。好的,请稍候,我会说得更清楚。我使用的代码是静默的,但我使用的是private$\u变量;而不是私有$_变量=;andd在输出也将被一个名为getoutput的函数调用之前不起作用,该函数位于控制器Home_控制器内,然后我们必须将输出函数的值返回给getoutput,就像函数输出{return$this->_variable;}函数被编写为公共函数一样,我的意思是公共输入和公共输出在主控制器上,在调用BlockController->output之前,必须调用BlockController->\u variable=blabla。但是,在此之前,您必须将$u变量设置为public或为其创建setter。您有模型、输入和输出。现在,您有了控制器。在您的控制器中,您同时调用输入和输出,对吗?一些值返回到输出,但它不是输入函数的参数。在输入函数中使用2或3个返回语句,将一些其他值返回给控制器类函数。这会是一个问题吗对不起,我会尝试显示那里的代码,希望没有问题,如果我粘贴代码那里
class Something{
   private $_variable = "";

   function input( $data ){
      $this->_variable = $data;
      //do the rest of function
   }

   function output(  ){
      //get previously set data
      echo $this->_variable;
   }

}
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;
}