2010-05-29 121 views
3

我是一个C#人尝试将我的一些OOP理解转换为php。我正在尝试制作我的第一个类对象,并且碰到了一些问题。PHP类,使用'var'声明变量时解析语法错误

这里是类的开头:

<?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是我拥有所有我的静态功能与数据库的用户类交互。当我使用var时出现错误,而且我感到困惑。我知道我不必使用var,或者根本不需要声明变量,但是我认为这样做更好。

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

当我简单地从它的工作原理声明删除变种。为什么是这样?

回答

11

你在搅拌东西。 以前 PHP 5是

var $uid; 

由于 PHP 5是

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

您可以在Properties documentation读到它:

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