00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00025 class KjwUtil {
00038 function &getSingleton($className) {
00039 static $instances = array();
00040 assert(is_string($className));
00041 if (!array_key_exists($className, $instances)) {
00042
00043 if (file_exists(dirname(__FILE__) . "/$className.php"))
00044 require_once(dirname(__FILE__) . "/$className.php");
00045
00046
00047
00048
00049 $a = &func_get_args();
00050 switch (func_num_args() - 1) {
00051 case 0: $instances[$className] = new $className(); break;
00052 case 1: $instances[$className] = new $className(&$a[1]); break;
00053 case 2: $instances[$className] = new $className(&$a[1],&$a[2]); break;
00054 case 3: $instances[$className] = new $className(&$a[1],&$a[2],&$a[3]); break;
00055 case 4: $instances[$className] = new $className(&$a[1],&$a[2],&$a[3],&$a[4]); break;
00056 case 5: $instances[$className] = new $className(&$a[1],&$a[2],&$a[3],&$a[4],&$a[5]); break;
00057 case 6: $instances[$className] = new $className(&$a[1],&$a[2],&$a[3],&$a[4],&$a[5],&$a[6]); break;
00058 default: trigger_error('KjwSingleton: too many arguments for getInstance.', E_USER_ERROR);
00059 }
00060 }
00061 return $instances[$className];
00062 }
00063 }
00064
00065 ?>