1
我正在写一个PHP类,并且在定义范围时遇到相当大的麻烦。我已经阅读了很多关于这个概念的文章,但我似乎无法确定我的代码有什么问题。PHP范围问题或静态问题
class Logger {
private static $logger ;
private $res ;
private $file ;
private $mode ;
public static function getInstance() {
if (!self::$logger) $instance = new self() ;
self::$logger = $instance ;
return self::$logger ;
}
private function initializeLogger() {
$this->file = '/tmp/mydirectory/mylog.log' ;
$this->res = fopen($this->file, 'a') or exit("Can't open ".$this->file);
}
public function write($message , $modeLevel) {
if (!is_resource($this->res)) {
$this->initializeLogger() ;
}
fwrite($this->res, "$message" . PHP_EOL);
}
public function close()
{
fclose(self::$logger);
}
}
$log = Logger::getInstance();
$log.write("WOW, it's working!!" , 1);
此代码,当运行生产: 呼叫未定义的函数写()在/var/www/myfile.php
上如何创建可以在非被引用的对象的任何建议静态的方式,但
是的,它不是Javascript! +1投票 – SaidbakR
呃...谢谢。我讨厌盯着代码这么久,而没有看到它。 – NEW2WEB