Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否防止仅继续加载当前文件而不中断父文件的加载?_Php - Fatal编程技术网

Php 是否防止仅继续加载当前文件而不中断父文件的加载?

Php 是否防止仅继续加载当前文件而不中断父文件的加载?,php,Php,查看以下结构: groups.php <?php session_start(); include('header.php'); if($_SESSION['admin']) { include('groups_admin.php'); } ... html ... ?> groups\u admin.php <?php if(!$_SESSION['admin']) { die(); } ... html ... ?> 组_admin.php的内部-执行

查看以下结构:

groups.php

<?php
session_start();
include('header.php');
if($_SESSION['admin'])
{ include('groups_admin.php'); }

... html ...

?>

groups\u admin.php

<?php
if(!$_SESSION['admin'])
{ die(); }
... html ...
?>

组_admin.php的内部-执行die();导致页面的其余部分(包括groups.php)停止加载


如果不包装所有组,那么_admin.php就是一个大的if语句,并将其反转;还有什么方法可以告诉PHP在该文件中停止加载该特定的PHP文件吗?

只需在include中返回,例如:

<?php
if(empty($_SESSION['admin']))
{ return false; }
... html ...
?>

很多人不知道可以从包含的文件返回值

只是为了完成这个答案。您还有其他几个不太优雅(但不推荐)的选项

  • 您抛出一个异常并在include之外捕获它
  • 将其包装在if块中

尽管与
返回解决方案相比,这是次优的,但我还是无能为力

猜猜看:php支持什么

<?php
if(!$_SESSION['admin'])
{ goto endoffile; }
... html ...
endoffile:
?>


我刚刚发现了自己,它让我回到了过去,回到了我最基本的几年。。。(叹气!)

如果您仅以这种方式包含
组_admin.php
,那么
If(!$\u SESSION['admin'])
条件将永远无法解决
true
?还是我遗漏了什么?道歉;我添加了session_start();给我的样本谢谢你;我知道函数中的return,但我没有想到可以在include中使用它。成功了!