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()……写在类外边的单独的函数和写在类里边的静态的函数有啥区别?类外边的函数是静态的吗?也像教程中所说的静态的方法节约内存么?它们如果非要比比效率,哪个高啊?把常用的函数写在类里定义为静态方法有好处么?我是新手,请老手给予正确的指点!

解决方案 »

  1.   

    按照 php5.3 的约束,静态方法只能访问静态属性
    那么,静态方法和普通函数没有太大的区别
    其实这种奇异的写法会逐步被命名空间取代
    当然,有人会说不同的类可以定义同名的静态方法,来实现差异化
    但是命名空间就是用来实现这个目的的
      

  2.   

    按照PHP的執行原理來理解:
    php每次執行的時候写在类外边的function他会先遍历一遍,而写在class内的则不遍历,但从此我感觉静态封装速度会比外部的function快.
    OOP方式是目前推崇的,所以推荐把function封装到class内成为静态方法.使用的时候也不会太繁琐.
      

  3.   

    至少我的所以方法全部封装到了class内成为了static方法,如:
    class abc{
      public static function ff($a){
        echo $a;
      }
    }
    abc::ff('23');
      

  4.   

    嗯,感觉把函数都放到类里写成静态的会实现归类,有一种规矩的感觉,比如把关于文件的函数都放在file类中等等,然后使用的时候系统__autoload自动调用  不用手动包含不过看了很多比较知名的程序,不是这么做的,新手很迷茫  呵呵