Ответ 1
Ну, следующий недопустимый синтаксис:
if ($this->isQuestion$q($query)){
Попробуйте это вместо:
foreach ($questions as $q) {
if ($result = $this->{'isQuestion' . $q}()) {
return $result;
}
}
return false;
код:
public function isQuestion($query){
$questions = $this->getAllQuestions();
if (count($questions)){
foreach ($questions as $q){
if ($this->isQuestion$q($query)){
return $this->isQuestion$q($query);
}
}
}
return false;
}
Ошибка:
Parse error: syntax error, unexpected T_VARIABLE in /Applications/XAMPP/xamppfiles/htdocs/ai/application/models/question_model.php on line 7
проблема возникает на
if ($this->isQuestion$q($query)){
return $this->isQuestion$q($query);
У меня есть некоторые функции, такие как isQuestion1, isQuestion2, isQuestion3 и т.д.... и я вызываю еще одну функцию * getAllQuestions *, который вернет мне все числа вопросов в массиве вроде 1,2,3,4,5..., затем я использую приведенный выше код, чтобы проверить, является ли каждая функция вопросом на основе запроса
Ну, следующий недопустимый синтаксис:
if ($this->isQuestion$q($query)){
Попробуйте это вместо:
foreach ($questions as $q) {
if ($result = $this->{'isQuestion' . $q}()) {
return $result;
}
}
return false;
Проблема заключается в вашем методе isQuestion$q
.
$
обозначает начало переменной и путает интерпретатор.
Напишите его так:
isQuestion{$q}
Кудрявые фигурные скобки позволяют вставлять переменную в строку (или что-либо со строковым представлением). Подробнее читайте фигурные скобки в строке в PHP.
Если вам нужно вызвать функцию с динамическим именем, посмотрите http://de2.php.net/manual/en/function.call-user-func-array.php или http://de2.php.net/manual/en/function.call-user-func.php
Возможно, вы захотите убедиться, что этот метод действительно существует, чтобы избежать фатальных ошибок: http://de2.php.net/manual/en/function.method-exists.php
Также проверьте, хотите ли вы заменить
if ($this->isQuestion$q($query)){
return $this->isQuestion$q($query);
}
с
if ($this->isQuestion$q($query)){
return true;
}
В общем случае может быть лучше создать interface
Question
и провести array
с запросами вопроса.