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 не различались, сейчас они будут иметь разный смысл.
8 декабря 2015 09:13

bairog (инкогнито)
9 декабря 2015, 16:48

Т.е. в ПХП до этого фактически не было процедур (функций без возвращаемого значения)?

bolknote.ru (bolknote.ru)
9 декабря 2015, 17:37, ответ предназначен bairog

Не совсем, просто эти ситуации были неразличимы. Слово null имело (и где-то остаётся — например, значение неинициализированной переменной — null) два значения: оно означает, что значения нет и что значение есть и оно null.

bairog (инкогнито)
9 декабря 2015, 20:04

Мне кажется это различие как раз и важно (отличить "значения нет и быть не может" от"значение есть и оно неопределенное-null").
Или во мне говорит шрограммист С#, где void был изначально :)

bolknote.ru (bolknote.ru)
9 декабря 2015, 21:07, ответ предназначен bairog

Оно важно, но раньше эти ситуации были неразличимы.

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)