gpt4 book ai didi

PHP 特征 - 定义通用常量

转载 作者:IT王子 更新时间:2023-10-28 23:56:11 27 4
gpt4 key购买 nike

定义可由命名空间中的多个类使用的常量的最佳方法是什么?我试图避免太多的继承,所以扩展基类不是一个理想的解决方案,我正在努力寻找一个使用特征的好的解决方案。这在 PHP 5.4 中是可行的还是应该采用不同的方法?

我有以下情况:

trait Base
{
// Generic functions
}

class A
{
use Base;
}

class B
{
use Base;
}

问题是无法在 PHP 特征中定义常量。理想情况下,我想要如下内容:

trait Base
{
const SOME_CONST = 'someconst';
const SOME_OTHER_CONST = 'someotherconst';

// Generic functions
}

然后这些可以通过应用特征的类访问:

echo A::SOME_CONST;
echo B::SOME_OTHER_CONST;

但由于特征的限制,这是不可能的。有什么想法吗?

最佳答案

我最终使用了 user sectus's suggestion接口(interface),因为它感觉是处理这个问题最少的方式。使用接口(interface)来存储常量而不是 API 契约有一种不好的味道,所以这个问题可能更多是关于 OO 设计而不是 trait 实现。

interface Definition
{
const SOME_CONST = 'someconst';
const SOME_OTHER_CONST = 'someotherconst';
}

trait Base
{
// Generic functions
}

class A implements Definition
{
use Base;
}

class B implements Definition
{
use Base;
}

这允许:

A::SOME_CONST;
B::SOME_CONST;

关于PHP 特征 - 定义通用常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24357985/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com