代码:
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 ... 然后我使用上面的代码来检查每个函数是否是基于查询的问题
答案 0 :(得分:2)
问题在于您的方法isQuestion$q
。
$
表示变量的开头,令解释器感到困惑。
像这样写:
isQuestion{$q}
花括号允许您将变量插入到字符串中(或任何具有字符串表示形式的变量)。请阅读Curly braces in string in PHP以获取更多信息。
答案 1 :(得分:1)
嗯,以下是无效的语法:
if ($this->isQuestion$q($query)){
请改为尝试:
foreach ($questions as $q) {
if ($result = $this->{'isQuestion' . $q}()) {
return $result;
}
}
return false;
答案 2 :(得分:0)
如果您需要使用动态名称调用函数,请查看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
并询问问题实例。