问题标签 [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 投票
5 回答
5575 浏览

php - 在 PHP 中使用类常量和覆盖

如果我有一个值可以是真或假的类结构,那么它不会改变,目前实现为变量,最好将它们更改为常量,例如:

后来我有一个对象,它可能是该类层次结构中的任何类型,无论是父级还是它的一个子级,并且某些子级可能(例如“SomeChild”)已将值重载为真。

有什么方法可以在不知道类的情况下访问常量吗?换句话说,我可以做类似的事情:

还是将这些值保留为变量会更好,即使它们确实不应该改变?

更新

我已经改写了我上面的问题,以更好地表达我试图问的问题。

0 投票
1 回答
138 浏览

php - php在数组赋值中将字符串连接到classconstant

以下不起作用:

有人能告诉我这是为什么吗?:)

它在 ... => self::t 中失败。'hello')... 部分,作为接缝,它不能在 array() 中连接一个类常量。

这意味着以下两项工作都很完美:

0 投票
5 回答
36139 浏览

java - Java 常量池的目的是什么?

我目前正在尝试更深入地研究 Java 虚拟机的规范。我一直在在线阅读 Inside the JVM book,其中有一个我似乎无法理解的令人困惑的抽象:常量池。这是本书的摘录:

对于它加载的每种类型,Java 虚拟机都必须存储一个常量池。常量池是类型使用的一组有序常量,包括文字(字符串、整数和浮点常量)和对类型、字段和方法的符号引用。常量池中的条目由索引引用,很像数组的元素。因为它持有对一个类型使用的所有类型、字段和方法的符号引用,所以常量池在 Java 程序的动态链接中起着核心作用

总的来说,我对上述和 CP 有几个问题:

  1. CP 是否位于.class每种类型的文件中?
  2. 作者所说的“符号引用”是什么意思?
  3. 用简单的英语来说,常量池的目的是什么?
0 投票
7 回答
39715 浏览

c++ - 为什么类的常量数据成员需要在构造函数中初始化?

我想知道为什么类的常量数据成员需要在构造函数中初始化,为什么不在其他地方初始化?这样做和不这样做有什么影响?

我还看到只能在类内部初始化静态常量整数数据,而不是在类内部初始化非数据成员。

例如:-假设下面是我的班级声明

构造函数定义如下:-

编辑部分:由于之前的构造函数定义示例是错误的

如果我错了,请纠正我。提前致谢。

0 投票
1 回答
1924 浏览

php - 如何从 PHP 中的外部必需文件访问常量?

如果我将常量保留在类代码中,我会制作这个类,但我想从用户可以注释或取消注释 c 常量值的外部文件访问它们。

这种方式效果很好,但我不希望用户在代码中翻来覆去:

这可以正常工作,因为它被硬编码到类文件中:

我希望它使用这个来工作:

我在 if /else 语句中不断得到 else ,它无法找到是否定义了 PWDALGO 。

或者这样

我不知道这是否可能,因为我不断收到错误,我认为您不能在类范围内包含或要求文件。

将来,如果我让它工作,我想要一个安装脚本来检查服务器以查看可用的加密类型并列出供用户选择首选加密方法的列表,然后为他们自动设置. 并且以后可以从管理控制面板更改加密方法。

0 投票
1 回答
4810 浏览

php - 我可以使用常量名称的变量访问 PHP 类常量吗?

当访问一个类常量时,我​​看到我可以使用一个变量作为类名,例如$classname::CONST_VALUE.

如果我想使用一个变量作为常量名,例如self::$constant. 这似乎不起作用。有解决方法吗?

0 投票
2 回答
194 浏览

php - 创建一个类的所有常量的数组?

我正在使用一个定义了近 20 个常量的类,因为我想要一个数组中的所有这些常量值,我只想知道

是否有任何方法可以创建一个类的所有常量的数组?

我尝试使用紧凑但它不适用于常量。

0 投票
1 回答
2728 浏览

php - 带有 PDO::MYSQL_ATTR_MAX_BUFFER_SIZE 的 PHP 中的致命错误

使用 PHP Web 应用程序时,我遇到了 PDO::MYSQL_ATTR_MAX_BUFFER_SIZE 的致命错误,但仅限于非常罕见的托管计划。这是说这个常数不可用。如何检测到它不可用而不使用它?

我的意思是,我可以使用 if (!defined(...)) if/then 检查,但是在那些未使用 PDO 编译 MYSQL_ATTR_MAX_BUFFER_SIZE 的系统上,这仍然会出现致命错误吗?请注意,有一个关于 MYSQL_ATTR_MAX_BUFFER_SIZE 和 mysqlnd 的已知错误,在安装了 mysqlnd 的情况下它不会被编译。该错误被标记为“不会修复”。

0 投票
0 回答
591 浏览

database - Zend/Db/Select.php 中的 Zend 框架未定义的类常量 ''

我的 Apache 日志中有一个奇怪的错误:

PHP致命错误:未定义的类常量''

这是 de library (Zend framework 1.11) library/Zend/Db/Select.php 的第 814 行

看一下代码:

if ($type == self::FROM) {
// append this from after the last from joinType
$tmpFromParts = $this->_parts[self::FROM];
$this->_parts[self::FROM] = array();
// move all the froms onto the stack
while ($tmpFromParts) {
$currentCorrelationName = key($tmpFromParts);
if ($tmpFromParts[$currentCorrelationName]['joinType'] != self::FROM) {
break;
}
$lastFromCorrelationName = $currentCorrelationName;
$this->_parts[self::FROM][$currentCorrelationName] = array_shift($tmpFromParts);
} }

这很奇怪,因为未定义的常量是空的。这个致命错误有时会出现,但不是在每次加载页面时都会出现。难道是zend框架的发布BUG?

0 投票
2 回答
2930 浏览

iphone - 访问 Class 中的常量而不在 ObjectiveC 中创建类的实例

下面的 C# 类仅用于保持常量。所以我们可以使用类名访问每个所以'Constants.DIR_ARCHIVE'将给出'Archive'。

如何在 ObjectiveC 中定义下面的 C# 类?