2014-09-25 68 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

相关问题