gpt4 book ai didi

php - 如何在 PHP 中向对象添加方法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:07:17 26 4
gpt4 key购买 nike

我有一个面向对象的库,我想向其中添加一个方法,虽然我相当确定我可以进入该库的源代码并添加它,但我想这就是通常所说的 A Bad想法。

我该如何正确地将我自己的方法添加到 PHP 对象?

更新 **编辑**

我尝试向其添加方法的库是简单的 HTML,没什么特别的,只是一种提高可读性的方法。所以我尝试添加到我的代码中:

class simpleHTMLDOM extends simple_html_dom {
public function remove_node() {
$this->outertext = "";
}
}

这让我: fatal error :调用未定义的方法 simple_html_dom_node::remove_node()。很明显,当您在 simpleHTML 中获取一个元素时,它会返回一个类型为 simple_html_dom_node 的对象。

如果我将方法添加到 simple_html_dom_node,我的子类将不会由 simplHTML 创建...所以不知道下一步该去哪里。

最佳答案

一种解决方案是创建一个新类,它扩展了您的库中的类——然后,使用您的类,该类具有原始类的所有方法以及您的方法。

这是一个(非常快速和简单)示例:

class YourClass extends TheLibraryClass {
public function yourNewMethod() {
// do what you want here
}
}

然后,您使用您的类(class):

$obj = new YourClass();
$obj->yourNewMethod();

并且您可以调用 TheLibraryClass 类的方法,因为您继承了该类的属性和方法:

$obj->aMethodFromTheLibrary();


关于这个,你可以看看Object Inheritance手册的一部分。


而且,正如您所猜测的那样,修改库绝对不是一个好主意:每次更新库时都必须重新进行修改!

(总有一天,您会忘记——或者您的一位同事会忘记 ^^)

关于php - 如何在 PHP 中向对象添加方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2148964/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com