我正在尝试创建一个函数,该函数将执行以下语句的操作…
<?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;
};
}