0

查看以下结构:

组.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();导致页面的其余部分(包括 groups.php)停止加载。

不包装所有 groups_admin.php 是一个很大的 if 语句并将其反转;有没有办法告诉 PHP 在该文件中停止加载该特定的 PHP 文件?

4

2 回答 2

1

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

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

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

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

  • 你抛出一个异常并在包含之外捕获它
  • 将其包装在 if 块中
于 2013-11-06T19:47:01.930 回答
0

尽管与return解决方案相比,这不是最理想的,但我还是忍不住。

猜猜看:php 支持goto

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

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

于 2013-11-06T20:06:41.743 回答