Example #1
0
      }*/
}
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