Neden PHP bu iş değil mi?

2 Cevap 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);
    }
}

Aslında, sadece bazı içerik ayrıştırmak ve eşdeğer PHP sabiti ile iç dizeleri değiştirmek için çalışıyor. eval() Burada ne kullanıyor olmalıdır mı? Ben aslında daha önce kullanmak için bir sebep bulamadılar, ve neredeyse 01:00, ve bu bir tesadüf olup olmadığını merak ediyorum?

2 Cevap

Sen eval constant ile değiştirin:

$constantOutput = constant($constant);

Neden sadece eval dışarı bırakmıyorsunuz?

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

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

verir

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