我应该在类或构造函数中放置变量吗?PHP

Tim*_*Tim 5 php variables class

我的问题是OOP的最佳实践之一.我使用Codeigniter框架/ PHP.

我有一节课:

class Test() {

    var $my_data = array();

    function my_function() {

        //do something

    }

}
Run Code Online (Sandbox Code Playgroud)

可以在类中声明$ my_data吗?还是应该进入构造函数?基本上每个函数都会写入$ my_data,所以在某种意义上它将是一个类范围的变量(全局?,不确定术语)

另外,我应该使用var还是私有?var是否已弃用,以支持声明变量范围?

Ed *_*zur 7

如果要$my_data使用所有方法Test,则必须在类级别声明它.

class Test {

    private $my_data1 = array(); // available throughout class

    public function __construct() {
        $my_data2 = array(); // available only in constructor
    }

}
Run Code Online (Sandbox Code Playgroud)

var已弃用且与其同义public.如果$my_data不需要在外面可用Test,则应声明private.

  • 你也不能将它们声明为:$ this-> my_data = array(); 并在课堂上的任何地方提供它? (2认同)
  • @evilchookie - 是的,但是在顶部使用变量列表会更好 (2认同)