我在什么情况下需要在PHP中声明静态方法/变量?

我在什么情况下需要在PHP中声明静态方法/变量?,php,oop,methods,static,Php,Oop,Methods,Static,开始感受PHP中类和方法(面向对象编程)的真正用处。然而,我仍然缺乏正确声明方法和变量的理解和经验 我应该在哪些情况下声明方法/变量为静态,而不是声明为非静态?要回答这个问题,我需要问自己哪些问题?静态意味着您可以访问函数,而无需首先创建类的实例。这使得它非常像一个普通函数。如果希望将相关的函数分组在一起,但不需要运行类的特定实例,则倾向于将函数设置为静态 非静态成员需要类的实例。通常,您将使用此选项 如果我们有一个类圆,它有函数area(),那么它将是非静态的,因为它需要一个特定的圆来找到它的

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


我应该在哪些情况下声明方法/变量为静态,而不是声明为非静态?要回答这个问题,我需要问自己哪些问题?

静态意味着您可以访问函数,而无需首先创建类的实例。这使得它非常像一个普通函数。如果希望将相关的函数分组在一起,但不需要运行类的特定实例,则倾向于将函数设置为静态

非静态成员需要类的实例。通常,您将使用此选项


如果我们有一个类圆,它有函数area(),那么它将是非静态的,因为它需要一个特定的圆来找到它的区域。现在假设我们有一个带有printBold()函数的PrintText类。我们不需要实例,因为它只依赖于输入。但是,使用PrintText类很方便,因为我们可以使用printBold()、printItalics()等。

您做过任何研究吗?一个好的开始应该是搜索“我什么时候应该在PHP中使用静态方法”。第一次击中的是一个SO帖子:@MagnusEriksson我有!然而,在某种意义上,我确实看到了区别,例如,您可以直接调用静态方法,而无需创建实例。但这只是为了保存一行代码吗<代码>$myClass=新建myClass()$myClass->method()vs只调用方法`myClass::method()``不,不仅仅是这样。有很多不同之处,正如我链接到的帖子所解释的。