对PHPstatic的理解
程序员文章站
2024-01-22 12:03:46
...
最近看了下Yii2.0的源码,发现里面有很多new static() 和static::的语句,顺便做下记录
- 首先看下面代码
- 首先看下面代码
classA {publicstaticfunctionget_self() {returnnewself();
}
publicstaticfunctionget_static() {returnnewstatic();
}
}
classBextendsA {}
echo get_class(B::get_self()); // Aecho get_class(B::get_static()); // Becho get_class(A::get_static()); // A
通过上面可以看出new static()
表示的调用的类,而new self()
表示的是声明的类
classA {const TEST = 'testa';
publicstaticfunctiontest_static(){echostatic::TEST;
}
publicstaticfunctiontest_self()
{echoself::TEST;
}
}
classBextendsA {const TEST = 'testb';
}
echo B::test_static(); //testbecho B::test_self(); //testa
通过上面的观察可以得出一个结论,static和被调用的类相关,而self则和声明的类(self代码所在的类)相关。
以上就介绍了对PHPstatic的理解,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
推荐阅读
-
理解元素的浮动float分为背景与内容,属于“半层”飘出。
-
jsp jquery实现级联菜单,jquery对select元素的简单操作
-
通过对服务器端特性的配置加强php的安全_PHP
-
对django中render()与render_to_response()的区别详解
-
javascript - php 响应 ajax 的时候,怎么返回 json 对象呢?我这样对吗?
-
商品绑定可用的优惠券(多对多的绑定且一张优惠券只能使用于一个商品)
-
PHP下对缓冲区的控制_PHP
-
数据库-Entity framework 对mysql的支持在实体数据模型向导里面没有mysql
-
Authority权限验证类对模块的验证
-
php 对 mysql数据库的增,删,该,查