使用 get_included_files() 函数判断文件是否被引入

新建3个文件,分别为 a.php , b.php , c.php
内容如下


a.php

<?php
echo 'a.php:<br>'.__FILE__.'<br>';
include "b.php";

b.php

<?php
echo '<br><br>';
echo 'b.php:<br>'.__FILE__.'<br>';
print_r(get_included_files());
include "c.php";

c.php

<?php
echo '<br><br>';
echo 'c.php:<br>'.__FILE__.'<br>';
print_r(get_included_files());

输出内容如下

a.php:
/data/wwwroot/test/a.php


b.php:
/data/wwwroot/test/b.php
Array ( [0] => /data/wwwroot/test/a.php [1] => /data/wwwroot/test/b.php ) 

c.php:
/data/wwwroot/test/c.php
Array ( [0] => /data/wwwroot/test/a.php [1] => /data/wwwroot/test/b.php [2] => /data/wwwroot/test/c.php )

可以看出,此函数的作用是按顺序输出 当前访问的文件、被引入的文件(按引入顺序排列),数组的最后一项的值与魔术常量 __FILE__ 的值完全相同,只需判断数组的第0个元素是否等于魔术常量 __FILE__,相等即说明当前文件被直接访问而非被引入。

标签: none

添加新评论