Php 如何检查变量是否按名称定义

Php 如何检查变量是否按名称定义,php,Php,我想一个函数,只有呈现一个变量,如果它被定义,否则什么也不做。我不希望在混合了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

我想一个函数,只有呈现一个变量,如果它被定义,否则什么也不做。我不希望在混合了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
有更好的方法吗?

试试这个:

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

您可能想尝试以下方法:

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

$test = 'TESTER';

echo render($test);
?>


演示:

这种方法不起作用,因为如果调用
render($var)
,其中
$var
未定义,则在调用函数的位置将抛出一个错误。请始终对您发布的答案进行一些解释,以便其他人可以轻松获得它。
<?php
function render($var_name){
    if(isset($var_name)){
      return $var_name;
    }
    return false;
}

$test = 'TESTER';

echo render($test);
?>