在使用thinkPHP 中, 看過一份代碼model中寫的都是靜態(tài)方法,都是用::直接調(diào)用,如:
復(fù)雜業(yè)務(wù)中類中的方法都是 new 一個(gè)對象再調(diào)用如:
想知道,這樣做的原理是什么
3 回答

胡說叔叔
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
并沒有什么原理可說,這個(gè)是不同的代碼設(shè)計(jì)方法。
一般來說,靜態(tài)方法都是一些服務(wù)型的東西或者是內(nèi)部自行保持的單例
而實(shí)例化一個(gè)對象實(shí)現(xiàn)的業(yè)務(wù),比如說ORM的話就是需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)實(shí)例進(jìn)行操作的
這種沒有什么特別好的講。。
感覺就是自己明白說不出來

慕容3067478
TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
<?php
class A(){
static function test1(){
}
public function test2(){
}
}
##############調(diào)用靜態(tài)test1,以下三種寫法等效
//<1>
$a = new A();
$a->test1();
//<2>
$a = new A();
$a::test1();
//<3>
A::test1();
############注意:只有靜態(tài)方法才能用::來調(diào)用,否則一律用->

翻過高山走不出你
TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊
寫為靜態(tài)方法直接調(diào)用,是為了方便,和定義函數(shù)差不多,一般是常用的公共方法寫做靜態(tài)方法,方便調(diào)用,靜態(tài)方法一般不會(huì)定義太多,因?yàn)闀?huì)隨著框架的啟動(dòng)直接就初始化,占用內(nèi)存。而new方法只會(huì)在new的時(shí)候才會(huì)初始化,占用內(nèi)存,所以每個(gè)model各自的邏輯一般不會(huì)寫為靜態(tài)方法。
- 3 回答
- 0 關(guān)注
- 455 瀏覽
添加回答
舉報(bào)
0/150
提交
取消