PHP命名空间和Include()与类
发布时间:2020-12-13 17:28:05 所属栏目:PHP教程 来源:网络整理
导读:有一个我需要扩展的项目.所有类都在单独的文件中,我需要扩展一些类,而不会重写其他文件中的现有代码.我的想法是使用命名空间,但我失败了.这是一个例子: 我已将原来的A.php类文件重命名为A_Original.php: class A{ public function hello() { echo "hello w
有一个我需要扩展的项目.所有类都在单独的文件中,我需要扩展一些类,而不会重写其他文件中的现有代码.我的想法是使用命名空间,但我失败了.这是一个例子:
我已将原来的A.php类文件重命名为A_Original.php: class A { public function hello() { echo "hello world from Class An"; } } 然后创建了一个新的A.php: namespace AOriginal { include 'A_Original.php'; } namespace { class A { public function hello() { echo "hello world from Class A Extendedn"; } } } 这会失败,因为包含原始的A_Original.php文件,该类将转储到全局范围(因此忽略了命名空间命令). 其他项目文件(我不能修改)使用一个require“A.php”. 如何完成这个
您可以扩展一个类而不修改其现有行为:
class A { public function foo(){ } } class MySubClassOfA extends A { public function bar(){ } } 您可以将自己的方法添加到MySubClassOfA,即bar().您可以调用MySubClassOfA上的foo方法,它的行为是一样的,除非您在MySubClassOfA中定义了一个名为foo的方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |