PHP是否为每个扩展同一父级的新类分配内存?

时间:2012-07-08 21:21:06

标签: php

我想知道PHP是否会重用Parent类。使用以下代码:

// File parent.php
class Parent {
  $public foo = '';

  public function __construct($args) {
    // ..
  }

  // .. some functions
}

// File child1.php
class Child1 extends Parent {
  public function __construct() {

  }

  // .. Some overridden function
  // .. some extra functions
}

// File child2.php
class Child2 extends Parent {
  public function __construct() {

  }

  // .. some extra functions
}

现在要使用Child1或Child2,您需要包含parent.php和childN.php。如果我只使用Child1,我可以想象它们会以某种方式连接成一个存在。但是,如果我在同一页面上使用Child2 ..我会得到2个'连接'存在,吞噬内存还是PHP超级智能并且能够看到这个并且只使用/加载/只有父类一次。

这个例子很简单,但是父亲很大,而且有很多孩子!

2 个答案:

答案 0 :(得分:2)

简短回答是“PHP超级智能”,内存只会用于存储类实例,存储类定义的内存部分可以忽略不计。您也可以担心夹杂物的数量,但在这种特殊情况下,一切都远非缓慢。

答案 1 :(得分:0)

Parent仅加载一次。实际上,如果你尝试加载它两次,PHP会抛出一个错误。