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!"; } } // 调用静态方法 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 "w3school.com.cn"; } } class domainW3 extends domain { public $websiteName; public function __construct() { $this->websiteName = parent::getWebsiteName(); } } $domainW3 = new domainW3; echo $domainW3 -> websiteName; ?>