Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > function ($name) use ($app) { wtf ?


Автор: Muerto 11.9.2011, 19:33
Я немного отстал в развитии, и не знаком с (Это анонимная функция взял отсюда http://codenugget.org/5-reasons-why-silex-is-king-of-all-php-micro )

Код

function ($name) use ($app) {


Что такое use?
Я вот знаю namespace ввели, делаешь use foo\bar as abc;

но а в функции то что это? замена global чтоли  smile 
Есть ли аналоги с мира Java ? 

Автор: Muerto 11.9.2011, 20:37
Этим можно пользоватся только в анонимных функциях ?  smile 

Извращение  smile 
Код

  $fib = function($n) use(&$fib) {
        if($n == 0 || $n == 1) return 1;
        return $fib($n - 1) + $fib($n - 2);
    };

Автор: Shogun 11.9.2011, 21:11
Цитата(Muerto @ 11.9.2011,  20:37)
Этим можно пользоватся только в анонимных функциях ?  smile 

Извращение  smile 
Код

  $fib = function($n) use(&$fib) {
        if($n == 0 || $n == 1) return 1;
        return $fib($n - 1) + $fib($n - 2);
    };

 smile  smile 

Автор: Absinthe 11.9.2011, 23:47
Мануал читать пробовали?
http://php.net/manual/en/functions.anonymous.php
use - костыль всвязи с невозможностью определить, используется ли переменная из внешней области или объявлена внутри новая(косяки шаблонизаторного прошлого всплыли).

В javascript данная штука(без use) используется повсеместно. Кстати советую основы JS выучить - пригодится для PHP-программиста.

Цитата

Есть ли аналоги с мира Java ? 
 Анонимные классы - совсем другое.

Автор: MoLeX 12.9.2011, 06:18
http://rmcreative.ru/blog/post/rekursivnye-anonimnye-funktsii-php

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)