代码:
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;
}
错误:
分析错误:语法错误,第7行上/Applications/XAMPP/examplefiles/htdocs/ai/application/models/question_model.php中出现意外的T_VARIABLE
问题发生在:
if ($this->isQuestion$q($query)){
return $this->isQuestion$q($query);
我有一些函数,如isQuestion1、isQuestion2和isQuestion3等。我调用另一个函数getAllQuestion,它将返回数组中的所有问题编号,如1,2,3,4,5…。
然后,我使用上面的代码来检查每个函数是否都是基于查询的问题。
问题出在方法isQuestion$q
上。
$
表示一个变量的开始,并且使解释器感到困惑。
这样写:
isQuestion{$q}
大括号允许您将变量插入字符串(或任何具有字符串表示形式的内容)。有关详细信息,请阅读PHP中字符串中的花括号。
以下是无效语法:
if ($this->isQuestion$q($query)){
试试这个:
foreach ($questions as $q) {
if ($result = $this->{'isQuestion' . $q}()) {
return $result;
}
}
return false;
如果需要调用具有动态名称的函数,请查看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
,并保存一个带有要询问的Question实例的array
。