в 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(); }
includeme.php:
$x = 5; return $x;
main.php:
$myX = (include 'includeme.php');
Это одна из тех малоизвестных функций PHP, но это может быть неплохо для настройки действительно простых файлов конфигурации.
return
должен работать, как указано в документации .
Если текущий файл сценария был включен () ed или require () ed, тогда управление передается обратно в вызывающий файл. Кроме того, если текущий файл сценария был включен () ed, то значение, возвращаемое return (), будет возвращено как значение вызова include ().
Я знаю, что на это уже был дан ответ, но я думаю, что у меня есть хорошее решение …
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
чтобы показать, что вы все равно можете передавать данные во включенный файл, а также возвращать включенный файл.
Hm, руководство PHP не соглашается с вами. return
должен освободить вас из включенного файла. Разумеется, это не будет работать изнутри функции.
См. Пример № 5 в документации для include .
Вы можете получить возвращаемое значение скрипта при его включении, например:
$foo = include 'script.php';