Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

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

4 комментария
bairog 2015

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

Евгений Степанищев (bolknote.ru) 2015

Комментарий для bairog:

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

bairog 2015

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

Евгений Степанищев (bolknote.ru) 2015

Комментарий для bairog:

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