PHP Static Method and Properties

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 จากคลาสลูก

 

หากคุณพบคำที่สะกดผิด เว้นวรรคไม่ถูกต้อง ฯ โปรดแจ้งให้เราทราบ โดยลากคลุม (highlight) ข้อความนั้น แล้วกด Ctrl + Enter

ไม่สามารถคัดลอกเนื้อหานี้

Spelling error report

The following text will be sent to our editors: