PHP - 类常量在内存方面与全局常量有什么不同?

时间:2016-07-07 02:53:31

标签: php class memory-management constants

这是关于PHP中内存使用的问题。

  • 在内存使用方面,类常量是否与全局声明的常量有什么不同?
  • 静态引用类中声明的常量是否需要更多内存?
  • 当静态引用内部的常量时,类的大小(属性和方法的数量和大小)是否重要?

为清楚起见,类常数:

class Example {    
    const foo = 'bar';
}

全球常数:

define('foo', 'bar');

1 个答案:

答案 0 :(得分:0)

我从没想过这个,但这是一个很好的问题。

稍微搜索一下,我发现在执行memory_get_usage之前,您可以使用memory_get_usage()查看正在使用的内存。

所以,尝试使用它,你会看到。

这样做:

echo memory_get_usage()."\n";
class Example {    
    const foo = 'bar';
}
echo memory_get_usage()."\n";
define('foo', 'bar');
echo memory_get_usage();

因此,您将了解内存的变化情况以及更改是使用的内存。

我明白了:

第一回声:349840
第二回声:349840
第三回声:349872

所以,区别在于常量是预先分配的,因为如果我将类注释到最后,我会得到这个内存348664

所以,空脚本:348664,只有类:349840,只有全局常量:348976。

空脚本:0
分类:1176
全球常数:312

所以,有很大的不同。