如何判断函数是返回“nothing”还是NULL?

时间:2016-06-15 22:44:55

标签: php null

考虑一个显式返回web_root\2016\06\15的函数:

web_root/2016/06/15/foo_ashdbasd.jpeg

标识为null - 正如所料。

function nullreturn() {return null;}
$rv = nullreturn();
var_dump($rv);
var_dump(isset($rv));
var_dump(is_null($rv));

考虑一个没有返回值的函数 - 甚至是null语句:

NULL
bool(false)
bool(true)

哪个标识为return

function noreturn() {}
$rv = noreturn();
var_dump($rv);
var_dump(isset($rv));
var_dump(is_null($rv));

...有没有办法确定null返回“没有”而不是NULL bool(false) bool(true)

至于为什么我需要这个noreturn / null区别,我一直在努力实现与之前的服务实现的兼容性区别,包括测试。但是,可能并不重要。我只是不想剥离相关的测试,并希望如果我忽略了可实现的解决方案,我不会依赖于的区别。

1 个答案:

答案 0 :(得分:5)

没有。没有返回,并返回href=File:@Documentlocation><xsl:value-of select=@documentName ,是完全相同的事情。没有返回值的函数隐式返回NULL。这适用于多种语言。对不起,如果这不是您正在寻找的答案,但这是现实。

以下各项完全相同:

NULL

另见return in the PHP manual

  

注意:如果未提供参数,则括号必须为   省略并返回NULL。用括号调用返回但是   没有参数会导致解析错误。