PHP类,在使用'var'声明变量时解析语法错误

时间:2010-05-29 13:06:41

标签: php mysql syntax object

我是一个C#的家伙,试图将我的一些OOP理解转化为php。我正试图制作我的第一类物体,并且正在打几个故障。

这是课程的开头:

<?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]);
    }

UserDB.php是我将所有静态函数与此User Class的数据库交互的地方。我在使用var时遇到错误,我感到很困惑。我知道我不必使用var,或者根本没有声明变量,但我觉得这样做更好。

错误是“意外的T_VAR,期待T_VARIABLE”

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

1 个答案:

答案 0 :(得分:11)

你正在混淆。 之前 PHP 5是

var $uid;

PHP 5开始

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

您可以在Properties documentation

中阅读相关内容
  

注意:为了保持与PHP 4的向后兼容性,PHP 5仍然会接受在属性声明中使用关键字var而不是(或除了){{ 1}},publicprotected。但是,不再需要private。在从5.0到5.1.3的PHP版本中,var的使用被认为已弃用,并且会发出E_STRICT警告,但自PHP 5.1.3起,它不再被弃用,也不会发出警告。   如果您使用var而不是varpublicprotected之一声明属性,则PHP 5会将该属性视为已声明为公共属性。