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

时间:2013-11-06 19:23:59

标签: php

查看以下结构:

groups.php

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

... html ...

?>

groups_admin.php

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

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

没有包装所有groups_admin.php是一个很大的if语句并将其反转;无论如何要告诉PHP在该文件内部停止加载特定的PHP文件?

2 个答案:

答案 0 :(得分:1)

只需在包含中返回,例如:

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

很多人不知道你可以从包含的文件中返回一个值。

只是为了完成这个答案。你还有其他一些不太优雅(不推荐)的选择。

  • 您抛出异常并将其捕获到include
  • 之外
  • 将其包裹在if块中

答案 1 :(得分:0)

虽然这与return解决方案相比并不理想,但我无法帮助它。

猜猜: php支持goto

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

我刚刚发现自己,它让我回到了我的GWBASIC岁月...... (叹息!)