如何在PHP中创建一个接受未分配变量的函数


How can i create a function that takes un-assigned variable in PHP

我正在尝试制作一个函数,它接受一个变量,无论它是否被设置,

像函数isset()

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

如何让我的函数取不设置的变量?

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

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

如果您使用$_GET和朋友,很容易遇到这个问题,因为您不能依赖于将给定字段传递到程序中。

为此,我使用了一个实用程序类,这样我就可以避免未设置变量的错误,并将默认值填充到它们中。

<?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');
?>

现在,您不必担心检查它们是否已设置。