PHP中配置文件的定义与使用

发布时间:2019-12-23编辑:脚本学堂
分享下在php编程中配置文件的定义与使用方法,php操作配置文件的实例详解,有需要的朋友参考下。

本节内容:
php编程中配置文件定义与使用。
 
定义方法1:
 

复制代码 代码示例:
—– conf.php ——
<?php
$conf = "hello world";
?>

引用配置文件:
 

复制代码 代码示例:
—– test.php ——
<?php
test();
function test() {
    include("conf.php");
    echo $conf;
}
?>
 

分析:
如果代码就这么简单,我们发现程序工作的很好,但是:
1,如果$conf文件很大,每次都include势必浪费很多时间
2,如果把include修改为include_once,则情况就会变得怪异了;
如果外部不小心include的了一次conf.php ,则test中不再执行conf.php,则test() 不能正常工作;
如果保证外面没有include("conf.php"); 则test() 第一次可以工作正常,第二次就无法正常工作,因为第二次执行test()函数并没有执行conf.php,也就没有$conf变量

3,conf.php 中 $conf 变量的作用域是不固定的,依赖于conf.php 的执行环境,所以简单地把 $conf看做是global的,更是容易犯错误的

结论:这样写配置文件很容易犯错误,所以不要这样定义配置文件。

定义方法2:
 

复制代码 代码示例:

- conf.php —–

<?php
$GLOBALS["conf"] = "hello phpor";
?>
 

引用配置文件:
 

复制代码 代码示例:

- test.php -

<?php
test();
function test() {
    include_once("conf.php");
    echo $GLOBALS["conf"];
}
?>
 

分析:
1,配置文件包含进来之后,将一直占用内存空间,所以配置文件不宜太大,不过一般都不太太大
2,为了提高效率,这里最好使用include_once, 而不是include
3,这种写法不管怎么调用都不会有问题
4,注意: 如果配置文件确实很大,解析该配置文件需要10毫秒, 而且不是每次请求都会用到大部分配置,或许整个请求之间只用到了其中1/10的配置,但是还是不得不耗费10ms来解析整个配置文件; 如果确实这这种情况,不妨考虑第三种配置方法

定义方法3:
 

复制代码 代码示例:
- conf.php ——
<?php
class conf {
    private static $cache = array();
    public static function get($alias) {
        if (isset(self::$cache[$alias])) return self::$cache[$alias];
        $method = "get_$alias";
        if (!method_exists(self, $method)) return array();
        return self::$method();
    }
    private static function get_conf1() {
        return self::$cache["conf1"] = "hello phpor";
    }
    private static function get_conf2() {
        return self::$cache["conf2"] = "maybe this is a big array";
    }
}
?>

引用配置文件:
 

复制代码 代码示例:
- test.php -
<?php
include_once("conf.php");  // 对于应用了PHP加速器的程序来讲,因为conf.php中没有包含就执行的语句,所以使用include或include_once也没什么区别
test();
function test() {
   var_dump(conf::get("conf1"));
}
?>
 

分析:
1,这种办法似乎规避了前两种写法的所有缺点。
2,还可以在配置文件中添加一些逻辑,避免代码的重复。