2013-06-02 2 views
-2

я получаю следующее сообщение об ошибке Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный T_VARIABLE в пути /queries.php на линии 92PHP: неожиданный T_VARIABLE при инициализации ассоциативного массива

из-массива $_queryArray:

private $_queryA = ""; 
etc... 
private $_queryV = ""; 


private $_queryArray = array( 'A' => $this->_queryA, //<= line 92 of my code 
           'B' => $this->_queryB, 
           'C' => $this->_queryC, 
           'D' => $this->_queryD, 
           'E' => $this->_queryE, 
           'F' => $this->_queryF, 
           'G' => $this->_queryG, 
           'H' => $this->_queryH, 
           'I' => $this->_queryI, 
           'J' => $this->_queryJ, 
           'K' => $this->_queryK, 
           'L' => $this->_queryL, 
           'M' => $this->_queryM, 
           'N' => $this->_queryN, 
           'O' => $this->_queryO, 
           'P' => $this->_queryP, 
           'Q' => $this->_queryQ, 
           'R' => $this->_queryR, 
           'S' => $this->_queryS, 
           'T' => $this->_queryT, 
           'U' => $this->_queryU, 
           'V' => $this->_queryV 
          ); 

Есть ли проблема с моей способностью заполнения $_queryArray ?

Спасибо!

ответ

2

В $ это ссылается на экземпляр, и не существует, когда определяется класс, вы не можете использовать $ это в определениях свойств

Цитируя docs

This declaration may include an initialization, but this initialization must be a constant value--that is, it must be able to be evaluated at compile time and must not depend on run-time information in order to be evaluated.

+0

Сделайте его пустым массивом и заполните его в конструкторе, когда вы создадите запросы –

+0

еще лучше, превратите его в функцию геттера. –

1

Я предполагаю, что код из декларации класса.

Я предполагаю, что на данный момент вы не можете получить доступ к $ this. Попробуйте установить массив в конструкторе.

function __construct() { 
    $this->_queryArray = array(...); 
} 
+0

Хорошо заметили, это все еще слишком локализовано. – vascowhite

+0

Я мог бы это сделать, но я заполняю запросы статическим способом, прежде чем помещать их в массив. Было бы довольно уродливо, если бы у конструктора было 200 строк статического заполнения no: s? –

+0

Эти типы $ _query_A типа не выглядят особенно статичными для меня –