【问题标题】:PHP object overflowPHP 对象溢出
【发布时间】:2010-02-10 03:46:32
【问题描述】:

我正在尝试以类似于以下方式组织项目中的课程:

$TheRoberts = new family;

class family {
    public function __construct() {
        $bobby = new father;
        $cindy = new daughter;
    }
}

class father extends family {
    function PayBills() {}
    function GoToWork() {}
}

class daughter extends family {
    function AskForMoney() {}
    function GoToSchool() {}
}

有关该主题的文献非常抽象,但是,如果我理解正确,这就是它的完成方式。那么,为什么 PHP 会抛出关于内存耗尽和超过执行时间的错误呢?简而言之:为什么构造函数循环?

【问题讨论】:

  • 不相关,但 PHP 类通常是 UpperCamelCased。

标签: php object constructor


【解决方案1】:

调用新家庭就是调用新女儿,它本身就是家庭的子类,因此调用家庭构造函数,它正在调用新女儿......

女儿和父亲不应该扩展家庭...您应该创建一个家庭成员类,女儿和父亲可以扩展(is-a)关系。然后这个家庭可能有family_members(有关系)。

【讨论】:

  • 乔丹,感谢您的编辑。我的 iPhone 似乎喜欢用 constrictor 替换构造函数。
【解决方案2】:

您的fatherdaughter 类没有定义构造函数,因此它们将从family 继承构造函数。这将导致创建无限数量的father 对象。

在这个特定示例中,fatherdaughter 都不应扩展 family 类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-02
    • 2014-11-28
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多