Php 语法错误,意外(';)';在评估代码中

Php 语法错误,意外(';)';在评估代码中,php,Php,要知道关于eval'd代码有很多意想不到的问题,但没有一个能帮助我理解这一点: @eval('$return=(bool)('.$test.');) 有什么想法吗 显示错误的完整代码是 $notfound = TRUE; if (isset($child['when'])) { foreach ($child['when'] as $grandchild) {

要知道关于eval'd代码有很多意想不到的问题,但没有一个能帮助我理解这一点:

@eval('$return=(bool)('.$test.');)

有什么想法吗

显示错误的完整代码是

$notfound = TRUE;
                            if (isset($child['when'])) {
                                foreach ($child['when'] as $grandchild)  {
                                    $test = $this->build_mask($datatree, $grandchild['test'], $direction, $cindex, $clast, $ckey, TRUE, $carray);
                                    $return = NULL;
                                    @eval('$return=(bool)('. $test .');');
                                    if ($return === TRUE) {
                                        $notfound = FALSE;
                                        $built[] = $this->build_mask($datatree, $grandchild['true'], $direction, $cindex, $clast, $ckey, $incode, $carray);
                                        break;
                                    }
                                }
                            }
使用以下代码:-

$test = 'XXX';
eval('$return=(bool)$test;');
if($return){  // true
    // do your stuff
}
您可以简单地将其写为:-

$test = 'XXX';
$return=(bool)$test;
if($return){  // true
    // do your stuff
}
或用于避免不必要的类型转换

$test = 'XXX';
if(!empty($test)){ // true
    // do your stuff
}

建议:-切勿使用@隐藏错误。在开发模式中,您应该使用自己的

你知道什么时候发生
unexpected')”
错误吗?我正在使用bugsnag查找错误。永远不要使用@隐藏错误。我不知道你为什么使用eval(),但是你可以写eval(“$return=(bool)($test);”);是的,完成了。我继承了模板代码——这是我第一次在它使用的CMS上运行bugsnag。非常感谢。