Home  >  Article  >  Backend Development  >  类外边的独立的自定义函数和类中静态方法有啥区别啊?

类外边的独立的自定义函数和类中静态方法有啥区别啊?

WBOY
WBOYOriginal
2016-06-23 14:21:561030browse

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');

嗯,感觉把函数都放到类里写成静态的会实现归类,有一种规矩的感觉,比如把关于文件的函数都放在file类中等等,然后使用的时候系统__autoload自动调用  不用手动包含

不过看了很多比较知名的程序,不是这么做的,新手很迷茫  呵呵

这两个的区别你可以分别在类里面调用和类外部调用试试看就明白了。有些问题自己去发现和测试远比问出来印象深刻!

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()……




写在类外边的单独的函数和写在类里边的静态的函数有啥区别?类外边的函数是静态的吗?也像教程中所说的静态的方法节约内存么?它们如果非要比比效率,哪个高啊?

把常用的函数写在类里定义为静态方法有好处么?

我是新手,请老手给予正确的指点!

一种编程思想的转变,没有任何区别

我的意见和老徐接近,命名空间是趋势
只是目前一些脚本解析语言对命名空间处理较慢(只是相对而言),但我觉得以后会改善的

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn