如何在PHP中创建一个取消指定变量的函数

时间:2012-07-15 09:02:16

标签: php

我正在尝试创建一个带变量的函数,无论它是否已设置,

就像函数isset()

一样
//we have this array
$array  = array();
isset($array["test"]);//this one is valid 
myFunc($array["test"]);//this one is not valid 

我怎么能让我的函数不设置变量?

2 个答案:

答案 0 :(得分:1)

将参数作为参考传递 http://php.net/manual/en/language.references.pass.php

function myFunc(&$val)
{
    return isset($val);
}

var_dump(myFunc($undefined));

答案 1 :(得分:1)

如果您正在使用$_GET和朋友,则会遇到此问题,因为您不能依赖于将某个字段传递到您的程序中。

我为此使用了一个实用程序类,因此我可以避免使用unset vars的错误,并将默认值填充到它们中。

<?php
function defArrayElem(&$array, $key, $default=null) {
    if(!isset($array[$key])) {$array[$key]=$default;}
}

//repeat for all the $_GET/$_POST vars you expect...
defArrayElem($_GET,'keyname','default-value');
?>

现在您无需担心检查它们是否已设置。