繁体   English   中英

PHP - 从变量到常量的值

[英]PHP - value from variable to constant

我正在学习PHP中的OOP,我希望将值从变量赋值给类常量。 我怎样才能做到这一点?

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

class Dir {

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

function __construct() {

}
}

有没有解决方案,如何从变量中获取值,添加字符串并将其置于常量 - 在OOP中?

从手册页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. 

常量不能有变量。

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

例如,您可以在文档根目录中使用config.php

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

然后使用ROOT代替。

为什么不在__construct()设置它。 从技术上讲,这就是它的用途。

class Dir {

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

我建议你这个解决方案,因为你想使用OOP,所有都必须在课堂内。 因为不能使用const或static var直接使用我会使用静态函数:

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

你可以像使用它一样

Dir::getRoot();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM