PHP语法错误,意外的T

码:

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);

我有一些函数,如isQuestion1isQuestion2isQuestion3等...和我调用另一个函数 * 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。净/手动/ EN / function.call-用户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

链接地址: http://www.djcxy.com/p/11965.html

上一篇: php syntax error, unexpected T

下一篇: VARIABLE" error. I don't see what I'm doing wrong?