Нельзя, это будет синтаксической ошибкой.
А объявление вложенной неанонимных функций в PHP определяет глобальную функцию, которая не имеет никакого доступа к переменным родительской функции. Происходит то же, как будто функция и не вложенная вовсе.
function person($name) {
function sub() {
return $name; // ошибка
}
}
Хуже того, если мы в таком виде два раза вызовем person(), то получим ошибку переопределения sub().
Если вы хотите нормальные замыкания то везде используйте анонимные функции. Либо переходите на другие языки, с лучшим дизайном (Python/Ruby).