【发布时间】:2021-10-09 07:49:56
【问题描述】:
我想知道从 FINAL 类创建的对象会使用更少的内存吗?还是 FINAL 只是类的“配置”?
【问题讨论】:
-
final类使用更少的内存没有内在的原因。由于特定 PHP 版本中的某些内部优化原因,它可能 或可能不会使用更少的内存,但因为它只是一个内部优化,在下一个 PHP 版本中可能会或可能不会出现这种情况。手册在这方面没有提及或保证任何事情,所以只是假设内存使用与它为零。 -
final暗示解释器需要执行额外的检查,所以我不会惊讶地发现内存使用量有小幅增加。但是,如前所述,它属于 PHP 内部,可能没有什么值得考虑的。 -
@Álvaro 我希望编译器必须按照
for c in chain_of_parents(cls): if c.final: throw new Exception的行对任何扩展类执行该检查。在这种情况下,final只是一个属性,不会产生任何额外的处理或内存。这只是我的猜测,还没有看过实际的实现。