检查变量是否被设置“;全球”;在函数内


Check a variable whether it is set or not "globally" within a function

我正在尝试创建一个函数,该函数将执行以下语句的操作…

<?php
if(isset($var)){
    echo $var;
}
else {
    echo "";
}
?>

到目前为止,我已经做到了。。。。

<?php
function echo_ifset($dyn_var){
    $var = $dyn_var;
    if(isset($$var)){
        global $$var;
        echo $$var;
    }
}

但当我跑步时,它什么都不显示。。

echo_ifset('message');
// while message is a defined variable.

如果使用引用,如果没有定义变量,则不会出现任何警告(或错误,我的PHP有点生疏!)问题:

function echo_ifset(&$var) { 
    if (isset($var)) { 
        echo $var; 
    };
}

注意$var声明之前的&,这是引用运算符。

然后,你可以用来称呼它

echo_ifset($message);

如果你想定义一个方法来设置默认值,这个方法也很好:

<?php 
function defaultValue(&$var, $default) { 
    if (!isset($var)) { 
        return $default; 
    }
    return $var;
} 
?>

一些额外的阅读材料可以在以下网址找到:http://www.php.net/manual/en/language.references.pass.php

您需要回显函数的返回值:

function ifset($dyn_var) {
  if (isset($dyn_var)) {
    return $dyn_var;
  }
  else {
    return "";
  }
}

然后只需使用:

echo ifset($var);

您将消息作为字符串传递,因此不显示它。

你像echo_ifset($message)一样通过了考试。if消息变量已定义。

在if语句中删除一个$:

function echo_ifset($dyn_var){
$var = $dyn_var;
if(isset($var)){
    global $$var;
    echo $$var;
};
}