代码之家  ›  专栏  ›  技术社区  ›  user48202

php类,使用“var”声明变量时分析语法错误

  •  3
  • user48202  · 技术社区  · 15 年前

    我是一个试图把我对OOP的理解转换成PHP的C人。我正在努力制造我的头等舱物品,而且还遇到了一些麻烦。

    这是课程的开始:

    <?php
    
    require("Database/UserDB.php");
    
    class User {
    
      private var $uid;
      private var $username;
      private var $password;
      private var $realname;
      private var $email;
      private var $address;
      private var $phone;
      private var $projectArray;
    
      public function _construct($username) {
    
        $userArray = UserDB::GetUserArray($username);
        $uid       = $userArray['uid'];
        $username  = $userArray['username'];
        $realname  = $userArray['realname'];
        $email     = $userArray['email'];
        $phone     = $userArray['phone'];
        $i = 1;
        $projectArray = UserDB::GetUserProjects($this->GetID());
        while($projectArray[$i] != null) {
          $projectArray[$i] = new Project($projectArray[$i]);
        }
    

    php是我的所有静态函数与这个用户类的数据库交互的地方。当我使用var时,我会得到错误的使用,我会感到困惑。我知道我不必使用var,也不必声明变量,但我觉得这样做更好。

    错误为“意外的t_变量,应为t_变量”

    当我简单地从声明中删除var时,它会起作用。为什么会这样?

    1 回复  |  直到 15 年前
        1
  •  11
  •   Felix Kling    15 年前

    你把事情搞混了。 以前 PHP 5

    var $uid;
    

    自从 PHP 5

    private $uid; // or
    protected $uid; // or
    public $uid;
    

    你可以在 Properties documentation :

    注: 为了保持与php 4的向后兼容性,php 5仍然接受使用关键字 var 在属性声明中而不是 public , protected private . 然而, var 不再需要。在5.0到5.1.3版本的PHP中,使用 var 被视为已弃用,将发出e_严格警告,但由于php 5.1.3,它不再被弃用,不会发出警告。 如果使用 var 而不是 公众的 , 受保护的 私有的 然后,php 5将把该属性视为已声明为公共属性。

    推荐文章