การอ้างอิงถึง static ผ่านคลาสและออบเจกต์ใน OOP ใน PHP
คุณสมบัติและเมธอดแบบ static สามารถอ้างอิงได้ทั้งผ่านคลาส และผ่านตัวแปรที่มีออบเจกต์ของคลาส
มาดูตัวอย่างกัน
สมมติว่าเรามีคลาส Test
พร้อมคุณสมบัติแบบ static:
<?php
class Test
{
public static $property = 'static';
}
?>
มาแสดงค่าของคุณสมบัติแบบ static โดยอ้างอิงไปที่คลาส:
<?php
echo Test::$property;
?>
และตอนนี้แสดงค่าของคุณสมบัติแบบ static โดยอ้างอิงไปที่ออบเจกต์ของคลาส:
<?php
$test = new Test;
echo $test::$property;
?>
ให้คลาสต่อไปนี้ที่มีเมธอดแบบ static:
<?php
class Test
{
public static function show()
{
return '+++';
}
}
?>
เรียกใช้เมธอดนี้ทั้งในฐานะเมธอดของคลาส และในฐานะเมธอดของออบเจกต์