PHP - 值从变量不变(PHP - value from variable to constan

2019-09-19 05:47发布

我正在学习在PHP OOP,我想把值从变量类常量。 我怎样才能做到这一点?

这是我的代码(不工作!):

class Dir {

const ROOT = $_SERVER['DOCUMENT_ROOT']."project/";

function __construct() {

}
}

有没有什么解决方案,如何从变量取值,添加字符串,并把它定 - 在OOP?

Answer 1:

从手册页http://www.php.net/manual/en/language.oop5.constants.php你可以发现:

The value must be a constant expression, not (for example) a variable, a property, a result of a mathematical operation, or a function call. 


Answer 2:

常量不能有变量。

我建议你不要依赖于$_SERVER['DOCUMENT_ROOT']相反,你可以定义ROOT你的自我。

例如,你有一个config.php在文档根目录,你可以这样做

define('ROOT', __DIR__.'/'); // php version >= 5.3
define('ROOT', dirname(__FILE__).'/'); // php version < 5.3

然后用ROOT来代替。



Answer 3:

为什么不把它在你的__construct() 从技术上讲,这就是它是有什么。

class Dir {

    public function __construct() {
        self::ROOT = $_SERVER['DOCUMENT_ROOT']."project/";
    }
}


Answer 4:

因为你想使用OOP,我建议你这个解决方案,都必须是类里面。 所以,因为一个常量或静态无功直接使用是不可能的,我会用一个静态函数:

class Dir
{
    public static function getRoot()
    {
        return $_SERVER['DOCUMENT_ROOT'] . 'project/';
    }
}

你可以使用它像

Dir::getRoot();


文章来源: PHP - value from variable to constant