对象属性范围

时间:2012-11-19 03:08:52

标签: php codeigniter

我想在类中声明一个私有变量,我希望在我的所有类中访问它而不使用参数将其传递给另一个函数。我有以下情景

class One extends CI_Controller {
    private $name;
    public function index () {
        $name = $this->input->post('name');
        $this->validate();
    }

    public function validate() {
        echo $name;
    }
}

但我上面的$ name变量给出了一个错误variable $name is undefined

如果是,那么在PHP中是否可能如何?

2 个答案:

答案 0 :(得分:5)

仅使用$name是函数范围内的局部变量。

如果您使用$this->name,则可以访问控制器的私有属性。

请参阅PropertiesDocs

答案 1 :(得分:2)

在类中声明变量时,必须使用$this->来调用它。

因此,您在方法中调用它的方式是使用$this->name而不是$name