簡體   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