【问题标题】:PHP - using public function in one class but not in extended classesPHP - 在一个类中使用公共函数但不在扩展类中
【发布时间】:2013-11-06 06:35:53
【问题描述】:

我有 3 节课

class Header
{
    public function _after_save ()
    {
    }
}

class Line extends Header
{

}

class Details extends Line
{

}

行扩展标题和详细信息扩展行。 Header 有一个功能,它会在我的网站中被称为许多页面,并且我已将其公开。我不希望 Line 和 Details 类调用函数 _after_save() 来执行,但它像扩展类一样被执行。 由于显而易见的原因,我无法保护该功能。 任何帮助我如何实现这一目标

【问题讨论】:

  • I don't want when I call the function _after_save() to execute 所以别打电话了。
  • 向我们展示完整的代码。我们将帮助您注释掉调用该函数的行。

标签: php class


【解决方案1】:

您可以创建分支结构。

class AbstractHeader
{

}

class Header extends AbstractHeader
{
    public function _after_save ()
    {
    }
}

class Line extends AbstractHeader
{

}

class Details extends AbstractHeader
{

}

【讨论】:

  • 谢谢!!!看起来不错的选择,但我必须不必要地创建一个额外的类。我正在寻找的是一个允许函数公开并且可以从类外部执行但子扩展类不会继承该函数的功能跨度>
  • @user2959149,您可以在子类中覆盖您的函数并在那里抛出异常。
  • 谢谢!!!这是最后一个选项,只是在所有子扩展类中定义函数,但我正在检查是否有任何其他优雅的解决方案。再次感谢大家的宝贵意见!!!
猜你喜欢
  • 1970-01-01
  • 2011-11-17
  • 2014-01-26
  • 1970-01-01
  • 2013-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-17
相关资源
最近更新 更多