为什么这不适用于PHP?

时间:2010-02-24 14:57:32

标签: php eval constants

$constPrefix = '_CONST_';

if (strstr($content, $constPrefix)) {
    $constants = array('PHP_VERSION', '__FILE__');
    foreach($constants as $constant) {
        $constantOutput = eval($constant);
        $content = str_replace($constPrefix . $constant, $constantOutput, $content);
    }
}

基本上,只是尝试解析一些内容并用等效的PHP常量替换内部的字符串。 eval()我应该在这里使用什么?我以前从未真正找到过使用它的理由,而且差不多凌晨1点了,我想知道这是不是巧合?

2 个答案:

答案 0 :(得分:10)

您可以将eval替换为constant

$constantOutput = constant($constant);

答案 1 :(得分:0)

为什么不放弃评估?

<?php
    $v = PHP_VERSION;
    $f = __FILE__;

    echo $v.' '.$f;
?>

给出

/tmp% php test.php 
5.2.10-2ubuntu6.4 /tmp/test.php