2010-05-29 2 views
3

저는 PHP에 대한 내 OOP 이해의 일부를 번역하려고하는 C# 사람입니다. 내 첫 번째 클래스 객체를 만들려고 노력 중이며 몇 줄의 타격을 치고 있습니다. 나는이 사용자 클래스에 대한 데이터베이스와 상호 작용 내 모든 정적 기능을 가지고 어디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를 사용하거나 변수를 선언하지 않아도된다는 것을 알고 있지만 그렇게하는 것이 더 나은 방법이라고 생각합니다.

오류가 나는 단순히 작동 선언에서 VAR를 제거하면

을 "T_VARIABLE을 기대하고, 예상치 못한 T_VAR"입니다. 왜 이런거야?

답변

11

당신은 물건을 혼합하고 있습니다.

주 :를 위해에 PHP 5 전에 그것이

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

당신은 Properties documentation에 대해 읽을 수 있습니다

var $uid; 

PHP 5부터였다 PHP 4와의 하위 호환성 유지, PHP 5는 여전히 키워드 0 사용을 허용합니다 public, protected 또는 private 대신 (또는 그에 추가하여) 속성 선언에을 추가하십시오. 그러나 var은 더 이상 필요하지 않습니다. 5.0에서 5.1.3까지의 PHP 버전에서 var 사용은 더 이상 사용되지 않으며 E_STRICT 경고를 발행하지만 PHP 5.1.3부터는 더 이상 사용되지 않으며 경고를 발행하지 않습니다. public, protected 또는 private 중 하나 대신 var을 사용하여 속성을 선언하면 PHP 5는 해당 속성을 public으로 선언 한 것으로 간주합니다.

관련 문제