类文件中是否可以使用全局 PHP 常量?

Jas*_*vis 4 php constants

类文件中是否可以使用全局 PHP 常量?

define('SITE_PATH', 'C:/webserver/htdocs/somefolder/');
Run Code Online (Sandbox Code Playgroud)

然后在我的类文件中我试试这个

public $debug_file = SITE_PATH. 'debug/debug.sql';
Run Code Online (Sandbox Code Playgroud)

虽然这似乎不起作用,

解析错误:解析错误, ','' or在第 21 行的 C:\webserver\htdocs\somefolder\includes\classes\Database.class.php 中需要 ';''

Gor*_*don 5

我赞同其他人所说的。由于 $debugFile 似乎是一个可选的依赖项,我建议在创建类时初始化一个合理的默认值,然后允许在需要时通过 setter 注入来更改它,例如

define('SITE_PATH', 'C:/webserver/htdocs/somefolder/');

class Klass
{
    protected $_debugFile;
    public function __construct()
    {
        $this->_debugFile = SITE_PATH. 'debug/debug.sql' // default
    }
    public function setDebugFile($path)
    {
        $this->_debugFile = $path // custom
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,注入 SITE_PATH 而不是对其进行硬编码,将是更好的做法。