php对象增加方法吗,PHP对象新增方法的有关问题

PHP对象新增方法的问题

很普通的写法:

class MyClass

{

funciton a(){

echo 'a';

}

}

class MyClassExted extends MyClass

{

function b(){

echo 'b';

}

}

$test = new MyClassExted();

$test->b();

因为一些原因,我希望使用的时候可以是这样的:

$test = new MyClass();

$test->b();

就“好像”是这样:

class MyClass

{

funciton a(){

echo 'a';

}

}

class MyClass extends MyClass

{

function b(){

echo 'b';

}

}

$test = new MyClass();

$test->b();

但这显示不对的,新extends的类名必须与父类不同,那么问题来了?

有什么办法可以直接对一个类新增一个方法吗?

------解决思路----------------------

没有这种写法,类名不能重复定义

为什么不在MyClass类里面写方法b() 呢,MyClassExted?继承 MyClass后,可以重写MyClass 的方法b()

class MyClass

{

function a(){

echo 'a';

}

function b(){

echo 'MyClass b';

}

}

class MyClassExtend extends MyClass

{

function b(){

echo 'MyClassExtend b';

}

}

$MyClass = new MyClass();

$MyClass->b();//MyClass b

$MyClassExtend = new MyClassExtend();

$MyClassExtend->b();//MyClassExtend b

------解决思路----------------------

你可以给类预留一个接口呀

class MyClass

{

funciton a(){

echo 'a';

}

function __call($name, $param) {

if(function_exists($name)) {

return call_user_func_array($name, $param);

}

}

}

function b() {

echo $b;

}

$test = new MyClass();

$test->b();

------解决思路----------------------

class MyClass

{

function a(){

echo 'a';

}

function __call($name, $param){

if($name=='b'){

echo 'b';

}

}

}

$obj = new MyClass();

$obj->b();

------解决思路----------------------

再给你个加强升级版

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值