【问题标题】:Concatenation of php class static variablesphp类静态变量的串联
【发布时间】:2011-03-20 13:29:12
【问题描述】:

我的第一堂课:

<?php
  require_once( 'error/DisconnectedHandler.php' );
  require_once( 'error/NoSuchRequestHandler.php' );

  class NetworkManager {

  public static final $RESPONSE_JUMP = 1000;
  ....

我的第二堂课:

<?php
    require_once( '../NetworkManager.php' );

    class DisconnectedHandler implements Handler{
        public static $TYPE          = 2000;
        public static $RESPONSE_TYPE = self::$TYPE + NetworkManager::$RESPONSE_JUMP;
        public static $VER           = 0;

我在这一行得到一个错误:

public static $RESPONSE_TYPE = self::$TYPE + NetworkManager::$RESPONSE_JUMP;

Eclipse IDE 将$TYPE 涂成红色并表示:

Multiple annotations found at this line:
- syntax error, unexpected '$TYPE', expecting 
 'identifier'
- syntax error, unexpected '$TYPE', expecting 
 'identifier'

正确的语法是什么?

【问题讨论】:

    标签: php class static variables


    【解决方案1】:

    静态变量声明(以及类常量)必须按字面意思定义,并且不能包含表达式,因为它们是在运行前评估的。

    您必须在构造函数中初始化您的 DisconnectedHandler::$RESPONE_TYPE,或者更有可能在静态初始化方法中初始化。

    【讨论】:

      猜你喜欢
      • 2014-01-03
      • 1970-01-01
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      • 2011-07-27
      • 2014-03-05
      • 2017-04-16
      • 2012-07-03
      相关资源
      最近更新 更多