類外邊的獨立的自訂函數和類中靜態方法有啥區別啊?
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(){