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

php中文网
发布: 2016-06-23 14:21:56
原创
1168人浏览过

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()……
登录后复制




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

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

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

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

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

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号