【问题标题】:Assign static method output to static member variable in php将静态方法输出分配给php中的静态成员变量
【发布时间】:2013-07-29 20:50:02
【问题描述】:

我正在尝试将静态方法的输出分配给 PHP 中的静态变量,但总是出错。

解析错误:语法错误,第 8 行 ./MyClass.php 中出现意外的 T_FUNCTION

class MyClass
{
    public static function myMethod()
    {
        return array('a' => 'b'); //some array
    }

    public static $myarr = self::myMethod();
}

我也试过了……

class MyClass
{
    public static $myarr = call_user_func(function
        {
            return array('a' => 'b'); //some array
        }
    );
}

...但我在第 3 行遇到了同样的错误。我已经经历了很多次,我没有看到任何拼写错误,所以我不确定我做错了什么。有什么想法吗?

【问题讨论】:

  • 不应该是public static function myMethod()
  • 是的,但这不是问题所在。这个论坛的错字,不是我的班级,我已经编辑过了。马克贝克一针见血。

标签: php class variables static static-methods


【解决方案1】:

您不能通过在声明时调用函数来为静态变量赋值。

引用manual(我的重点):

它们是通过使用关键字 public、protected 或 private 之一来定义的,然后是一个普通的变量声明。此声明可能包含一个初始化,但此初始化必须是一个常量值 - 也就是说,它必须能够在编译时进行评估,并且不能依赖运行时信息才能进行评估

【讨论】:

    【解决方案2】:

    变化:

    public static myMethod()
    

    收件人:

    public static function myMethod()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      相关资源
      最近更新 更多