что возвращает функция php по умолчанию?

Если я не возвращаю ничего явно, что точно возвращает функция php?

function foo() {} 
  1. Какой тип?

  2. Какая ценность?

  3. Как проверить его с помощью ===?

  4. Это изменилось с php4 на php5?

  5. Есть ли разница между function foo() {} и function foo() { return; } function foo() { return; }

(Я не спрашиваю, как проверить его, как if (foo() !=0) ... )

  1. null
  2. null
  3. if(foo() === null)
  4. Неа.

Вы можете попробовать:

 $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 (я просто проверял, чтобы быть уверенным!)