Да, вы можете в PHP 5.3 или выше, вы можете прочитать документацию здесь: http://php.net/manual/en/functions.anonymous.php
Это не работает так же, как JavaScript жесткой. JavaScript - это прототипный язык, php - нет.
Вы можете сделать это в JavaScript:
var value = 'foo';
object.doSomething(function() {
console.log(value);
});
Вы можете сделать это, поскольку функции JavaScript имеет ссылку на это творец. В php вы не можете. Значение будет недоступно.
Кроме этого, он работает аналогично. Например, если вы хотите сделать динамические итерации над массивами или другими структурами.
function iterateOverArray($array, $function) {
foreach ($array as $key => $value) {
$function($key, $value);
}
}
Эта функция позволяет вам перебирать массив и указывать собственное действие. Например:
$array = array('foo', 'bar', 'FOBAR');
iterateOverArray($array, function ($key, $value) {
echo $key . ' => ' . $value;
});
Это очень полезно для изменения сложных структур. Но это единственная ситуация, когда я использовал анонимные функции в php. Но, возможно, это потому, что это все-таки новое в php.
его можно написать анонимные функции проверить это ... http://stackoverflow.com/questions/2412299/why-and-how-do-you-use-anonymous-functions-in-php – codebreaker
Как вы можете нажмите на объект PHP? – undefined
Если у вас вопрос о том, как метод вызывает функцию, которую он получает в качестве аргумента, см. Документацию по PHP на [переменные функции] (http://php.net/manual/en/functions.variable-functions.php) – Barmar