php - 如果不是从包含运行,则运行代码

标签 php

<分区>

page1.php:

include 'page2.php';
echo $info;

page2.php:

$info = "some info";
if(!included){
  echo 'Why are you on this page?';
}

if(!included){ 的目标是确定 page2.php 是否通过 page1 中的 include 加载。 php,或者如果用户直接请求页面。文档中没有返回此类值的函数。如何创建这样的函数?

最佳答案

你基本上有两个选择:

a) 检查 debug_backtrace 是否包括在内

$bt = end(debug_backtrace()); // supposing that you don't include in functions / from other included files etc...
if (!empty($bt) && in_array($bt["function"], array("include", "include_once", "require", "require_once"))) {
    // you're being included!
}

b) 在 page1.php 中定义一些常量、变量等,并在 page2.php 中检查是否存在(definedisset)

关于php - 如果不是从包含运行,则运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16088300/

相关文章:

php - php 和 codeigniter 中 switch 和 case 的使用

php - 使用PHP在mysql中插入数据时返回最后一个id

php - 为什么 PHP 4.4.9 抛出 'Parse error: syntax error, unexpected T_STATIC' ?

php - Laravel 5.2 中 Select 语句中的子查询

php - 在 MySQL 查询中搜索第一个图像标签

php - 数据库复制 : intelligent database selection within PHP?

php - 谁能告诉我学习网络服务的好资源?

javascript - 如何根据用户按下的按钮从数据库中删除购物车行

php - 使用组合框将值获取到文本字段

php - 将 Unix 时间转换为日期和时间,无需使用任何库或预定义的帮助程序