首页 > 解决方案 > 未使用的类常量会消耗内存吗?

问题描述

想象这个类有两个常量

class Myclass
{
    const FOO = array (...) // ~50M data in here
    const BAR = array (...) // also ~50M data in here
}

一个)

$foo=Myclass::FOO;
$bar=Myclass::BAR;

b)

$foo=Myclass::FOO;

如果 a) 我调用这两个常量,我猜这会导致大约 100M 的内存使用。正确的?

在 b) 的情况下,我只使用其中一个常量。内存使用量是 100M 还是只有 50M?

标签: php

解决方案


100 MB。常量在编译时为每个类(不是类实例)生成一次,无论您是否在后续代码中使用它们。这就是为什么它们必须是标量值。您可以在 PHP 手册中阅读更多内容: PHP - 类常量 PHP - 类常量语法


推荐阅读