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
greeting {
public static function
welcome() {
echo "Hello World!";
}
}
class
SomeOtherClass {
public function
message() {
greeting::welcome();
}
}
?>
자식 클래스에서 정적 메서드를 호출하려면 자식 클래스 parent
내에서 키워드를 사용합니다. 여기서 정적 메서드는 public
또는 protected
.
예시
<?php
class domain {
protected static function
getWebsiteName() {
return "W3Schools.com";
}
}
class domainW3 extends domain {
public $websiteName;
public function __construct() {
$this->websiteName =
parent::getWebsiteName();
}
}
$domainW3 = new domainW3;
echo $domainW3 -> websiteName;
?>