【问题标题】:PHP classes, parse syntax errors when using 'var' to declare variablesPHP类,使用'var'声明变量时解析语法错误
【发布时间】:2011-02-25 11:35:44
【问题描述】:

我是一个 C# 人,试图将我对 OOP 的一些理解转换为 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 时,它可以工作。这是为什么呢?

【问题讨论】:

    标签: php mysql syntax object


    【解决方案1】:

    你把事情搞混了。 PHP 5 之前是

    var $uid;
    

    因为是 PHP 5

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

    您可以在Properties documentation 中了解它:

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

    【讨论】:

      猜你喜欢
      • 2014-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-16
      • 1970-01-01
      相关资源
      最近更新 更多