среда, августа 15, 2007

php и замыкания

как известно в пыхе нет замыканий. некоторые считают это недостатком, потому что замыкания - это черезвычайно мощные штуки, некоторые, наоборот, достоинством, ибо копаться в коде с замыканиями довольно напряжно.

в пыхе сделано тупо, но эффективно - у каждой функции своё пространство имён и если какая-то переменная в ней не определена - значит она не определена и не надо лезть родительский контекст, чтобы в этом убедиться.

однако, в пыхе есть и поруганное многими исключение - директива global позволяющая импортировать переменные из глобального контекста. как говорится: "мысля была хорошей, но родилась она в заднице" :) вместо директивы global лучше бы ввели директиву extern, позволяющую импортировать переменные из родительского контекста - получились бы эдакие "контролируемые замыкания".

интересно, существуют ли уже языки с "контролируемыми замыканиями"?

Комментариев нет: