PHP函数通过引用
传递尚未设定的变量目前我使用这个PHP函数:PHP函数通过引用
function if_exist(&$argument, $default = '')
{
if (isset ($argument))
{
echo $argument;
}
else
{
echo $default;
}
}
我想这个功能取消设置变量$参数(按引用传递)和$默认只回响着他们的价值后, , 我怎样才能做到这一点? 在此先感谢。
$default
是按值传递的,所以它不能被取消设置(本地范围除外)。
正如您毫无疑问发现的那样,unset()
只是简单地取消了对$argument
的引用。你可以(在某种程度上)未设置$argument
这样的:
$argument = null;
指定为null与取消设置并不完全相同,即使这意味着'isset()'将会给出相同的结果。但我想这就足够了,因为无论如何你都不能通过调用'unset()'来做同样的事情。 – BoltClock
我也是这样做的,但仍然没有运气,无论$参数还是$默认值都未被设置。 :( –
@Pawan Choudhary:你可以在你原来的帖子中显示你的新代码,并且显示你是如何检查变量是否被设置的吗? –
用一个函数来做到这一点是使用全局的唯一途径。
//To unset() a global variable inside of a function,
// then use the $GLOBALS array to do so:
<?php
function foo()
{
unset($GLOBALS['bar']);
}
$bar = "something";
foo();
?>
我这样做: 功能if_exist(&$参数$默认= '') { \t如果(isset($参数)) \t { \t \t回波$参数; \t} \t别的 \t { \t \t回波$默认; \t} \t $参数= NULL;} 但仍没有运气,结果是与以前相同:( –
@Pawan:这可能是。可能在你的情况下,我不确定,但是把它变成空白(即。 '$ argument ='';'),然后而不是检查它是否设置,检查它是否为空。当然,这取决于空白字符串是否是有效值。 –