2010-02-24 82 views
3
$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點了,我想知道這是否是巧合?爲什麼不能在PHP中使用?

+4

你不應該'的eval();'。永遠。 (好吧,有一些例外,但它們很少,而且很少) – Jacco 2010-02-24 15:01:27

+0

代碼的意圖是什麼? 如果是凌晨1點,那麼我建議在早上睡覺並觀察。當你的大腦休息得很好時,編程更容易。馬霍編程停滯不生產。 – 2010-02-24 15:17:27

+0

凌晨1點爲eval +1 +1) – 2010-02-24 15:21:26

回答

10

您可以constant替代eval

$constantOutput = constant($constant); 
0

你爲什麼不拋開eval?

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

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

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

只是想變得更加靈活。雖然我知道'eval' *是一個性能問題。 – alex 2010-02-24 23:50:17

相關問題