我在 pageA.php 中,代码如下
if (DOWNLOAD_ENABLED == 'true') include 'pageB.php';
是否有可能在 pageB.php 中知道 pageA.php 包含它?我需要根据包含它的页面在 pageB.php 中执行某些操作。
最简单的方法是将它保存在一个 var 中。
$my_page = 'pageA.php';
if (DOWNLOAD_ENABLED == 'true') include 'pageB.php';
可以正常访问$my_page
。pageB.php
像这样的东西会起作用:
pageA.php
define('AUTHORISED_TO_INCLUDE', 1);
if (DOWNLOAD_ENABLED == 'true') include 'pageB.php';
pageB.php
if(!defined('AUTHORISED_TO_INCLUDE')) // Do something, e.g. die();
在 pageA 中声明的任何变量都可以在 pageB 中访问,这不是很好的做法,您应该使用面向对象或至少为此使用函数,但如果您绝对必须这样做,您可以执行以下操作:
// on pageA.php
if (DOWNLOAD_ENABLED == 'true') {
$includedFrom = "pageA";
include 'pageB.php';
}
// on pageB.php
switch($includedFrom) {
case "pageA":
// do stuff
break;
}