一般我们做php项目类里面定义的方法或者属性都是普通的什么时候该用static方法和属性有什么例子的我很少用静态属性就有一次用过我在做会员中心要获取会员菜单的时候我用的privatestatic$menu=array();大家可以讨论下吗
2 回答
临摹微笑
TA贡献1982条经验 获得超2个赞
当方法与实例关系不大时,也就是当你希望摆脱实例化的限制直接使用类中的一个方法或属性时,可以定义为static。此外在效率上:类名访问静态方法>实例访问静态方法>实例访问非静态成员方法但是,过多地定义静态方法或属性无疑会对类的封装性和安全性造成一定影响。btw,如果属性与实例的关系几乎为0时,建议定义为const常量。
胡说叔叔
TA贡献1804条经验 获得超8个赞
我一般不排斥业务代码用静态方法/属性,但框架/公共的代码还是要极力避免静态方法和属性的(少数如工厂方法的情况可以排除),因为这涉及扩展性调用方写死类名意味着要改变行为几乎只能改类的代码,无法通过继承来override可测试性静态方法/属性在测试的时候往往会对插桩造成困难耦合度特制static属性可以被外部修改的时候,会大幅度提升耦合度。publicstatic的属性有修改行为的话和全局变量几乎只有名字的区别,灾难程度是一样的
添加回答
举报
0/150
提交
取消