PHP классы, синтаксический анализ ошибок при использовании 'var' для объявления переменных - PullRequest
3 голосов
/ 29 мая 2010

Я парень на C # и пытаюсь перевести часть моего понимания ООП на 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]);
    }

В UserDB.php все мои статические функции взаимодействуют с базой данных для этого пользовательского класса. Я получаю ошибки, используя при использовании var, и я запутался. Я знаю, что не должен использовать var или объявлять переменные вообще, но я чувствую, что это лучше сделать.

ошибка «неожиданный T_VAR, ожидающий T_VARIABLE»

Когда я просто удаляю var из объявлений, это работает. Почему это?

1 Ответ

11 голосов
/ 29 мая 2010

Вы все путаете. До PHP 5 это было

var $uid;

Так как PHP 5 это

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

Вы можете прочитать об этом в документации Свойства :

Примечание: Чтобы поддерживать обратную совместимость с PHP 4, PHP 5 по-прежнему будет использовать ключевое слово var в объявлениях свойств вместо (или в дополнение к) public, protected или private. Однако var больше не требуется. В версиях PHP от 5.0 до 5.1.3 использование var считалось устаревшим и приводило к предупреждению E_STRICT, но, начиная с PHP 5.1.3, оно больше не считается устаревшим и не выдает предупреждение. Если вы объявите свойство, используя var вместо одного из public, protected или private, тогда PHP 5 будет обрабатывать свойство так, как если бы оно было объявлено как общедоступное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...