在使用thinkPHP 中, 看过一份代码
model中写的都是静态方法,都是用::直接调用,
如:
复杂业务中类中的方法都是 new 一个对象再调用
如:
想知道,这样做的原理是什么
在使用thinkPHP 中, 看过一份代码
model中写的都是静态方法,都是用::直接调用,
如:
复杂业务中类中的方法都是 new 一个对象再调用
如:
想知道,这样做的原理是什么
<?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();
############注意:只有静态方法才能用::来调用,否则一律用->
写为静态方法直接调用,是为了方便,和定义函数差不多,一般是常用的公共方法写做静态方法,方便调用,静态方法一般不会定义太多,因为会随着框架的启动直接就初始化,占用内存。而new方法只会在new的时候才会初始化,占用内存,所以每个model各自的逻辑一般不会写为静态方法。
2 回答1.3k 阅读✓ 已解决
1 回答980 阅读✓ 已解决
2 回答845 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
2 回答901 阅读
1 回答888 阅读
1 回答817 阅读
并没有什么原理可说,这个是不同的代码设计方法。
一般来说,静态方法都是一些服务型的东西或者是内部自行保持的单例
而实例化一个对象实现的业务,比如说ORM的话就是需要创建一个数据实例进行操作的
这种没有什么特别好的讲。。
感觉就是自己明白说不出来