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;
?>