问题标签 [class-constants]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - php 类常量可见性
我们可以设置类常量的可见性吗?
对于这个例子:
我们可以指定
或者
或者
php - PHP:在运行时向类添加常量
我有以下代码:
SignalSlotObject
在运行时从类和它实现的所有接口中获取所有以“SIGNAL_”开头的常量。这很好并且有效,但我的问题是:
让第三个选项也能正常工作会很好,因为使用的程序员SomeClass
不知道这个信号是否定义在SomeClass
它的接口中或其中一个接口中。
我的意图是在运行时将接口中定义的常量动态添加到类中,但我没有提示如何在运行时将常量添加到类中。我也不能使用__set
and__get
因为它们不适用于静态范围(它们适用于$c->SIGNAL_FOO
但不适用于SomeClass::SIGNAL_FOO
)。
php - 获取PHP中动态选择的类常量的值
我希望能够做这样的事情:
这行不通。有没有一种直接的方法来做等效的事情?请注意,我坚持上课;它在我无法重写的库中。我正在编写在命令行上接受参数的代码,我真的希望它采用符号名称而不是 id 编号。
php - PHP5 中的常量
我有一个类,我想在其中定义其他类使用的一些常量。const 关键字对我来说还不够,因为我想例如使用像 2.0 * pi() 这样的数学表达式作为常量。怎么做?
php - 类 [DateTime('@-1')] 的 PHP 对象实例在另一个类中作为常量
我正在定义一个具有 DateTime 对象作为属性之一的类。我想将其默认值设置为“-1”的 unix 时间戳。我还希望这个默认值保持不变,以便所有对象都知道它的值。
但我不想声明类似的东西,const PROPERTY_DEFAULT_DATE = '-1';
因为该属性将是一个 DateTime 对象和使用此默认值的操作/函数,如果 PROPERTY_DEFAULT_DATE 不是正确的 DateTime 对象,该属性将难以处理
那么,我可以在另一个类中将一个类的特定对象实例作为常量吗?
PHP手册说
该值必须是常量表达式,而不是(例如)变量、属性、数学运算的结果或函数调用。
没有提到这一点,但我认为它无法完成(尝试了很多变体,总是出现语法错误)
如果不可能,我有什么替代方案?
编辑:我想我需要找到为我的属性定义“默认值”的问题的解决方案,在这种情况下,它恰好是一个 DateTime 对象。您将在 中设置
什么默认值?(不,请不要为 NULL,我希望必须存在更优雅的解决方案)另外请记住,它可能用于类/子类中的操作/函数
__construct()
更新:我按照这里的建议
private $_DEFAULT_DATE
为它创建了一个属性和一个吸气剂。这个属性没有设置器,所以我可以保证它不会被改变。(当然,我注意不要在类实现中更改它)
ruby - Ruby 类方法或常量,最佳实践
我的一个 ruby 类从一个相当大的本地 XML 文件中提取数据,该文件只会随着新的部署而改变。
在这种情况下,将文档保持为常量是最佳做法,例如:
或通过类方法访问文档,例如:
我认为类方法可能是要走的路,因为它会更容易在测试中模拟,但是什么被认为是保持这样的内存文件的最佳实践呢?
php - PHP 静态类的名称很长 - 我可以使用更短的指针吗?
我有一个名称很长的静态类,例如:
在我的其他课程中,我想引用这些常量。问题是它们有很多,我将它们用作关联键,所以我的代码变得非常冗长:
有没有办法可以使用某种指针?就像是:
它似乎对我不起作用。我在 PHP 5.2.6 上。
php - 在类常量 PHP 中组合位标志
可能重复:
未解析基本语法的解决方法
我试图让开发人员指定任何位组合,以指定他们希望在响应中包含哪些数据。
这在某种意义上是有效的,当我像这样实例化类时:
将执行此逻辑:
所有这一切都很好,除了我想定义“快捷方式位”之类的东西 BUILD_DATE_ALL 这将是所有与日期相关的位的总和的值,因此他们只需要指定快捷方式常量而不是单独指定每个位。
我试过了,但它抛出了一个错误:
我还尝试了不同的方法/语法:
和我尝试的另一种方法:
我得到的错误是:
ErrorException:语法错误,意外'('
我得到的其他方法的错误是:
ErrorException:语法错误,意外 '|',期待 ',' 或 ';'
看起来 PHP 不想在常量定义中计算太多,只想要一个值而不是派生值。我假设这是基于它不想要括号也不想要 | 的事实。做进一步的计算。此外,我尝试使用 '-' 而不是 | 只是为了测试我的理论..是的,它抱怨 + 也出乎意料。
我该如何解决这个问题,以便我可以定义一个“快捷方式位”,它是其他已定义常量范围的总和。
c# - C# 构造函数和常量之谜
为什么静态构造函数在引用另一个类中的 const 字符串时会抛出异常。
抛出的异常是对象引用未设置为对象的实例。堆栈跟踪指向尝试读取常量值的行。有什么想法吗?
php - PHP 类常量数组转换
为了在 PHP 中模拟枚举,我喜欢使用类常量。
例如
我有一个案例,我想将此类转换为数组以填充选择列表。然而,由于类常量的行为静态转换不起作用,例如方法(array)(new FRUIT());
也不起作用get_object_vars()
。
解决这个问题的最佳方法是什么?我是否需要创建一个内部函数来迭代常量并返回一个数组?