如果我没有显式返回任何内容,那么php函数到底返回什么呢?
function foo() {}
function foo() {}
有区别吗(我不是问如何像if (foo() !=0) ...
那样测试它)
发布于 2009-08-02 10:09:18
null
null
if(foo() === null)
您可以通过执行以下操作来尝试它:
$x = foo();
var_dump($x);
发布于 2009-08-02 10:16:52
不从PHP函数返回值与返回null的函数具有相同的语义。
function foo() {}
$x=foo();
echo gettype($x)."\n";
echo isset($x)?"true\n":"false\n";
echo is_null($x)?"true\n":"false\n";
这将输出
NULL
false
true
如果将foo替换为,则会得到相同的结果
function foo() {return null;}
从php4到php5再到php7,这种行为没有任何变化(我只是tested来确认一下!)
发布于 2019-05-09 02:49:19
在指定函数返回类型时,我确实发现了一个奇怪的地方。当你这样做的时候,你必须明确地从你的函数中返回一些东西。
<?php
function errorNoReturnDeclared($a = 10) : ?string {
if($a == 10) {
echo 'Hello World!';
}
}
errorNoReturnDeclared(); //Fatal error
错误:
Uncaught TypeError: Return value of errorNoReturnDeclared() must be of the type string or null, none returned in
因此,如果您决定在旧函数上添加一些返回类型规范,请务必考虑这一点。
https://stackoverflow.com/questions/1218580
复制相似问题