在使用thinkPHP 中, 看过一份代码model中写的都是静态方法,都是用::直接调用,如:
复杂业务中类中的方法都是 new 一个对象再调用如:
想知道,这样做的原理是什么
3 回答
胡说叔叔
TA贡献1804条经验 获得超8个赞
并没有什么原理可说,这个是不同的代码设计方法。
一般来说,静态方法都是一些服务型的东西或者是内部自行保持的单例
而实例化一个对象实现的业务,比如说ORM的话就是需要创建一个数据实例进行操作的
这种没有什么特别好的讲。。
感觉就是自己明白说不出来
慕容3067478
TA贡献1773条经验 获得超3个赞
<?php
class A(){
static function test1(){
}
public function test2(){
}
}
##############调用静态test1,以下三种写法等效
//<1>
$a = new A();
$a->test1();
//<2>
$a = new A();
$a::test1();
//<3>
A::test1();
############注意:只有静态方法才能用::来调用,否则一律用->
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
写为静态方法直接调用,是为了方便,和定义函数差不多,一般是常用的公共方法写做静态方法,方便调用,静态方法一般不会定义太多,因为会随着框架的启动直接就初始化,占用内存。而new方法只会在new的时候才会初始化,占用内存,所以每个model各自的逻辑一般不会写为静态方法。
- 3 回答
- 0 关注
- 439 浏览
添加回答
举报
0/150
提交
取消