【问题标题】:I what cases do I declare static methods/variables in PHP?我在什么情况下在 PHP 中声明静态方法/变量?
【发布时间】:2017-09-22 23:33:40
【问题描述】:

刚刚开始感受 PHP 中类和方法(面向对象编程)的真正用处。但是,我仍然缺乏以正确方式声明方法和变量的理解和经验。

在什么情况下我应该声明一个方法/变量静态 VS 声明它是非静态的?我要问自己什么问题才能回答这个问题?

【问题讨论】:

  • 你做过任何研究吗?一个好的开始是搜索类似“我什么时候应该在PHP 中使用静态方法” 之类的内容。第一次点击是一个 SO 帖子:stackoverflow.com/questions/33705976/…
  • @MagnusEriksson 我有!但是,从某种意义上说,我确实看到了区别,例如,您可以直接调用静态方法而无需创建实例。但这只是为了节省一行代码吗? $myClass = new myClass(); $myClass->method(); vs 只调用方法`myClass::method()`
  • 不,不仅如此。有很多差异,就像我链接到的帖子所解释的那样。

标签: php oop methods static


【解决方案1】:

静态意味着您无需先创建类的实例即可访问这些函数。这使它很像一个正常的功能。如果您想将相关的函数组合在一起,但不需要类的特定实例来运行,则倾向于将函数设为静态。

非静态成员需要类的实例。通常你会使用它。

如果我们有一个类 Circle 并且它具有函数 area(),那么它将是非静态的,因为它需要一个特定的圆来查找其面积。现在想象我们有一个带有 printBold() 函数的 PrintText 类。我们不需要实例,因为它只取决于输入。但是使用 PrintText 类很方便,因为我们可以使用 printBold()、printItalics() 等。

【讨论】:

    猜你喜欢
    • 2014-06-20
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多