PHP静态延迟绑定与一般静态效率比较
这只是一个简单的小实验,比较了低延迟绑定和非延迟效率。
延迟绑定主要是使用静态关键字来代替原来的自己,但
功能非常强大。
实验代码:
类{
保护静态$ CC1 =阵列(
步骤,B,C,D);
保护静态数组('a2 CC2 =美元,B,C,D);
保护静态数组('a3 CC3 =美元,B,C,D);
保护静态数组('a4 CC4 =美元,B,C,D);
保护静态数组('a5 CC5 =美元,B,C,D);
公共静态
函数N1(){
返回静态::$ CC1;
}
公共静态函数n2(){
返回静态::$ 2;
}
公共静态功能N3(){
返回静态::$ CC3;
}
公共静态函数N4(){
返回静态::$ CC4;
}
公共静态函数x(){
返回静态::$ CC5;
}
}
类C
扩展{
}
B类{
保护静态$ CC1 =阵列(步骤,B,C,D);
保护静态数组('a2 CC2 =美元,B,C,D);
保护静态数组('a3 CC3 =美元,B,C,D);
保护静态数组('a4 CC4 =美元,B,C,D);
保护静态数组('a5 CC5 =美元,B,C,D);
公共静态函数N1(){
回归自我::$ CC1;
}
公共静态函数n2(){
回归自我::$ 2;
}
公共静态功能N3(){
回归自我::$ CC3;
}
公共静态函数N4(){
回归自我::$ CC4;
}
公共静态函数x(){
回归自我::$ CC5;
}
}
a、b和c有三个类,它们
都是静态成员变量和
方法。
A类使用静态延迟,
B类是不延迟的。
C类是一个延迟绑定,它继承了一类静态成员变量和方法。
过程就不多说了,环境是php5.4.27直接测试结果:
有两个案例。
1。当只有一个B类(也就是说,没有类被允许继承一个类)时,效率几乎没有差别。
2。当一个类被C类继承时,使用静态延迟绑定的类
性能将比B类稍差(只要具有继承类的类将是缓慢的)
十万个周期,2.8s和3.2s间隔的时间大约是0.3秒,它应该被忽略。
添加一些:稍后,添加一些测试方法。如果C类继承了类A,重载了部分A类中的一些静态成员变量,那么负载越重,
速度和B类(非延迟)就越近,但类A的速度仍然比B类和C类慢。
如果您有任何问题,请在本站留言或与社区交谈。谢谢你的阅读。我希望你能帮助你。感谢您对本站的
支持。