在函数外声明的变量解析错误

时间:2013-04-28 17:04:35

标签: php

我正在编写一个简单的类,它将为我的站点创建一个简单的日志文件。出于某种原因,当我在函数外部有变量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";
    }

1 个答案:

答案 0 :(得分:2)

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

  

班级成员[...]是   使用关键字public,protected或private之一定义,   然后是正常的变量声明。这个声明可能会   包括初始化,但初始化必须是常量   value - 也就是说,它必须能够在编译时进行评估   不得依赖于运行时信息才能进行评估

来自Properties

因此这无效:

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