PHP的静态变量管理

PHP的静态变量需要集中管理,比如一些系统标识或者类型标识。我的一个想法是用类型类来管理。

一个类型基类:

<?php


/**
 * @author jixiaolong
 * @todo 类型基类
 *
 */
class TypeBase  {


	function __construct() {

	}

	/**
	 *
	 */
	function __destruct() {

	}
	
	//modify by jixiaolong 2013/4/5
	public static function getTypeNameById($type_id){
		$name = '';
		$list = self::toArray();
		if (array_key_exists($type_id, $list)){
			$name = $list[$type_id];
		}
		else{
			$name = '未定义';
		}
		return $name;
	}
	
	//add by jixiaolong 2013/4/5
	public static function toArray(){
		$data = array();
		return $data;
	}
}


?>

扩展出的一个参数类型类:

<?php


/**
 * @author jixiaolong
 * @todo 参数类型
 *
 */
require_once 'TypeBase.cls.php';
class TypeParam extends TypeBase {
    const TYPE_INT = 1;
    const TYPE_NULL = 2;
    const TYPE_EXIST = 3;
    const TYPE_ARRAY = 4;
    const TYPE_STRING = 5;
    const TYPE_DOUBLE = 6;
    const TYPE_POSITIVE_INTEGER = 7;
    const TYPE_BOOL = 8;
    


    /**
     *
     */
    public  function __construct() {
        parent::__construct();

    }

    /**
     *
     */
    function __destruct() {


    }
    
	public static function toArray(){
		$data = array(
		    self::TYPE_INT => 'int',
		    self::TYPE_NULL => 'null',
		    self::TYPE_EXIST => 'exist',
		    self::TYPE_ARRAY => 'array',
		    self::TYPE_STRING => 'string',
		    self::TYPE_DOUBLE => 'double',
		    self::TYPE_POSITIVE_INTEGER => 'positive integet',
		    self::TYPE_BOOL => 'bool',
		);
		return $data;
	}
	
	/**
	 * @author jixiaolong 2013-5-13上午09:22:35
	 * @todo 判断是否符合某种类型
	 * @param var $value 变量
	 * @param enum $type 类型
	 * @throws Exception
	 * @return boolean 是/否
	 */
    public static function isType(&$value,$type){
        switch ($type){
            case self::TYPE_ARRAY:
                if (is_array($value)){
                    return true;
                }
                break;
            case self::TYPE_DOUBLE:
                if (is_double($value)){
                    return true;
                }
                break;
            case self::TYPE_EXIST:
                if (isset($value)){
                    return true;
                }
                break;
            case self::TYPE_ARRAY:
                if (is_array($value)){
                    return true;
                }
                break;
            case self::TYPE_STRING:
                if (is_string($value)){
                    return true;
                }
                break;
            case self::TYPE_DOUBLE:
                if (is_double($value)){
                    return true;
                }
                break;
            case self::TYPE_POSITIVE_INTEGER:
                if (is_int($value) && $value > 0){
                    return true;
                }
                break;
            case self::TYPE_BOOL:
                if (is_bool($value)){
                    return true;
                }
                break;
            default:
                throw new Exception('没有定义的数据类型', 0);
        }
        return false;
    }
    
	public static function getTypeNameById($type_id){
		$name = '';
		$list = self::toArray();
		if (array_key_exists($type_id, $list)){
			$name = $list[$type_id];
		}
		else{
			$name = '未定义';
		}
		return $name;
	}
}


?>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值