Задать вопрос
@avtomon
Full-stack разработчик

Можно ли использовать use с неанонимными функциями PHP?

Например, так:
<?php
function func () use ($a, $b) {...}

func();
?>
  • Вопрос задан
  • 2559 просмотров
Подписаться 4 Оценить Комментировать
Решения вопроса 1
@MrButek
Нельзя, это будет синтаксической ошибкой.

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

Хуже того, если мы в таком виде два раза вызовем person(), то получим ошибку переопределения sub().

Если вы хотите нормальные замыкания то везде используйте анонимные функции. Либо переходите на другие языки, с лучшим дизайном (Python/Ruby).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Vampiro
о.. да... параметры же нельзя в функцию передать, нужно порвать себе моск модным словом use =)

func($a,$b) чем не устроило?
Ответ написан
nazarpc
@nazarpc
Open Source enthusiast
А вы пробовали запустить код?)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы