2009-08-02 8 views
59

Wenn ich nichts explizit zurückgebe, was genau kehrt eine PHP-Funktion zurück?Was gibt eine PHP-Funktion standardmäßig zurück?

function foo() {} 
  1. Welche Art ist es?

  2. Welchen Wert haben Sie?

  3. Wie teste ich genau mit ===?

  4. Hat sich das von php4 zu php5 geändert?

  5. Gibt es einen Unterschied zwischen function foo() {} und function foo() { return; }

(ich frage nicht, wie es zu testen, wie if (foo() !=0) ...)

+1

Siehe http://php.net/manual/en/functions.returning-values.php für offizielle Dokumentation – Sophivorus

Antwort

85
  1. null
  2. null
  3. if(foo() === null)
  4. -
  5. Nein.

Sie können es ausprobieren, indem Sie:

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

Nicht einen Wert aus einer PHP-Funktion hat als Funktion die gleiche Semantik Rückkehr, die null zurückgibt.

function foo() {} 

$x=foo(); 

echo gettype($x)."\n"; 
echo isset($x)?"true\n":"false\n"; 
echo is_null($x)?"true\n":"false\n"; 

Dies wird Ausganges

NULL 
false 
true 

Sie das gleiche Ergebnis, wenn foo mit

function foo() {return null;} 

Es gab keine Änderung dieses Verhalten von PHP4 auf PHP5 php7 (I ersetzt wird nur tested, um sicher zu sein!)

+0

+1 aber ich wünschte, ich könnte +2, dies ist die vollständigere Antwort (einschließlich Frage Nr. 4 bezüglich Verhaltensänderung zwischen PHP-Versionen) – Jonathan

Verwandte Themen