我无法弄清楚这个错误的位置。第1行是<?php
我也使用phpIDE应用程序,它没有显示任何错误/缺少大括号。
PHP解析错误:语法错误,意外'(',期待T_STRING或T_VARIABLE或'{'或'$'在/home/ratemy/public_html/kernel/parser.php(190):eval()第1行的代码
代码行从167 - 200 ......第190行标记在下面。
# Format replaced vars
function do_format($value,$s) {
global $en;
$value = (isset($en[$value]) ? $en[$value] : @constant($value));
$i = strtolower($s);
if (strpos($i,'echo') || strpos($i,'define')) {
$value = str_replace('"','`',$value);
$value = str_replace(chr(39),'`',$value);
}
return $value;
}
# Execute template block
function exec_block($start, $end, $jump = -2) {
$this->tpi = $start - 1;
while ($this->tpi < $end) {
$s = $this->templ_read();
$this->s = $this->template_replace_vars($s);
if ($this->act[$this->tpi] == 'continue_loop') return false;
if ($this->act[$this->tpi] == 'break_loop') {
$this->cancel_loop = true;
return false;
}
eval('$this->'.$this->act[$this->tpi].'();'); // LINE 190
}
if ($jump != -2)
$this->tpi = $jump;
}
# Echo a line
function do_print() {
echo $this->s;
}
...摘录
还有更多的文件,我可以找出这个错误实际在哪里?
答案 0 :(得分:2)
如果要调用$this->act[$this->tpi]
指定名称的函数,请使用:
call_user_func(array($this, $this->act[$this->tpi]));
不要做eval
,这是邪恶的。
答案 1 :(得分:1)
@ knittl写道:它在第190行,显然包含对eval()的调用“1分钟前
@ knittl是正确的 - 错误发生在您文件中的那一行。 eval()'d code on line 1
表示错误位于代码的第一行,即文件parser.php的第190行上的eval()。
将它放在第190行之前的一行:
echo '$this->'.$this->act[$this->tpi].'();';
它会显示正在导致错误的eval'代码。