查看以下结构:
组.php
<?php
session_start();
include('header.php');
if($_SESSION['admin'])
{ include('groups_admin.php'); }
... html ...
?>
groups_admin.php
<?php
if(!$_SESSION['admin'])
{ die(); }
... html ...
?>
在groups_admin.php内部 - 执行 die(); 会导致页面的其余部分(包括组.php)停止加载。
不包装所有groups_admin.php是一个很大的 if 语句并反转它;有没有告诉 PHP 停止加载该文件中的特定 PHP 文件?
只需在包含中返回,例如:
<?php
if(empty($_SESSION['admin']))
{ return false; }
... html ...
?>
很多人不知道您可以从包含的文件中返回值。
只是为了完成这个答案。您还有其他几个不太优雅(不推荐)的选项。
- 您抛出异常并在包含之外捕获它
- 将其包装在 if 块中
尽管与return
解决方案相比,这是次优的,但我就是忍不住。
你猜怎么着:php 支持 goto!
<?php
if(!$_SESSION['admin'])
{ goto endoffile; }
... html ...
endoffile:
?>
我刚刚发现自己,它让我回到了过去,回到了我的GWBASIC岁月......(叹气!