需要帮助理解类属性的声明
我正在关注ACL啧啧。 它使用了这段代码。
class ACL
{
var $perms = array();
var $userID = 0;
var $userRoles = array();
function __constructor($userID = '')
{
}
}
但是我无法理解上面的一些声明。
a)class属性在上面的类中声明以var关键字开头,在数据封装中,我们不需要在属性声明之前使用public,private或protected关键字。 上述方法是否适用于PHP4? 或者它也适用于php5吗?
b)我的IDE(Panic Coda)。 将__construct作为构造函数的正确语法。 上面的代码已经使用了__constructor。 哪一个是正确的? 据我所知,在PHP4中,构造函数的名称应该与类名相同,如果是这样的话,那么__construct和__constructor之一和PHP5中的相同?
谢谢
a) var
关键字确实可能是为了兼容PHP 4。 var
与PHP 5的public
等价。 它也可以在PHP 5中工作,但是看到PHP 4的时间已经过去,转向public
, private
和protected
是安全的。
b) __construct
或PHP 4兼容声明的类名是唯一正确的方法。 __constructor()
不会声明构造方法。
在PHP4中,所有成员和方法都是静态的和公共的。 var
绝对是PHP4语法。 在PHP5中,你应该使用public
, private
和protected
。
__construct()是构造函数的正确方法名称。 由于具有与该类相同名称的PHP 5.3方法不再被视为构造函数 - 它只是一种常规方法。
你一定要找到最新的教程。
这个示例类有PHP4和PHP5的组合。
private
, public
或protected
。 private
, public
或protected
。 既然你是一名学习者,请遵守PHP的命名约定,使用类名命名包含类的脚本文件。 并且不要在同一个脚本文件中使用多个类。 所有PHP文件必须以扩展名.php
以确保安全。
此外,您可以在类中使用静态方法(不要在同一个类中混合使用静态方法和动态方法),并且可以在不创建诸如Http::DoPost(...)
对象的情况下调用它们。 但是$this
不能在静态方法中使用。
上一篇: need help understanding the declaration of class properties