2010-05-29 117 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會將該屬性視爲已聲明爲公共。