Changeset 21903
- Timestamp:
- 2012/06/09 20:48:43 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_12-dev/data/class/SC_Query.php
r21867 r21903 39 39 var $order = ''; 40 40 var $force_run = false; 41 static $arrInstance = array(); 41 42 42 43 /** … … 98 99 */ 99 100 function getSingletonInstance($dsn = '', $force_run = false, $new = false) { 100 if (!isset( $GLOBALS['_SC_Query_instance'])101 || is_null($GLOBALS['_SC_Query_instance'])) {102 $GLOBALS['_SC_Query_instance'] =& new SC_Query_Ex($dsn, $force_run, $new);103 }104 $GLOBALS['_SC_Query_instance']->where = '';105 $GLOBALS['_SC_Query_instance']->arrWhereVal = array();106 $GLOBALS['_SC_Query_instance']->order = '';107 $GLOBALS['_SC_Query_instance']->groupby = '';108 $GLOBALS['_SC_Query_instance']->option = '';109 return $GLOBALS['_SC_Query_instance'];101 if (!isset(SC_Query_Ex::$arrInstance[$dsn])) { 102 SC_Query_Ex::$arrInstance[$dsn] =& new SC_Query_Ex($dsn, $force_run, $new); 103 } 104 /* 105 * 歴史的な事情で、このメソッドの呼び出し元は参照で受け取る確率がある。 106 * 退避しているインスタンスをそのまま返すと、退避している SC_Query の 107 * プロパティを直接書き換えることになる。これを回避するため、クローンを返す。 108 * 厳密な意味でのシングルトンではないが、パフォーマンス的に大差は無い。 109 */ 110 return clone SC_Query_Ex::$arrInstance[$dsn]; 110 111 } 111 112
Note: See TracChangeset
for help on using the changeset viewer.