繁体   English   中英

为什么这不适用于PHP?

[英]Why won't this work in PHP?

$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点了,我想知道这是不是巧合?

您可以使用常量替换eval

$constantOutput = constant($constant);

你为什么不放弃评估?

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM