当前位置: 首页 > 知识库问答 >
问题:

PHP语法错误,"意外T_VARIABLE"-is问题($查询)[关闭]

慕容兴贤
2023-03-14

代码:

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/xamppfiles/htdocs/ai/application/models/question_model.php中出现意外的T_变量

问题出现在:

if ($this->isQuestion$q($query)){

return $this->isQuestion$q($query);

我有一些函数,比如isQuestion1、isQuestion2、isQuestion3等等。。。我调用另一个函数getAllQuestions,它将返回数组中所有问题的数字,比如1,2,3,4,5。。。。

然后我使用上面的代码检查每个函数是否是基于查询的问题。

共有3个答案

郭翰墨
2023-03-14

如果需要使用动态名称调用函数,请查看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;
}

一般来说,最好创建一个接口问题并保存一个数组,其中包含要询问的问题实例。

申屠昌胤
2023-03-14

好吧,以下是无效的语法:

if ($this->isQuestion$q($query)){

请尝试以下方法:

foreach ($questions as $q) {
    if ($result = $this->{'isQuestion' . $q}()) {
        return $result;
    }
}
return false;
南宫正阳
2023-03-14

问题在于您的方法isQuestion$q

$表示变量的开始,这会使解释器感到困惑。

这样写:

############################################################################################

花括号允许您将变量插入字符串(或任何带有字符串表示的内容)。有关更多信息,请阅读PHP中字符串中的花括号。

 类似资料: