web-dev-qa-db-fra.com

Qu'est-ce qu'une fonction PHP renvoie par défaut?

Si je ne retourne rien explicitement, qu'est-ce qu'une fonction PHP revient exactement?

function foo() {}
  1. Quel type est-ce?

  2. Quelle valeur s'agit-il?

  3. Comment puis-je le tester exactement avec ===?

  4. Cela a-t-il changé de PHP4 à PHP5?

  5. Y a-t-il une différence entre function foo() {} et function foo() { return; }

(Je ne demande pas comment le tester comme if (foo() !=0) ...)

69
user89021
  1. null
  2. null
  3. if(foo() === null)
  4. -
  5. Nan.

Vous pouvez l'essayer en faisant:

$x = foo();
var_dump($x);
98
PatrikAkerstrand

Ne retourne pas une valeur de A PHP Fonction a la même sémantique qu'une fonction qui retourne null.

function foo() {}

$x=foo();

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

Cela va sortir

NULL
false
true

Vous obtenez le même résultat si FOO est remplacé par

function foo() {return null;}

Il n'y a pas eu de changement dans ce comportement de PHP4 à PHP5 à PHP7 (i simplement testé pour être sûr!)

38
Paul Dixon