1

このコードの問題点:

<?php eval(" $start = microtime(true)*1000; echo 'hello'; $end=microtime(true)*1000; $time = $end-$start; $time = round($time,4); echo '<br />Time taken: '.$time.'ms<br />'; "); ?>

それは正確に1行のコードです(理由は聞かないでください)が、読みやすさのために繰り返します

<?php 
eval(" $start = microtime(true)*1000; 
    echo 'hello'; 
    $end=microtime(true)*1000; 
    $time = $end-$start; 
    $time = round($time,4); 
    echo '<br />Time taken: '.$time.'ms<br />';
");  
?>

次のエラーが表示されます。 Parse error: syntax error, unexpected '=' in ...\test2.php(1) : eval()'d code on line 1

4

2 に答える 2

10

二重引用符を使用する場合、すべてのドル記号をエスケープする必要があります。それがないと、php はスコープから最終的な文字列に変数を解決しようとします。

おそらく$start変数が定義されていないため、空の文字列として扱われ、コードは「=」で始まります。

于 2013-06-29T21:32:18.057 に答える
0

これを試して:

eval(' $start = microtime(true)*1000; 
    echo \'hello\'; 
    $end=microtime(true)*1000; 
    $time = $end-$start; 
    $time = round($time,4); 
    echo \'<br />Time taken: \'.$time.\'ms<br />\';
');
于 2013-06-29T21:36:42.663 に答える