Подтвердить что ты не робот

Возврат из файла include

в PHP, как вернуться из включенного script обратно в script, где он был включен?

IE:

1 - главная script 2 - приложение 3 - включены

В принципе, я хочу вернуться с 3 на 2, return() не работает.

Код в 2 - приложении

$page = "User Manager";
if($permission["13"] !=='1'){
    include("/home/radonsys/public_html/global/error/permerror.php");
    return();
}
4b9b3361

Ответ 1

includeme.php:

$x = 5;
return $x;

main.php:

$myX = (include 'includeme.php');

Это одна из тех малоизвестных функций PHP, но это может быть неплохо для настройки действительно простых файлов конфигурации.

Ответ 2

return должен работать, как указано в документации.

Если текущий script файл был включен() ed или require() ed, тогда управление передается обратно в вызывающий файл. Кроме того, если текущий файл script был включен() ed, то значение, возвращаемое return(), будет возвращено как значение вызова include().

Ответ 3

Я знаю, что на это уже был дан ответ, но я думаю, что у меня хорошее решение...

main.php

function test()
{
    $data = 'test';
    ob_start();
        include( dirname ( __FILE__ ) . '/included.php' );
    return ob_get_clean();
}

included.php

<h1>Test Content</h1>
<p>This is the data: <?php echo $data; ?></p>

Я просто включил $data, чтобы показать, что вы все равно можете передавать данные во включенный файл, а также возвращать включенный файл.

Ответ 4

Hm, руководство по PHP не согласуется с вами. return должен освобождать вас от включенного файла. Разумеется, это не будет работать изнутри функции.

Ответ 5

См. Пример # 5 в документации для include.

Вы можете получить возвращаемое значение script при его включении, например:

$foo = include 'script.php';