Если я не возвращаю ничего явно, что точно возвращает функция php?
function foo() {}
Какой тип?
Какая ценность?
Как проверить его с помощью ===?
Это изменилось с php4 на php5?
Есть ли разница между function foo() {}
и function foo() { return; }
function foo() { return; }
(Я не спрашиваю, как проверить его, как if (foo() !=0) ...
)
null
null
if(foo() === null)
Вы можете попробовать:
$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 (я просто проверял, чтобы быть уверенным!)