【发布时间】:2011-03-16 19:56:58
【问题描述】:
我创建了一个单例类,但我希望创建实例的静态函数返回一个布尔值而不是类对象。它不像我现在设置的那样工作,这让我觉得我只能返回一个实例。换句话说,该函数不返回真或假;它什么也不返回。
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;
}
}
}
【问题讨论】:
-
不工作是什么意思?
-
该函数正在实例化 _cache 对象(self),但它没有返回 true 或 false。它什么也不返回。
-
您确定 readFile() 和 file_exists() 按预期工作吗?也许它们会中断,您的代码永远不会到达返回语句。
-
是的,我已经验证这两个功能都按预期工作。