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