<?php

function O($f, $g) {
    return function () use ($f, $g) {
        $args = func_get_args();
        return $f(call_user_func_array($g, $args));
    };
}

function Foo($v) {
    echo "foo(int v = $v)\n";
    return $v + 1;
}

function Bar($v) {
    echo "bar(int v = $v)\n";
    return $v + 1;
}

$res = O('Foo', 'Bar')(1);
echo "res = $res\n";