1.Static Method
สามารถเรียกได้โดยตรง โดยที่ไม่ต้องสร้างวัถตุ
การสร้าง static method สามารถทำได้โดยใช้คีย์เวิร์ด static
ไวยากรณ์
<?php class ClassName { public static function staticMethod() { echo "Hello World!"; } } ?>
การใช้งานหรือเข้าถึง static นั้นทำไดโดยการ เรียกชื่อคลาส ตามด้วยสัญลักษณ์ :: และชื่อเมธอดที่ต้องการดังตัวอย่างที่ 1
ตัวอย่างที่ 1
<?php //สร้างคลาส class MyClass{ public static function helloWorld(){ echo "Hello World! <br><b>Static method</b>"; } } // เรียกใช้ static method MyClass::helloWorld(); ?>
ไฟล์ที่ 1 test_static_method.php
ตัวอย่างที่ 2 เข้า static method ถึงภายในคลาส
<?php //สร้างคลาส class MyClass{ public static function helloWorld(){ echo "Hello World! <br><b>Static method</b>"; } function __construct(){ self::helloWorld(); } } // สร้างวัถุ $message = new MyClass(); ?>
ไฟล์ที่ 2 เข้าถึง static method จากภายในคลาส
ตัวอย่างที่ 3 การเข้าถึง static method ที่กำหนดการเข้าถึงเป็น protected
<?php //คลาสแม่ (parent) class MyClass{ protected static function helloWorld(){ echo "<h1>Static Method</h1><p>Access Modifier = protected</p>"; } } //คลาสลูก (child) class MySubClass extends MyClass{ public function __construct(){ parent::helloWorld(); } } //สร้างวัตถุ $subclass = new MySubClass(); ?>
ไฟล์ที่ 3 เข้าถึง static method จากคลาสลูก
การเข้าถึง static method ที่กำหนดการเข้าถึงเป็น protected จะต้องใช้คีย์เวิร์ด parent ในคลาสลูก ตามด้วยสัญลักษณ์ :: ต่อด้วยชื่อของเมธอดที่ต้องการที่อยู่ภายในคลาสแม่
2.Static Properties
การเรียกใช้คล้ายกันกับ static method
ไวยากรณ์
<?php //สร้างคลาส class ClassName { public static $staticProp = "Narasak.com"; } //เข้าถึงคุณสมบัติ ClassName::staticProp; ?>
ตัวอย่างที่ 1
<?php class NewClass{ public static $data = "Welcome To PHP Static Properties"; } echo NewClass::$data; ?>
ไฟล์ที่ 1 เข้าถึง static properties จากภายนอกคลาส
ตัวอย่างที่ 2
<?php class NewClass{ public static $data = "Welcome To PHP Static Properties"; public function message(){ return self::$data; } } $newmessage = new NewClass(); echo $newmessage->message(); ?>
ไฟล์ที่ 2 เข้าถึง static properties จากภายในคลาส
ตัวอย่างที่ 3 การเข้าถึง static properties จากคลาสลูก
<?php // คลาสแม่ class MyClass{ public static $data = "Welcome To PHP Static Properties"; } // คลาสลูก class MySubClass extends MyClass{ public function getData(){ echo parent::$data; } } // สร้างวัถตุใหม่ $subclass = new MySubClass(); $subclass->getData(); ?>
ไฟล์ที่ 3 เข้าถึง static properties จากคลาสลูก