범주 통합 정의

5810 단어 PHP
PHP 회복 중

DefineClass
<?php

// 使い方
print '<pre>';


// 配列形式でkeyとvalueにそれぞれ、
// 定義する名前とテキストを入れる
MyDefine::define(array(
        array('__test1' => 'test1'),
        array('__test2' => 'test2'),
        array('__test3' => 'test3'),
    ));



$arrMyDefine = MyDefine::check();

echo 'Check ↓'.PHP_EOL;
var_dump($arrMyDefine);

print '</pre>';





Class MyDefine {
    // 配列形式でkeyとvalueにそれぞれ、
    // 定義する名前とテキストを入れる
    static function define($arrDefine)
    {
        // 配列から宣言用の 連想配列を取得する
        foreach($arrDefine as $arr) {

            // 連想配列から宣言名と宣言テキストに分けて宣言済み確認しつつ宣言してく。
            foreach($arr as $key => $val) {

                // defineされていなければ定義する
                if ( !defined($key) ) {
                    define($key, $val);
                    define('__MY'.$key, $val);
                }
                else {
                    print("{$key} => {$val}はすてに宣言されています。");
                }
            }
        }
    }

    // 宣言済みの定数を取得する
    static function check()
    {
        $arrConst    = get_defined_constants() ;
        $arrMyDefine = array();
        foreach($arrConst as $k => $v) {

            if (substr($k, 0, 4) === '__MY') {
                $arrMyDefine[substr($k, 4)] = $v;
            }
        }
        return $arrMyDefine;
    }
}




좋은 웹페이지 즐겨찾기