php类成员函数二次定义,动态定义类成员函数
admin
2023-01-19 17:01:03
0

这是一个很怪异的想法:class类定义之后,甚至编译载入内存之后,还有没有办法增加其成员函数,改写其已有成员函数逻辑!意义不是特别大,只是觉得很有意思, php太神奇了!!!

【应用场景】
1) 动态载入类成员函数体(一些常住内存框架,修改的代码需要重载服务,可以动态多次载入扩展函数文件)
2) 团队开发写同一个类文件的避免冲突,自己单独可以一个扩展文件;
3) 一个类的代码太多太多,将一些成员函数分解到多个文件中实现;
4) php类运行中按需加载成员函数体内容;

【实现原理】
用类的静态变量来保存扩展的函数,用__call魔术方法来实现扩展函数的真实调用;

【例子】

getC();
    return $n+$a+$b;

});

//////////////调用代码///////////
$user=new user();
$num=$user->add(1,2);
//8+1+2=11
var_dump($num);

/////////运行中再次定义/////////////////
user::ext('add',function($pthis,$a,$b){
    $n=$pthis->getC();
    return $n*$a*$b;
});

$num=$user->add(1,2);
//8*1*2=16
var_dump($num);

相关内容

热门资讯

终于懂了“极酷牛牛.开挂神器?... 您好:极酷牛牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏...
重磅消息“新道游拼三张.是不是... 您好:新道游拼三张这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款...
今日重磅消息“官方正版牛牛.有... 今日重磅消息“官方正版牛牛.有没有挂?”太坑了果然有挂您好,官方正版牛牛这个游戏其实有挂的,确实是有...
玩家分享攻略“云梦天穹.怎么开... 有 亲,根据资深记者爆料云梦天穹是可以开挂的,确实有挂(咨询软件无需打开...
今日重大发现“老友内蒙古麻将.... 您好:老友内蒙古麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这...
终于懂了“新老夫子拼三张.到底... 网上科普关于“新老夫子拼三张有没有挂”话题很是火热,小编也是针对新老夫子拼三张作*弊开挂的方法以及开...
【今日要闻】“龙泰棋牌.辅助器... 有 亲,根据资深记者爆料龙泰棋牌是可以开挂的,确实有挂(咨询软件无需打开...
我来教教您“旺旺冲击麻将.到底... 网上科普关于“旺旺冲击麻将有没有挂”话题很是火热,小编也是针对旺旺冲击麻将作*弊开挂的方法以及开挂对...
我来教教您“飞鹰互娱.是不是有... 您好:飞鹰互娱这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游戏...
【第一消息】“海贝大厅炸金花.... 有 亲,根据资深记者爆料海贝大厅炸金花是可以开挂的,确实有挂(咨询软件无...