種外邊的獨立的自訂函數和類中靜態方法有啥區別啊

來源:互聯網
上載者:User
類外邊的獨立的自訂函數和類中靜態方法有啥區別啊?


function test(){
………
return $result;
}

function test1(){
………
return $result;
}

……

function testN(){
………
return $result;
}


class funs{
static function test(){
………
return $result;
}
static function test1(){
………
return $result;
}
……
static function testN(){
………
return $result;
}
}


$a = test();
$b = funs::test()

……





寫在類外邊的單獨的函數和寫在類裡邊的靜態函數有啥區別?類外邊的函數是靜態嗎?也像教程中所說的靜態方法節約記憶體嗎?它們如果非要比比效率,哪個高啊?

把常用的函數寫在類裡定義為靜態方法有好處嗎?

我是新手,請老手給予正確的指點!

分享到:


------解決方案--------------------
按照 php5.3 的約束,靜態方法只能訪問靜態屬性
那麼,靜態方法和普通函數沒有太大的區別
其實這種奇異的寫法會逐步被命名空間取代
當然,有人會說不同的類可以定義同名的靜態方法,來實現差異化
但是命名空間就是用來實現這個目的的


------解決方案--------------------
按照PHP的執行原理來理解:
php每次執行的時候寫在類外邊的function他會先遍曆一遍,而寫在class內的則不遍曆,但從此我感覺靜態封裝速度會比外部的function快.
OOP方式是目前推崇的,所以推薦把function封裝到class內成為靜態方法.使用的時候也不會太繁瑣.

------解決方案--------------------
至少我的所以方法全部封裝到了class內成為了static方法,如:
class abc{
public static function ff($a){
echo $a;
}
}
abc::ff('23');
------解決方案--------------------
這兩個的區別你可以分別在類裡面調用和類外部調用試試看就明白了。有些問題自己去發現和測試遠比問出來印象深刻!
------解決方案--------------------
引用:


function test(){
………
return $result;
}

function test1(){
………
return $result;
}

……

function testN(){
………
return $result;
}


class funs{
static function test(){
………
return $result;
}
static function test1(){
………
return $result;
}
……
static function testN(){
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.