目录

PHP OOP - 静态方法


PHP - 静态方法

可以直接调用静态方法 - 无需先创建类的实例。

静态方法是用static关键字:

语法

<?php
class ClassName {
  public static function staticMethod() {
    echo "Hello World!";
  }
}
?>

要访问静态方法,请使用类名、双冒号 (::) 和方法名:

语法

ClassName:: staticMethod();

让我们看一个例子:

示例

<?php
class greeting {
  public static function welcome() {
    echo "Hello World!";
  }
}

// Call static method
greeting::welcome();
?>
亲自试一试 »

示例解释

在这里,我们声明一个静态方法:welcome()。然后,我们使用类名、双冒号 (::) 和方法名来调用静态方法(无需先创建类的实例)。



PHP - 有关静态方法的更多信息

一个类可以同时具有静态和非静态方法。可以使用以下方法从同一类中的方法访问静态方法self关键字和双冒号 (::):

示例

<?php
class greeting {
  public static function welcome() {
    echo "Hello World!";
  }

  public function __construct() {
    self::welcome();
  }
}

new greeting();
?>
亲自试一试 »

静态方法也可以从其他类中的方法调用。为此,静态方法应该是public:

示例

<?php
class A {
  public static function welcome() {
    echo "Hello World!";
  }
}

class B {
  public function message() {
    A::welcome();
  }
}

$obj = new B();
echo $obj -> message();
?>
亲自试一试 »

要从子类调用静态方法,请使用parent子类中的关键字。这里,静态方法可以是public或者protected

示例

<?php
class domain {
  protected static function getWebsiteName() {
    return "91xjr.com";
  }
}

class domainW3 extends domain {
  public $websiteName;
  public function __construct() {
    $this->websiteName = parent::getWebsiteName();
  }
}

$domainW3 = new domainW3;
echo $domainW3 -> websiteName;
?>
亲自试一试 »