2017-02-21 19 views
0

Я пытаюсь создать массив функций. Хотя, я получаю parse error и ничего больше при выполнении этого кодаОшибка анализа при использовании функции в массиве

protected $filter_functions = [ 
    "price" => function(&$query, $lower, $higher) { 
     $query->where("price", ">=", $lower)->where("price", "<=", $higher); 
    } 
]; 

Я не вижу никакой синтаксической ошибки, но, возможно, есть. Версия PHP в настоящее время 5.6.28 и должна быть совместима с анонимными функциями.

+0

Вы используете Yii? – Sakezzz

+0

Нет, Laravel framework –

+0

Я добавил эту информацию в теги. Спасибо –

ответ

0

вы должны поместить это в конструктор

protected $filter_functions; 

public function __construct(){ 
    $this->filter_functions = [ 
     "price" => function(&$query, $lower, $higher) { 
      $query->where("price", ">=", $lower)->where("price", "<=", $higher); 
     } 
    ]; 
} 
+0

' __constructor', который должен, скорее всего, читать как '__construct'. Если Laravel не использует '__constructor'. Редактировать: этот комментарий по оригиналу http://stackoverflow.com/revisions/42370244/1 –

+0

https://laravel.com/docs/5.0/controllers он использует '__construct' в порядке. –

+0

Я думаю, вам также нужно иметь 'parent :: __ construct();' перед тем, как вы попытаетесь установить 'this this-> filter_functions', но я не на это 100%. –