Home > Backend Development > PHP Tutorial > 怎样判断一个文件是否已经被包含了

怎样判断一个文件是否已经被包含了

WBOY
Release: 2016-06-23 14:08:49
Original
1507 people have browsed it


我想这样
if(a.php没有被包含){
         include("a.php");
}


回复讨论(解决方案)

比如,有下面一段代码:要分别从config里得到变量值,include写在函数里,第一个函数被调用后,可以正常返回值,但第二个函数,再用include_once就没用了,会报未定义变量 getfile_patn的错误。我不想把include写在最外面,在每个函数里要用变量时用globe来声明,我的想法是,在每个要取出config文件里的变量的函数里,取出想要的变量,函数完结时,就释放资源config文件,这样方便管理代码,每次想用时,直接include就行了。
$pat=aa();
echo $pat,PHP_EOL;
$post=bb();
echo '11',$post,PHP_EOL;

function aa()
{
        include_once(dirname(__FILE__).'/config.php');
        $patten = $getfile_patn["search"]['patten'];//$getfile_patn是config.php里的变量
        return $patten ;

}

function bb()
{
  include_once(dirname(__FILE__).'/config.php');
    postfix = $getfile_patn["search"]['postfix'];
     turn $postfix ;



}

每个被包含的文件里定义个常量,然后判断是否定义常量,据此来判断是否已包含文件。

写个包含类,包含了就存在类属性中,所有操作就可以通过这个类去搞定

include_once("a.php");
已包含就不包含

有人说这个函数效率低,因为他需要检查是否已经包含过了
但是,用 php 写的检查程序能比 c 程序的速度快吗

include_once("a.php");
已包含就不包含

有人说这个函数效率低,因为他需要检查是否已经包含过了
但是,用 php 写的检查程序能比 c 程序的速度快吗

就是因为function aa()中用了include_once,导致function bb中再也不能包含文件,进而不能使用文件中的变量了,这就是要解决的问题

函数里就该
include(dirname(__FILE__).'/config.php');

但 config.php 不能有函数或类定义
如果有则需要用条件语句排除重复定义

像你这样加载一个文件,只从里面取出一个定值,是极差的做法
这种环境变量,要么就声明为全局变量,要么就用单例模式的实例

总是加载文件效率太低了

function aa(){        include_once(dirname(__FILE__).'/config.php');        $patten = $getfile_patn["search"]['patten'];//$getfile_patn是config.php里的变量        return $patten ;}
Copy after login


这种函数倒也不多见....如老徐所说,如果你要取变量,并且需要重复使用的,请使用全局变量, 或者memcache 来处理,才是正确的解决方案.

现在都在用require_once了吧,

get_included_files() ? 返回被 include 和 require 文件名的 array

http://www.php.net/manual/zh/function.get-included-files.php

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template