> 백엔드 개발 > PHP 튜토리얼 > 分享一个自各儿写的PHP CONFIG类

分享一个自各儿写的PHP CONFIG类

WBOY
풀어 주다: 2016-06-13 13:06:52
원래의
900명이 탐색했습니다.

分享一个自己写的PHP CONFIG类
这个类最大的特点就是可以加载无线深度的配置项,而在配置的使用过程中也可以对某些配置项进行修改,深度不超过5级。

/**
 * config.php
 *
 * discription
 *
 * @filename config.php
 * @version  v1.0
 * @update   2011-8-9
 * @author   randy.hong
 * @contact	 homingway@163.com
 * @package  config
 */

define('DS',			DIRECTORY_SEPARATOR);
define('PATH_CONFIG',	'.'.DS.'configs');

//config param key separator
define('CONFIG_SEPARATOR',	'.');

class CONFIG{

	protected static $_configarray 	= array();

	/**
	 * 获取一个配置
	 * @param string $key
	 * @return mixed
	 */
	public static function get($key=''){

		//inlegal param,return false
		if(!$key){
			return false;
		}

		//without separator in param, return the whole config file
		if(strpos($key,CONFIG_SEPARATOR)===false){
			if(!isset(self::$_configarray[$key])){
				$cfg_file = PATH_CONFIG.DS.'config.'.$key.'.php';
				if(file_exists($cfg_file)){
					self::$_configarray[$key] = include_once($cfg_file);
				}
			}
			return self::$_configarray[$key];
		} else {
			$param = explode(CONFIG_SEPARATOR,$key);
			if(!isset(self::$_configarray[$param[0]])){
				$cfg_file = PATH_CONFIG.DS.'config.'.$param[0].'.php';
				if(file_exists($cfg_file)){
					self::$_configarray[$param[0]] = include_once($cfg_file);
				}
			}
			$tmp_config = null;
			for($i=1;$i<count if self:: else return false string mixed true public static function set explode count switch case default:break>
</count>
로그인 후 복사


配置文件:configs/config.test.php
return array(
	'test1' => array(
		'test2' => array(
			'test3' => array(
				'test4' => array(
					'test5' => 5555,
				),
			),
		),
	)
);
로그인 후 복사


调用文件
include_once('config.php');
$config = CONFIG::get('test.test1');
print_r($config);
CONFIG::set('test.test1',222);
$config = CONFIG::get('test.test1');
print_r($config);
로그인 후 복사

1 楼 lifei6671 2011-08-13  
这个好像和discuz的配置文件有异曲同工的效果!
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿