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 />'; "); ?>

这正是一行代码(不要问为什么),但为了可读性,我重复一遍

<?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 回答