2

我使用 PHP 作为我的编程语言。我真的不明白静态方法和变量的使用。

  1. 什么时候方法应该是静态的?/什么方法应该是静态的?
  2. 如何确定什么方法应该是静态的?
  3. 优点和缺点静态方法和变量?

谢谢

4

3 回答 3

2

将类属性或方法声明为静态使它们无需实例化即可访问。声明为静态的属性不能用实例化的类对象访问(尽管静态方法可以)。

当您处理基于 OOP 的大型项目时,您无疑会使用许多类(父类和子类)。这样做的一个不幸结果是,为了访问来自不同类的元素,必须手动将它们传递给每个类(或者更糟的是,将实例存储在全局变量中)。这可能会非常令人沮丧,并可能导致代码混乱和整体糟糕的项目设计。值得庆幸的是,静态元素可以从任何上下文(即脚本中的任何位置)访问,因此您可以访问这些方法,而无需在对象之间传递类的实例。

还要检查这个PHP 中的静态方法与非静态方法有什么区别吗?

于 2012-09-23T12:20:07.887 回答
2

A method should be static when it is not bound to instance variables. If it is doing plane processing and taking all the variables from function inputs. It can be marked as static.

Its advantage is you need not to create instances to invoke functionality and hence saves memory.

于 2012-09-23T12:20:32.363 回答
0

Declaring class properties or methods as static makes them accessible without needing an instantiation of the class. A property declared as static can not be accessed with an instantiated class object

<?php class Foo {
    public static function aStaticMethod() {
        // ...
    } }

$classname = 'Foo'; $classname::aStaticMethod(); // ( PHP 5.3.0) ?> 

"it can be initiated with out an OBJECT"

于 2012-09-23T12:33:09.970 回答