Вернуться из включаемого файла - PullRequest
49 голосов
/ 22 августа 2009

в PHP, как можно вернуться из включенного сценария обратно в сценарий, из которого он был включен?

IE:

1 - основной скрипт 2 - приложение 3 - в комплекте

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

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

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

Ответы [ 5 ]

112 голосов
/ 22 августа 2009

includeme.php:

$x = 5;
return $x;

main.php:

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

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

18 голосов
/ 22 августа 2009

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

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

11 голосов
/ 21 ноября 2013

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

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, чтобы показать, что вы все еще можете передавать данные во включенный файл, а также возвращать включенный файл.

6 голосов
/ 22 августа 2009

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

4 голосов
/ 18 декабря 2013

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

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

$foo = include 'script.php';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...