簡體   English   中英

默認情況下,php函數返回什么?

[英]what does a php function return by default?

如果我沒有明確返回任何內容,那么php函數到底返回什么?

function foo() {}
  1. 什么類型的

  2. 它有什么價值?

  3. 如何使用===進行准確測試?

  4. 這是否從php4更改為php5?

  5. function foo() {}function foo() { return; }之間是否有區別function foo() { return; } function foo() { return; }

(我不是問如何像if (foo() !=0) ...那樣測試它)

  1. null
  2. null
  3. if(foo() === null)
  4. --
  5. 不。

您可以通過以下方法進行嘗試:

$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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM