Пример #1
1
function outer($x)
{
    // Родительская функция.
    inner($x * $x);
}
Пример #2
0
function test()
{
    function inner()
    {
        print 'test';
    }
    inner();
}
Пример #3
0
function scope()
{
    $foo = 10;
    function inner()
    {
        echo "foo -> {$foo}" . PHP_EOL;
    }
    inner();
}
Пример #4
0
function outer($msg)
{
    function inner($msg)
    {
        echo 'inner: ' . $msg . ' ';
    }
    echo 'outer: ' . $msg . ' ';
    inner($msg);
}
Пример #5
0
function customjson($objDesc)
{
    return "{'Y' : {" . inner($objDesc['Y']) . "}, 'N' : {" . inner($objDesc['N']) . "}}";
}
Пример #6
0
function outer()
{
    $obj = new Orator(__METHOD__);
    inner();
}
Пример #7
0
<?php

## Работа с буфером вывода в "объектном" стиле.
spl_autoload_register();
// Перехватываем выходной поток в программе.
$h = new \Buffering\Output();
// Текст попадет в буфер.
echo "Начало внешнего перехвата.<br />";
// Вызываем функцию, "не зная", что она перехватывает вывод.
$formatted = inner();
// Печатаем еще текст в буфер.
echo "Конец внешнего перехвата.";
// Фомируем некоторый текст по шаблону.
$text = "{$h->__toString()}<br>Функция вернула: \"{$formatted}\"";
// Завершаем перехват. Буфер освободится автоматически в деструкторе.
$h = null;
// Печатаем то, что накопили в переменной, и заканчиваем работу.
echo $text;
exit;
// Функция, перехватывающая выходной поток в своих целях.
// Гарантирует, что при выходе буфер будет восстановлен.
function inner()
{
    $buf = new \Buffering\Output();
    echo "Этот текст попадет в буфер.";
    return "<b>{$buf->__toString()}</b>";
    // Не нужно заботиться о ручном вызове ob_end_clean() -
    // это автоматически делает деструктор объекта $buf!
}
Пример #8
0
 function outer($arg)
 {
     $x = $arg + 35;
     return $x + inner($x);
 }
Пример #9
0
function outer()
{
    echo "Вошли в функцию " . __METHOD__ . "<br>";
    inner();
    echo "Вышли из функции " . __METHOD__ . "<br>";
}
Пример #10
0
function outetr($x)
{
    inner($x * $x);
}