}*/ } function post_cb($args, $result, $t) { echo 'post_cb----------'; var_dump($result); if (count($args) == 0) { echo 'zero'; } else { if (count($args) == 1) { echo 'trim'; } else { $args[2]->testf(); } } } fc_add_pre('m1', 'pre_cb'); fc_add_pre('m2', 'pre_cb'); fc_add_post('m1', 'post_cb'); fc_add_post('m2', 'post_cb'); fc_add_post('trim', 'pre_cb'); fc_add_post('trim', 'post_cb'); //trim(' ok '); $t2 = new testc2(); m1(); $b = m2('abc', true, $t2); echo 'XXXXXXXXXXXXXXX--------'; //var_dump(xdebug_get_declared_vars()); echo 'endXXXXXXXXXXXXXXX--------'; trim(' ok '); die;
// return undefined variable } $a = array(10, 20, 30); var_dump($a); $d =& k($a[0]); var_dump($d); var_dump($a); $d =& k($a[5]); // non-existant element going in var_dump($d); var_dump($a); $d =& k($a["red"]); // non-existant element going in var_dump($d); var_dump($a); //*/ ///* // returning literals byRef is okay function &m1() { return NULL; } $d =& m1(); var_dump($d); function &m2() { return 1234; } $d =& m2(); var_dump($d); //*/
<?php // Оборачивая функцию с помощью def_wrapper возможно переопределять // передаваемые аргументы def('m2', function ($i) { return $i * 2; }); def_wrapper('m2', function ($call) { return $call(3); }); echo m2(2); ?> --- 6