Вложенные функции, как правило, никогда не должны использоваться. Классы и публичные / приватные методы решают одни и те же проблемы гораздо более чисто.
Однако функции генерации функций могут быть полезны:
<?php
# requires php 5.3+
function make_adder($a)
{
return function($b) use($a) {
return $a + $b;
};
}
$plus_one = make_adder(1);
$plus_fortytwo = make_adder(42);
echo $plus_one(3)."\n"; // 4
echo $plus_fortytwo(10)."\n"; // 52
?>
Этот пример придуман и глуп, но такого рода вещи могут быть полезны для генерации функций, используемых для сортировки подпрограмм и т. Д.