Void в PHP
ПХП7 только-только вышел, а авторы языка уже приступили к следующим версиям. Если 7.0.1 будет лишь работой над ошибками, в 7.1 язык продолжит своё совершенствование. Первая ласточка — реализовано указание на отсутствие возвращаемого значения у функции (void).
Я сначала не понял зачем вводить в язык новое ключевое слово, можно было бы использовать для такого указания уже существующее ключевое слово null, но оказалось, что авторы под void имели ввиду, что функция не может вернуть никакого значения:
function returns_null(): void {
return null; // Fatal error: A void function must not return a value
}
включая null, потому что это определённо значение, хоть и со специальным смыслом. При этом вот такое работает:
function returns_nothing(): void {
return; // valid
}
Таким образом в языке произошло неявное изменение: раньше ситуации с пустым return и с return null не различались, сейчас они будут иметь разный смысл.
Т. е. в ПХП до этого фактически не было процедур (функций без возвращаемого значения)?
Комментарий для bairog:
Не совсем, просто эти ситуации были неразличимы. Слово null имело (и где-то остаётся — например, значение неинициализированной переменной — null) два значения: оно означает, что значения нет и что значение есть и оно null.
Мне кажется это различие как раз и важно (отличить «значения нет и быть не может» от«значение есть и оно неопределенное-null»).
Или во мне говорит шрограммист С#, где void был изначально :)
Комментарий для bairog:
Оно важно, но раньше эти ситуации были неразличимы.