web-dev-qa-db-ja.com

PHP関数はデフォルトで何を返しますか?

明示的に何も返さない場合、php関数は正確に何を返しますか?

_function foo() {}
_
  1. それはどんなタイプですか?

  2. それは何の価値ですか?

  3. ===で正確にテストするにはどうすればよいですか?

  4. この変更はphp4からphp5に変更されましたか?

  5. function foo() {}function foo() { return; }の間に違いはありますか

(私はif (foo() !=0) ...のようにテストする方法を尋ねていません)

69
user89021
  1. null
  2. null
  3. if(foo() === null)
  4. -
  5. いいえ。

あなたはそれをやってみることができます:

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

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への変更はありません(確かに tested です!)

38
Paul Dixon