我试图创建一个能够执行以下语句的功能....
<?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.
答案 0 :(得分:4)
如果使用引用,如果未定义变量,则不会出现警告(或错误,我的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
答案 1 :(得分:0)
您需要回显函数的返回值:
function ifset($dyn_var) {
if (isset($dyn_var)) {
return $dyn_var;
}
else {
return "";
}
}
然后使用:
echo ifset($var);
答案 2 :(得分:0)
您已将消息作为字符串传递,因此不会显示它。
你已经过echo_ifset($message)
。如果消息变量已经定义。
答案 3 :(得分:0)
在if语句中删除一个$:
function echo_ifset($dyn_var){
$var = $dyn_var;
if(isset($var)){
global $$var;
echo $$var;
};
}