php - 语法错误,意外 '(' ,期望 ')'

标签 php syntax-error

我正在使用 Laravel 4 开发一个网站。我的一个模型中有这段代码:

class MyModel extends Eloquent {
    protected $var = array(
        "label" => Lang::get("messages.label"),
        "code" => "myCode",
    );
    ...
}

但是我在使用 Lang::get 的行上给出了这个语法错误:

syntax error, unexpected '(', expecting ')'

然后我将代码更改为:

class MyModel extends Eloquent {
    protected $var;

    public function __construct() {
        $this->var = array(
            "label" => Lang::get("messages.label"),
            "code" => "myCode",
        );
    }
}

错误消失了!我认为这个错误非常令人困惑并且没有帮助。为什么 php 会显示此错误消息?

最佳答案

这是因为你在定义类属性时使用了Lang::get(),这是不允许的。调用静态方法之类的东西只能在 runtime 处完成。 (当代码正在执行时)。

当您定义类时,它们的属性只能是非变量(或“常量”)值(例如本身仅包含非变量值的整数、字符串或数组)。

运行时代码应放入构造函数中。

关于php - 语法错误,意外 '(' ,期望 ')',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23319674/

相关文章:

php - 生成带有无边距背景图像的 PDF

javascript - PHP - 运行1插入查询同时运行两次记录

php - 无法使用 PHPExcel 正确显示日期、时间和数字

syntax-error - 如何编写多行错误格式字符串?

awk - Makefile Awk 使用 $ 表示列出现语法错误,但在控制台上运行良好

javascript - 为什么 Object.toString 会抛出 SyntaxError 而 Array.slice 不会?

php - GROUP BY mysql 只显示一行。但也想要重复

php - 访问子类中的私有(private)变量

c++ - 为常量语法或语义错误赋值?

sql - 使用 PL/SQL 将值插入全局临时表