ФорумПрограммированиеPHP для идиотов → call_user_func и передача параметра по ссылке

call_user_func и передача параметра по ссылке

  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 16 сентября 2009 г. 2:54

    Из документации:

    Замечание: Обратите внимание, что параметры для call_user_func() не могут передаваться по ссылке.



    <?php
    error_reporting(E_ALL);
    function increment(&$var)
    {
       $var++;
    }

    $a = 0;
    call_user_func('increment', $a);
    echo $a."\n";

    call_user_func_array('increment', array(&$a)); // You can use this instead before PHP 5.3
    echo $a."\n";
    ?>


    The above example will output:
    0
    1



    А это уже от меня лично:
    Необязательно так заморачиваться через массив. По крайней мере в PHP 5.2 работает простое решение с "&"

    call_user_func('increment', &$a);
    echo $a; // output 1

    То есть это тот случай когда не работает правило достаточно указать & только в описании функции, при вызове указывать не надо.

    У кого есть под рукой установленный PHP 5.3 — проверьте будет ли он выдавать Warning "deprecated" в моем примере. Пожалуйста!
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 16 сентября 2009 г. 6:20, спустя 3 часа 26 минут 17 секунд

    неа под рукой нету)

    сам я ебусь с rsa/dsa/blowfish ключами уже 3ий день =))))))))))))))))))
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!