代码之家  ›  专栏  ›  技术社区  ›  alex

为什么这在PHP中不起作用?

  •  3
  • alex  · 技术社区  · 15 年前
    $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 回复  |  直到 15 年前
        1
  •  10
  •   dusan    15 年前

    你可以替换 eval 具有 constant :

    $constantOutput = constant($constant);
    
        2
  •  0
  •   Thomas Schaub    15 年前

    你为什么不省去评估?

    <?php
        $v = PHP_VERSION;
        $f = __FILE__;
    
        echo $v.' '.$f;
    ?>
    

    给予

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