2011-03-16 61 views
0

我創建了一個單例類,但我想創建實例的靜態函數返回一個布爾值而不是類對象。這不是我現在設置的方式,這使我認爲我只能返回一個實例。換句話說,該函數不返回true或false;它什麼都不返回。PHP - 單例返回布爾值

class CacheMachine { 
    private static $_cache; 

    private function __construct() {} 

    public static function CreateNew(&$cacheFile) { 
     if(!isset(self::$_cache)) { 
      $object = __CLASS__; 
      self::$_cache = new $object(); 
     } 
     if(file_exists($cacheFile)) { 
      readfile($cacheFile); 
      return true; 
     } else { 
      return false; 
     } 
    } 
} 
+1

你說的不工作呢? – BoltClock 2011-03-16 19:58:15

+0

該函數正在實例化_cache對象(self),但它不返回true或false。它只是沒有返回。 – bflemi3 2011-03-17 13:15:33

+1

你確定readFile()和file_exists()按預期工作嗎?也許他們破壞,你的代碼永遠不會到達返回語句。 – 2011-03-17 14:50:06

回答

0

變化#1:

private static $_cache = NULL; 

更改#2:

if(self::$_cache === NULL) { 
      $object = __CLASS__; 
      self::$_cache = new $object(); 
     } 
+0

它與OP目前有什麼不同? – BoltClock 2011-03-16 20:07:54

+0

我想你是誤會。我試圖返回true或false,該函數的實例化部分工作正常。 – bflemi3 2011-03-16 20:45:59