过去,当我需要检查是否设置了变量以及数字时,我会这样做:
if( isset($_GET['var']) && is_numeric($_GET['var']) )
但我觉得这有点难看,尤其是当我需要在同一个 if 语句中检查一堆变量时,所以我做了一个函数:
function setAndNum($var)
{
if(isset($var) && is_numeric($var))
return 1;
else
return 0;
}
问题是当我将未定义的变量传递给函数时,像这样(假设 GET 数组中的变量未定义):
if( setAndNum($_GET['var']) )
我收到 php 错误:
注意:未定义的索引:...
因此,该功能的整个目的基本上都被打败了(或者至少是目的的一半;))。
让我感到困惑的一件事是 isset() 函数是如何工作的,为什么我可以将未定义的变量传递给它,但不能传递给我自己的函数?
是否可以让我的 setAndNum() 函数工作?