2015-06-29 3 views
2

Ошибка анализа: синтаксическая ошибка, неожиданная '[' в $ results = [];Ошибка анализа: синтаксическая ошибка, неожиданная '[' в

function class_uses_recursive($class) 
{ 
    $results = []; 

    foreach (array_merge([$class => $class], class_parents($class)) as $class) 
    { 
     $results += trait_uses_recursive($class); 
    } 

    return array_unique($results); 
} 

пожалуйста, помогите мне

+0

возможно дубликат [Почему этот массив \ функция _walk выдаст ошибку?] (Http://stackoverflow.com/questions/11845574/why-does-this-array -walk-function-throw-an-error) –

+0

Что вы пытаетесь решить проблему? – JackWhiteIII

ответ

15

Если вы используете более старую версию PHP (до 5,4 я думаю), этот синтаксис не поддерживается:

$results = []; 

Вы хотите должны использовать более старую версию:

$results = array(); 
2

Вы получите эту ошибку для любой версии PHP ниже 5.4, так как синтаксис короткого массива ax [] не размещалось до 5.4. Вы должны использовать array() для создания экземпляра массивов в PHP 5.3.x и более ранних версий:

function class_uses_recursive($class) 
{ 
    $results = array(); 

    foreach (array_merge(array($class => $class), class_parents($class)) as $class) 
    { 
     $results += trait_uses_recursive($class); 
    } 

    return array_unique($results); 
} 

PHP документы на массивы here.

0

Массив инициализируется

$results = array(); // use this 


function class_uses_recursive($class) 
    { 
     $results = []; //instead of this . 

     foreach (array_merge([$class => $class], class_parents($class)) as $class) 
     { 
      $results += trait_uses_recursive($class); 
     } 

     return array_unique($results); 
    } 
Смежные вопросы