需要帮助理解类属性的声明

Ibr*_*mar 2 php oop

我正在追踪ACL tut.已经使用了这段代码.

class ACL
{
    var $perms = array();
    var $userID = 0;
    var $userRoles = array();

    function __constructor($userID = '')
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

但是我无法理解上面的一些声明.

a)在上面的类中使用var关键字声明了class属性,在数据封装中,我们不必在声明属性之前使用public,private或protected关键字.上面的方法是针对PHP4的吗?或者它也适用于php5?

b)我的IDE(恐慌尾声).将__construct作为构造函数的正确语法.上面的代码使用了__constructor.哪一个是正确的?根据我的PHP4知识,构造函数名称应该与类名相同,如果是这种情况那么__construct和__constructor一个在PHP5中是相同的吗?

谢谢

Pek*_*ica 7

a)var关键字确实可能是为了兼容PHP 4.var等同于PHP 5 public.它会在PHP 5,以及工作,但看到PHP 4的时候已经过去了,它是安全的移动到public,privateprotected.

b)__construct,或PHP 4兼容声明的类的名称,是唯一正确的方法.__constructor()不会声明构造函数方法.

  • 教程代码混合了PHP/4和PHP/5面向对象的语法.这种取消资格作为学习资源:) (2认同)