【问题标题】:Syntax Error T_Variable [duplicate]语法错误 T_Variable [重复]
【发布时间】:2016-03-01 10:35:43
【问题描述】:
 <?php
     class CSS {
         public $base   = '/public/stylesheets';
         public $global = $base . '/global.css'; 
     }
 ?>

当我打开我的网站时,会出现“Parse error: syntax error, unexpected '$base' (T_VARIABLE)”

怎么了?

【问题讨论】:

    标签: php syntax


    【解决方案1】:

    您不能在另一个变量中使用变量。改用类常量,如下所示:

    <?php
    class CSS {
        const CSSPATH = '/public/stylesheets';
        public $base   = '/public/stylesheets';
        public $global = CSSPATH . '/global.css'; 
    }
    ?> 
    

    【讨论】:

      【解决方案2】:

      在 php 中,您不能在类属性声明期间使用任何运算符或引用变量。您必须在类构造函数中初始化属性值:

      class CSS {
            public $base   = '/public/stylesheets';
            public $global; 
      
            public function __construct() {
                $this->global = $this->base . '/global.css';
            }
      }
      

      这在本php手册中指定:

      类成员变量称为“属性”。您可能还会看到它们 提及使用其他术语,例如“属性”或“字段”,但 出于本参考的目的,我们将使用“属性”。他们是 使用关键字 public、protected 或 private 之一定义, 然后是一个普通的变量声明。 此声明可能 包括一个初始化,但这个初始化必须是一个常量 价值——也就是说,它必须能够在编译时被评估并且 不得依赖运行时信息来进行评估。

      参考。 http://php.net/manual/en/language.oop5.properties.php

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-15
        • 1970-01-01
        • 2017-07-16
        • 1970-01-01
        • 2015-05-11
        • 2012-01-14
        相关资源
        最近更新 更多