问题标签 [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.

0 投票
7 回答
12078 浏览

php - php 类常量可见性

我们可以设置类常量的可见性吗?
对于这个例子:

我们可以指定

或者

或者

0 投票
0 回答
1965 浏览

php - PHP:在运行时向类添加常量

我有以下代码:

SignalSlotObject在运行时从类和它实现的所有接口中获取所有以“SIGNAL_”开头的常量。这很好并且有效,但我的问题是:

让第三个选项也能正常工作会很好,因为使用的程序员SomeClass不知道这个信号是否定义在SomeClass它的接口中或其中一个接口中。

我的意图是在运行时将接口中定义的常量动态添加到类中,但我没有提示如何在运行时将常量添加到类中。我也不能使用__setand__get因为它们不适用于静态范围(它们适用于$c->SIGNAL_FOO但不适用于SomeClass::SIGNAL_FOO)。

0 投票
8 回答
34336 浏览

php - 获取PHP中动态选择的类常量的值

我希望能够做这样的事情:

这行不通。有没有一种直接的方法来做等效的事情?请注意,我坚持上课;它在我无法重写的库中。我正在编写在命令行上接受参数的代码,我真的希望它采用符号名称而不是 id 编号。

0 投票
2 回答
176 浏览

php - PHP5 中的常量

我有一个类,我想在其中定义其他类使用的一些常量。const 关键字对我来说还不够,因为我想例如使用像 2.0 * pi() 这样的数学表达式作为常量。怎么做?

0 投票
4 回答
2798 浏览

php - 类 [DateTime('@-1')] 的 PHP 对象实例在另一个类中作为常量

我正在定义一个具有 DateTime 对象作为属性之一的类。我想将其默认值设置为“-1”的 unix 时间戳。我还希望这个默认值保持不变,以便所有对象都知道它的值。

但我不想声明类似的东西,const PROPERTY_DEFAULT_DATE = '-1';因为该属性将是一个 DateTime 对象和使用此默认值的操作/函数,如果 PROPERTY_DEFAULT_DATE 不是正确的 DateTime 对象,该属性将难以处理

那么,我可以在另一个类中将一个类的特定对象实例作为常量吗?


PHP手册说

该值必须是常量表达式,而不是(例如)变量、属性、数学运算的结果或函数调用。

没有提到这一点,但我认为它无法完成(尝试了很多变体,总是出现语法错误)
如果不可能,我有什么替代方案?


编辑:我想我需要找到为我的属性定义“默认值”的问题的解决方案,在这种情况下,它恰好是一个 DateTime 对象。将在 中设置
什么默认值?(不,请不要为 NULL,我希望必须存在更优雅的解决方案)另外请记住,它可能用于类/子类中的操作/函数 __construct()
更新:我按照这里的建议private $_DEFAULT_DATE为它创建了一个属性和一个吸气剂。这个属性没有设置器,所以我可以保证它不会被改变。(当然,我注意不要在类实现中更改它)

0 投票
1 回答
1240 浏览

ruby - Ruby 类方法或常量,最佳实践

我的一个 ruby​​ 类从一个相当大的本地 XML 文件中提取数据,该文件只会随着新的部署而改变。

在这种情况下,将文档保持为常量是最佳做法,例如:

或通过类方法访问文档,例如:

我认为类方法可能是要走的路,因为它会更容易在测试中模拟,但是什么被认为是保持这样的内存文件的最佳实践呢?

0 投票
3 回答
118 浏览

php - PHP 静态类的名称很长 - 我可以使用更短的指针吗?

我有一个名称很长的静态类,例如:

在我的其他课程中,我想引用这些常量。问题是它们有很多,我将它们用作关联键,所以我的代码变得非常冗长:

有没有办法可以使用某种指针?就像是:

它似乎对我不起作用。我在 PHP 5.2.6 上。

0 投票
2 回答
4684 浏览

php - 在类常量 PHP 中组合位标志

可能重复:
未解析基本语法的解决方法

我试图让开发人员指定任何位组合,以指定他们希望在响应中包含哪些数据。

这在某种意义上是有效的,当我像这样实例化类时:

将执行此逻辑:

所有这一切都很好,除了我想定义“快捷方式位”之类的东西 BUILD_DATE_ALL 这将是所有与日期相关的位的总和的值,因此他们只需要指定快捷方式常量而不是单独指定每个位。

我试过了,但它抛出了一个错误:

我还尝试了不同的方法/语法:

和我尝试的另一种方法:

我得到的错误是:

ErrorException:语法错误,意外'('

我得到的其他方法的错误是:

ErrorException:语法错误,意外 '|',期待 ',' 或 ';'

看起来 PHP 不想在常量定义中计算太多,只想要一个值而不是派生值。我假设这是基于它不想要括号也不想要 | 的事实。做进一步的计算。此外,我尝试使用 '-' 而不是 | 只是为了测试我的理论..是的,它抱怨 + 也出乎意料。

我该如何解决这个问题,以便我可以定义一个“快捷方式位”,它是其他已定义常量范围的总和。

0 投票
3 回答
929 浏览

c# - C# 构造函数和常量之谜

为什么静态构造函数在引用另一个类中的 const 字符串时会抛出异常。

抛出的异常是对象引用未设置为对象的实例。堆栈跟踪指向尝试读取常量值的行。有什么想法吗?

0 投票
1 回答
535 浏览

php - PHP 类常量数组转换

为了在 PHP 中模拟枚举,我喜欢使用类常量。

例如

我有一个案例,我想将此类转换为数组以填充选择列表。然而,由于类常量的行为静态转换不起作用,例如方法(array)(new FRUIT());也不起作用get_object_vars()

解决这个问题的最佳方法是什么?我是否需要创建一个内部函数来迭代常量并返回一个数组?