0

我正在编写一个简单的类,它将为我的站点创建一个简单的日志文件。出于某种原因,当我在函数之外有变量 file_path 时,我得到了这个错误......

Parse error: parse error, expecting `','' or `';''

有了这个代码..

class Logger {

public $file_path = SITE_ROOT.DS.'logs'.DS.'log.txt';

public static function log_action ($message="") {
    if (file_exists($file_path)) {
        file_put_contents($file_path, $message, FILE_APPEND);
    } else {
        return "could not write to log file";
    }
}

但是,当变量在函数内时,不会出现此错误。为什么是这样?

public static function log_action ($action, $message="") {
    $file_path = SITE_ROOT.DS.'logs'.DS.'log.txt';
    if (file_exists($file_path)) {
        file_put_contents($file_path, $message, FILE_APPEND);
    } else {
        return "could not write to log file";
    }
4

1 回答 1

2

在类内部,您可以在方法外部运行的 PHP 代码是有限的:

类成员 [...] 是通过使用关键字 public、protected 或 private 之一定义的,然后是一个普通的变量声明。这个声明可能包括一个初始化,但是这个初始化必须是一个常数值——也就是说,它必须能够在编译时被评估,并且不能依赖于运行时信息才能被评估

属性

因此这是无效的:

public $file_path = SITE_ROOT.DS.'logs'.DS.'log.txt';
于 2013-04-28T17:08:51.330 回答