[英]what does a php function return by default?
如果我沒有明確返回任何內容,那么php函數到底返回什么?
function foo() {}
什么類型的
它有什么價值?
如何使用===進行准確測試?
這是否從php4更改為php5?
function foo() {}
和function foo() { return; }
之間是否有區別function foo() { return; }
function foo() { return; }
(我不是問如何像if (foo() !=0) ...
那樣測試它)
null
null
if(foo() === null)
您可以通過以下方法進行嘗試:
$x = foo();
var_dump($x);
不從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的這種行為沒有改變(我只是確定要測試 !)
當指定函數返回類型時,我確實發現了一個奇怪的地方。 當您這樣做時,您必須明確有關從函數中返回某些內容。
<?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
因此,如果您決定在舊函數上添加一些返回類型規范,請務必考慮一下。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.