синтаксическая ошибка, неожиданная «.», ожидаемая «)» - PullRequest
4 голосов
/ 14 марта 2010

У меня проблема, когда я вызываю статическую переменную из другого класса. Я получаю эту симпатичную синтаксическую ошибку, когда 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)
);

А вот мое статическое объявление var из другого класса:

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

Ответы [ 2 ]

10 голосов
/ 14 марта 2010

http://docs.php.net/language.oop5.properties говорит:

Они определяются с использованием одного из ключевых слов public, protected или private, за которым следует обычное объявление переменной. Это объявление может включать в себя инициализацию, но эта инициализация должна иметь постоянное значение - то есть она должна быть в состоянии быть оцененной во время компиляции и не должна зависеть от информации времени выполнения для оценки ,
Ваши конкатенации строк не постоянны. Парсер не «понимает» . оператор в части инициализации и поэтому печатает unexpected '.'
7 голосов
/ 14 марта 2010

Вы не можете использовать выражения для инициализации полей класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...