【问题标题】:syntax error, unexpected '.', expecting ')'语法错误,意外的 '.',期待 ')'
【发布时间】:2010-03-13 23:12:50
【问题描述】:

当我从另一个类调用静态变量时遇到问题。我得到这个漂亮的语法错误,其中 php 是意外的'。'

这就是我所说的:

private $aLien = array(
"menu1"     => array("Accueil","statique/".Variable_init::$langue."/accueil.html",0,0), //This line
"menu2"     => array("Infos Pratiques","statique/".Variable_init::$langue."/info.html",0,0),
"menu3"     => array("Faire une réservation","statique/".Variable_init::$langue."/reserver.html",0,0),
"menu4"     => array("Pour Nous Joindre","statique/".Variable_init::$langue."/nousJoindre.html",0,0),
"menu5"     => array("Plan du site","statique/".Variable_init::$langue."/plansite.html",0,0)
);

这是另一个类的静态变量声明:

class Variable_init implements iVariable_init{
  public static $langue;
  public static $id_choix;
  public static $id_contenu;

【问题讨论】:

  • 粘贴您的代码时,我在 Notepad++ 中看不到任何语法错误,我想知道错误是否发生在该语句之前。该行上方是否有任何明显的语法错误?
  • @Ant:Notepad++ 是否甚至使用适当的语法来突出显示语法,或者仅仅是一堆正则表达式,可以为看起来可能是 PHP 的东西着色?这对语法高亮是否甚至可以检测语法错误产生了很大的影响。
  • 上面有没有使用heredocs?当 heredoc 关闭不正确时,PHP 可能会输出一些令人困惑的错误...
  • @Johannes:当设置为 PHP 语言时,它看起来类似于我的 Eclipse PDT IDE,所以据我所知,它使用了正确的语法。

标签: php syntax


【解决方案1】:

http://docs.php.net/language.oop5.properties 说:

它们是通过使用关键字 public、protected 或 private 之一定义的,后跟一个普通的变量声明。 这个声明可以包含一个初始化,但是这个初始化必须是一个常数值——也就是说,它必须能够在编译时被评估并且不能依赖于运行时信息才能被评估。
您的字符串连接不是恒定的。解析器不“理解”初始化部分中的. operator,因此打印unexpected '.'

【讨论】:

  • 非常感谢我是 PHP 的 OOP 新手。
【解决方案2】:

您不能使用表达式来初始化类字段。

【讨论】:

    猜你喜欢
    • 2017-09-12
    • 2019-12-06
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 2013-11-11
    • 1970-01-01
    相关资源
    最近更新 更多