2014-09-25 103 views
0

我想要一個函數,如果它被定義只渲染一個變量,否則什麼也不做。我不希望這種檢查的情況發生(和錯誤)在腳本混合使用HTML,而是在一個函數像這樣:如何檢查一個變量是否由名稱定義

/** 
* Echos a variable if it's set 
*/ 
function render($var_name) 
{ 
    if (eval('return(isset(' . $var_name . '))')) 
     echo eval($var_name); 
} 

這個錯誤有:

Parse error: syntax error, unexpected ')', expecting :: (T_PAAMAYIM_NEKUDOTAYIM) in inc\page.php(8) : eval()'d code on line 1 Call Stack #TimeMemoryFunctionLocation 

是否有更好的辦法這樣做?

回答

1

試試這個:

function render($var_name) 
{ 
    if (isset($$var_name)) 
     echo $$var_name; 
    else 
     echo "not defined"; 
} 

DEMO

+0

這工作一種享受,謝謝! – James 2014-09-25 10:36:15

0
 function render($value){ 
      if(isset($value)){ 
      echo $value; 
     } 
     } 
+0

此方法不起作用,因爲如果您調用'render($ var)',其中'$ var'未定義,那麼會在函數被調用時拋出錯誤。 – James 2014-09-25 10:37:23

+0

更好的解釋,而不僅僅是把代碼 – 2014-09-26 04:51:49

+0

總是對你發佈的答案作出一些解釋,以便其他人可以輕鬆獲得。 – 2014-09-26 05:14:05

0

你可能想嘗試這樣的事:

<?php 
function render($var_name){ 
    if(isset($var_name)){ 
     return $var_name; 
    } 
    return false; 
} 

$test = 'TESTER'; 

echo render($test); 
?> 

演示:https://eval.in/198437

相關問題