PHP:如何创建一个;“树”;常数

PHP:如何创建一个;“树”;常数,php,abstract-class,constants,Php,Abstract Class,Constants,我想知道在PHP中是否可以创建常量的“树”(而不实例化类的树)。。。让我解释一下我想做什么(代码不正确): 因此,我在代码中使用以下内容: dbConstants::logType::Project 在php 7中: define('animals')[ “狗”, “猫”, “鸟” ]); 这将定义一个常量数组 在PHP5.6中,可以使用const声明常量数组 这两者都可以包含更多数组以形成结构。您只能使用标量数据(整数、布尔值、浮点值和字符串),在PHP>5.6中,您还可以使用标量表达式、数

我想知道在PHP中是否可以创建常量的“树”(而不实例化类的树)。。。让我解释一下我想做什么(代码不正确):

因此,我在代码中使用以下内容:

dbConstants::logType::Project
在php 7中:

define('animals')[
“狗”,
“猫”,
“鸟”
]);

这将定义一个常量数组

在PHP5.6中,可以使用
const
声明常量数组


这两者都可以包含更多数组以形成结构。

您只能使用标量数据(整数、布尔值、浮点值和字符串),在PHP>5.6中,您还可以使用标量表达式、数组和资源作为常量的值,如前所述。使用阵列结构,您可以执行以下操作:

抽象类日志类型
{
const项目=1;
const USER=2;
}
抽象类dbConstants
{
常量日志类型=[
日志类型::项目,
日志类型::用户
];
}
echo dbConstants::logType[logType::PROJECT];
另一种方法是使用
trait
public static
成员,如果您不希望类继承和重用代码:

trait日志类型
{
公共静态$PROJECT=1;
公共静态$USER=2;
}
抽象类dbConstants
{
使用日志类型;
}
echo dbConstants::$PROJECT;
不使用阵列的另一种方法:

class logType
{
    const PROJECT = 1;
    const USER = 2;
}

abstract class dbConstants
{
    public static $logType;

    public function __construct()
    {
        $this->logType = new logType();
    }
}

echo dbConstants::$logType::PROJECT;
class logType
{
    const PROJECT = 1;
    const USER = 2;
}

abstract class dbConstants
{
    public static $logType;

    public function __construct()
    {
        $this->logType = new logType();
    }
}

echo dbConstants::$logType::PROJECT;