我应该在类或构造函数中放置变量吗?PHP
我的问题是OOP的最佳实践之一。Im使用Codeigniter框架/PHP 我有一门课:我应该在类或构造函数中放置变量吗?PHP,php,class,variables,Php,Class,Variables,我的问题是OOP的最佳实践之一。Im使用Codeigniter框架/PHP 我有一门课: class Test() { var $my_data = array(); function my_function() { //do something } } 这样在类中声明$my_数据可以吗?还是应该放在构造函数中?基本上,每个函数都将写入$my_数据,因此在某种意义上,它将是一个类范围的变量(global?,不确定术语) 另外,我应该使用var还
class Test() {
var $my_data = array();
function my_function() {
//do something
}
}
这样在类中声明$my_数据可以吗?还是应该放在构造函数中?基本上,每个函数都将写入$my_数据,因此在某种意义上,它将是一个类范围的变量(global?,不确定术语)
另外,我应该使用var还是private?var不赞成声明变量范围吗?如果它属于“类”,则将其放入类中。如果它属于“类的一个实例”,则将其放入构造函数中。听起来你应该使用这个会话。如果你想
$my_data
对测试中的所有方法都可用,你必须在类级别声明它
class Test {
private $my_data1 = array(); // available throughout class
public function __construct() {
$my_data2 = array(); // available only in constructor
}
}
var
已弃用,与public
同义。如果$my_data
不需要在Test
之外可用,则应将其声明为private
如果在构造函数之外声明变量,则可以。
实际上codeigniter不允许您在构造函数中给出任何参数。
当类被实例化时,变量将自动赋值。
默认情况下,类中的任何php变量和函数都将具有公共访问权限。
我并不认为你们需要在codeigniter中使用访问修饰符。
库本身没有定义任何访问修饰符。您不能像这样声明它们:$this->my_data=array();在类中的任何地方都可以使用它吗?@evichookie-是的,但是最好在顶部有一个变量列表,因为您仍然使用PHP4语法吗?