PHP覆盖来自外部

时间:2017-02-14 00:14:47

标签: php

有没有办法在不触及类编码的情况下覆盖类中的函数?

我们上课,让我们说它位于 foo.php

class WPSEO_Frontend {
      public function head() {
            echo '<!-- / ', $this->head_product_name(), ". -->\n\n";
            return;
      }
}

所以如果不修改上面的这个类,有没有办法从类的外部删除这个echo,比如(我知道下面的例子不会起作用)

bar.php

class WPSEO_Frontend overrides head {
      echo '';
      return;
}

1 个答案:

答案 0 :(得分:0)

例如,PHP并不像Swift语言那样支持运行时函数调整。

你应该尝试做的是创建一个&#34; WPSEO_Frontend_Base&#34;然后创建另一个&#34; WP_SEO_Frontend&#34;从它扩展的子类重写了head()函数。

以下是一些示例代码:

<强> wpseo.frontend.base.php

class WPSEO_Frontend_Base {
      public function head() {
            echo '<!-- / ', $this->head_product_name(), ". -->\n\n";
            return;
      }
}

<强> wpseo.frontend.php

require 'wpseo.frontend.base.php';

class WPSEO_Frontend extends WPSEO_Frontend_Base {
  function head(){
    // Override head() here
  }
}