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

use*_*202 3 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]);
    }
Run Code Online (Sandbox Code Playgroud)

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

错误是"意外的T_VAR,期待T_VARIABLE"

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

Fel*_*ing 11

你搞混了. PHP 5 之前它是

var $uid;
Run Code Online (Sandbox Code Playgroud)

PHP 5开始

private $uid; // or
protected $uid; // or
public $uid;
Run Code Online (Sandbox Code Playgroud)

您可以在属性文档中阅读它:

注意:为了保持与PHP 4的向后兼容性,PHP 5仍然会接受使用所述关键字的var在属性的声明,而不是(或除了)public,protectedprivate.但是,var不再需要.在从5.0到5.1.3的PHP版本中,使用var被认为已弃用并将发出E_STRICT警告,但自PHP 5.1.3起,它不再被弃用,也不会发出警告.如果您在使用声明属性var,而不是之一public,protected或者private,那么PHP 5将如同它被声明为public对待财产.