• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

oop – 做php项目 什么时候该使用静态属性呢

php 搞代码 3年前 (2022-01-25) 12次浏览 已收录 0个评论
文章目录[隐藏]

一般我们做php项目 类里面 定义的方法 或者 属性 都是普通的 什么时候该用 static 方法和属性 有什么例子的

我很少用 静态属性 就有一次用过 我在做会员中心 要获取 会员菜单的时候 我用的

<code class="lang-php">private static $menu = array();</code>

大家可以讨论下吗

回复内容:

一般我们做php项目 类里面 定义的方法 或者 属性 都是普通的 什么时候该用 static 方法和属性 有什么例子的

我很少用 静态属性 就有一次用过 我在做会员中心 要获取 会员菜单的时候 我用的

<code class="lang-php">private static $menu = array();</code>

大家可以讨论下吗

当方法与实例关系不大时,也就是当你希望摆脱实例化的限制直接使用类中的一个方法或属性时,可以定义为 static
此外在效率上:
类名访问静态方法 > 实例访问静态方法 > 实例访问非静态成员方法

但是,过多地定义静态方法或属性无疑会对类的封装性和安全性造成一定影响。

btw,如果属性与实例的关系几乎为0时,建议定义为 const 常量。

在一个类里面,不变的一些东西可以使用static,比如,数据库链接的dsn,还有比如你问题中提到的会员菜单。

我一般不排斥业务代码用静态方法/属性,但框架/公共的代码还是要极力避免静态

)本文来源gaodai.ma#com搞#代!码网_

搞代gaodaima码方法和属性的(少数如工厂方法的情况可以排除),因为这涉及

  • 扩展性 调用方写死类名意味着要改变行为几乎只能改类的代码,无法通过继承来override
  • 可测试性 静态方法/属性 在测试的时候往往会对插桩造成困难
  • 耦合度 特制static属性可以被外部修改的时候,会大幅度提升耦合度。 public static的属性有修改行为的话和全局变量几乎只有名字的区别,灾难程度是一样的

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:oop – 做php项目 什么时候该使用静态属性呢

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址