2009-08-02 89 views
59

如果我沒有明確返回任何內容,PHP函數會返回什麼結果?默認情況下php函數返回什麼?

function foo() {} 
  1. 什麼類型呢?

  2. 它是什麼值?

  3. 如何用===測試它?

  4. 從php4到php5做了這個改變嗎?

  5. 有沒有(我不問如何測試它像if (foo() !=0) ...function foo() {}function foo() { return; }

之間的差異

+1

查看官方文檔http://php.net/manual/en/functions.returning-values.php – Sophivorus 2012-10-28 02:12:37

回答

85
  1. null
  2. null
  3. if(foo() === null)
  4. -
  5. 沒有。

你可以通過做嘗試一下:

$x = foo(); 
var_dump($x); 
32

不是從一個PHP函數返回值具有相同的語義返回空值的函數。

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可以肯定!)

+0

+1,但我希望我可以+2,這是更完整的答案(包括關於php版本之間行爲變化的問題#4) – Jonathan 2017-09-17 13:56:01

相關問題