Php 从包含文件返回

Php 从包含文件返回,php,Php,在PHP中,如何从包含的脚本返回到包含它的脚本 即: 1-主脚本 2-申请 3-包括 基本上,我想从3回到2,return()不起作用 代码2-应用程序 $page = "User Manager"; if($permission["13"] !=='1'){ include("/home/radonsys/public_html/global/error/permerror.php"); return(); } return应该有效,如中所述 如果当前脚本文件是include

在PHP中,如何从包含的脚本返回到包含它的脚本

即:

1-主脚本 2-申请 3-包括

基本上,我想从3回到2,return()不起作用

代码2-应用程序

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

return
应该有效,如中所述

如果当前脚本文件是include()ed或require()ed,则控制权会传递回调用文件。此外,如果当前脚本文件是include()ed,那么给return()的值将作为include()调用的值返回

嗯,我不同意你的看法<代码>返回应该可以帮助您摆脱包含的文件。当然,它不会在函数中工作。

includeme.php:

$x = 5;
return $x;
main.php:

$myX = require 'includeme.php'; 
也给出了相同的结果


这是PHP鲜为人知的特性之一,但对于设置真正简单的配置文件来说,这是一种不错的选择。

我知道这已经得到了回答,但我认为我有一个很好的解决方案

main.php

function test()
{
    $data = 'test';
    ob_start();
        include( dirname ( __FILE__ ) . '/included.php' );
    return ob_get_clean();
}
<h1>Test Content</h1>
<p>This is the data: <?php echo $data; ?></p>
include.php

function test()
{
    $data = 'test';
    ob_start();
        include( dirname ( __FILE__ ) . '/included.php' );
    return ob_get_clean();
}
<h1>Test Content</h1>
<p>This is the data: <?php echo $data; ?></p>
测试内容
以下是数据:

我刚刚加入了
$data
,以表明您仍然可以将数据传递到包含的文件,以及返回包含的文件。

请参见文档中的示例5

当包含脚本时,可以获取脚本的返回值,如:

$foo = include 'script.php';

确保在包含的脚本(即不在函数中)的顶级作用域中调用return(),从#3/包含的脚本调用return时会发生什么?你能发布你的代码样本吗?当然:$page=“User Manager”;如果($permission[“13”]!=='1'){include(“/home/radonsys/public_html/global/error/permerro.php”);return()}中概述了这一点,应该注意,在大多数情况下,这被认为是一种有点糟糕的编码风格,因为它将include文件视为一个函数。更“标准”的方法是在include文件中放入具有适当名称的函数,包括该文件(在函数之外没有任何返回语句),然后调用所需的函数。在使用括号(即include(“x.php”);而不是包括“x.php”)时,在返回值时要小心。参见PHP文档中的示例4,了解
包含
:@HenrikOpel,解释和详细说明。为什么它的编码风格不好?@Pacerier,如前所述,因为它将include文件视为一个函数,因此依赖于一种非常不寻常、特定于语言且不太明确的行为。这样的事情很容易被潜入维护的开发人员忽略(或者需要花费一些时间来理解发生了什么),所以如果有一种等效的、更常见的方法(比如在本例中使用显式函数调用),应该优先考虑。@HenrikOpel听起来像“不要使用PHP的所有功能,因为其他人不会。”这难道不是为有效地从一种语言中删除功能,最终将其归结为最不常见的开发人员树立了一个坏的先例吗?