静态方法 与 对象方法

在使用thinkPHP 中, 看过一份代码
model中写的都是静态方法,都是用::直接调用,
如:https://img3.mukewang.com/5c8f679d0001139703350031.jpg

复杂业务中类中的方法都是 new 一个对象再调用
如:https://img.mukewang.com/5c8f679e0001806e02200022.jpg

想知道,这样做的原理是什么

尚方宝剑之说
浏览 440回答 3
3回答

胡说叔叔

并没有什么原理可说,这个是不同的代码设计方法。一般来说,静态方法都是一些服务型的东西或者是内部自行保持的单例而实例化一个对象实现的业务,比如说ORM的话就是需要创建一个数据实例进行操作的这种没有什么特别好的讲。。感觉就是自己明白说不出来

慕容3067478

<?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各自的逻辑一般不会写为静态方法。
打开App,查看更多内容
随时随地看视频慕课网APP