2016-05-11 21 views
-2

eval'dコードについての予想外の質問の多くがあることを理解し、しかし、私は、この特定の部分を理解する助けになるなし:evalのコードの構文エラー、予期しない「)」

@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; 
            } 
           } 
          } 
+0

「予期しない」)エラーが発生したときは知っていましたか? –

+0

私はエラーを見つけるbugsnagを使っています。 –

+0

エラーを隠すために@を使用しないでください。代わりに、開発モードでerror_reportingをオンにします。 –

答えて

3

使用である: - :

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

ORに!empty()を使用する - あなたは単にそれを書くことができ

$test = 'XXX'; 
eval('$return=(bool)$test;'); 
if($return){ // true 
    // do your stuff 
} 

不要な型変換は避けてください。

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

提案: - あなたのエラーを隠すために、@を使用しないでください。開発モードでerror_reportingをオンにする必要があります。

+0

うん、それはそれをやった。 Iveはテンプレートコードを継承しました。初めて使用したCMSでバグが発生したのは初めてです。 –

+0

ありがとうございます:歓迎です:-) –

関連する問題