我希望有一个函数,如果没有传递参数,就会发出错误信号。现在它会发出警告,但会执行代码。
我查看了这个PHP错误处理缺少参数,但我认为更多的是将输入强制转换为空或零的问题。
我正在使用:
PHP 5.6.25 (cli) (built: Sep 6 2016 16:37:16)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
我有:
function go($x){
if(is_null($x))
print("|nil|"."\n");
else
print($x."\n");
}
并获得预期的结果,如下所示:
go(33);
> 33
go("Hello world");
> "Hello World"
go(null);
> |nil|
$in = null;
go($in);
> |nil|
$in = 44;
go($in);
> 44
但如果我不带参数调用它,我会得到:
go();
> Warning: Missing argument 1 for go(), called in ...
> |nil|
在这个例子中,我打印了“|nil|”,但在更大的情境中,它应该返回错误(或空值),以便在其他地方处理。
我已经研究了类似以下内容的东西:
function go($x){
if(!isset($x)) die("muerto");
if(is_null($x))
print("|nil|"."\n");
else
print($x."\n");
}
这段代码对空和null两种情况都进行了处理。但是它会使程序中断(崩溃?)。
go();
> Warning: Missing argument 1 for go(), called in ...
> muerto
go(null);
> muerto
通常情况下,这只是更加复杂代码的一个过于简单化的例子。
非常感谢您的输入。