2010-05-29 6 views
3

Je suis un gars C# qui essaie de traduire certaines de mes connaissances de la POO en PHP. J'essaie de faire mon objet de première classe, et je me heurte à quelques problèmes.Classes PHP, analyser les erreurs de syntaxe lorsque vous utilisez 'var' pour déclarer des variables

Voici le début de la classe:

<?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 est l'endroit où j'ai toutes mes fonctions statiques qui interagissent avec la base de données pour cette classe d'utilisateur. Je reçois des erreurs en utilisant quand j'utilise var, et je suis confus. Je sais que je ne dois pas utiliser var, ou déclarer les variables du tout, mais je pense que c'est une meilleure pratique pour le faire.

l'erreur est « T_VAR inattendu, attendant T_VARIABLE »

Lorsque je supprime simplement var des déclarations qu'il fonctionne. Pourquoi est-ce?

Répondre

11

Vous mélangez des choses. Avant PHP 5, il était

var $uid; 

Depuis PHP 5 est

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

Vous pouvez lire à ce sujet dans le Properties documentation:

Note: Pour maintenir la rétrocompatibilité avec PHP 4, PHP 5 acceptera toujours l'utilisation du mot-clé var dans les déclarations de propriété au lieu de (ou en plus de) public, protected ou private. Cependant, var n'est plus nécessaire. Dans les versions de PHP de 5.0 à 5.1.3, l'utilisation de var était considérée obsolète et produirait un avertissement E_STRICT, mais depuis PHP 5.1.3 il n'est plus obsolète et n'émet pas l'avertissement. Si vous déclarez une propriété en utilisant var au lieu de l'un de public, protected ou private, alors PHP 5 traitera la propriété comme si elle avait été déclarée publique.

Questions connexes