メインコンテンツへ移動

เนื้อหาภาษาไทย / タイ語のコンテンツ

システムガイド 内容確認済み

Public Access Modifier: การเข้าถึงแบบสาธารณะ

บทความนี้อธิบายถึง `public` access modifier ใน PHP ซึ่งเป็นการอนุญาตให้ Properties และ Methods สามารถเข้าถึงได้จากทุกที่ ทั้งภายในและภายนอก Class แม้ว่าการใช้ `...

Public Access Modifier: การเข้าถึงแบบสาธารณะ

ในบทที่แล้ว เราได้รู้จักกับ Access Modifiers ซึ่งเป็นเครื่องมือสำคัญในการควบคุมการเข้าถึง Properties และ Methods ภายใน Class ในบทนี้ เราจะมาเจาะลึกถึง public Access Modifier ซึ่งเป็นการเข้าถึงที่เปิดกว้างที่สุด

การประกาศ Public Properties และ Methods

เมื่อเราประกาศ Property หรือ Method ด้วย public นั่นหมายความว่า Property หรือ Method นั้นสามารถเข้าถึงได้จากทุกที่ ไม่ว่าจะเป็นภายใน Class เอง, ภายนอก Class หรือแม้แต่ Class ลูกที่สืบทอดมาจาก Class นั้น

รูปแบบการประกาศ public คือการใส่ keyword public ไว้หน้า Property หรือ Method ที่ต้องการให้เป็น public

<?php

class Car {
  public $color = "red"; // Public property
  public function honk() { // Public method
    echo "Beep beep!";
  }
}

?>

จากตัวอย่างข้างต้น $color และ honk() เป็น public ทั้งคู่

การเข้าถึงจากภายนอก Class

เนื่องจาก public เปิดให้เข้าถึงได้จากทุกที่ เราจึงสามารถเข้าถึง Properties และ Methods ที่เป็น public ได้จากภายนอก Class ได้โดยตรงผ่าน Object ที่สร้างจาก Class นั้น

<?php

class Car {
  public $color = "red";
  public function honk() {
    echo "Beep beep!";
  }
}

$myCar = new Car();

echo $myCar->color; // Output: red
$myCar->honk();     // Output: Beep beep!

?>

ในตัวอย่างนี้ เราสร้าง Object ชื่อ $myCar จาก Class Car จากนั้นเราเข้าถึง Property $color และ Method honk() ได้โดยตรงผ่าน $myCar->color และ $myCar->honk()

ตัวอย่างเพิ่มเติม

ลองดูตัวอย่างที่ซับซ้อนขึ้นเล็กน้อย

<?php

class Person {
  public $name;
  public $age;

  public function __construct($name, $age) {
    $this->name = $name;
    $this->age = $age;
  }

  public function introduce() {
    echo "Hello, my name is " . $this->name . " and I am " . $this->age . " years old.";
  }
}

$person1 = new Person("Alice", 30);

echo $person1->name;      // Output: Alice
echo $person1->age;       // Output: 30
$person1->introduce();   // Output: Hello, my name is Alice and I am 30 years old.

?>

ในตัวอย่างนี้ $name, $age และ introduce() เป็น public ทั้งหมด ทำให้เราสามารถเข้าถึงและใช้งานได้จากภายนอก Class

ข้อดีและข้อเสียของการใช้ Public

การใช้ public มีทั้งข้อดีและข้อเสียที่ควรพิจารณา

ข้อดี:

  • ความสะดวกในการเข้าถึง: ง่ายต่อการเข้าถึงและใช้งาน Properties และ Methods จากทุกที่
  • ความรวดเร็วในการพัฒนา: ไม่ต้องเขียน Getter และ Setter Methods เพื่อเข้าถึง Properties

ข้อเสีย:

  • ขาด Encapsulation: ข้อมูลภายใน Class ไม่ได้รับการปกป้องจากการเปลี่ยนแปลงโดยตรงจากภายนอก
  • ยากต่อการ Maintain: เมื่อมีการเปลี่ยนแปลง Property หรือ Method ที่เป็น public อาจส่งผลกระทบต่อ Code ส่วนอื่น ๆ ที่ใช้งาน Class นั้น
  • ความเสี่ยงด้านความปลอดภัย: หาก Property ที่เป็น public เก็บข้อมูลสำคัญ อาจมีความเสี่ยงที่ข้อมูลจะถูกแก้ไขโดยไม่ได้รับอนุญาต

Encapsulation คือหลักการพื้นฐานของ OOP ที่เน้นการห่อหุ้มข้อมูลและพฤติกรรมที่เกี่ยวข้องไว้ด้วยกันภายใน Class และควบคุมการเข้าถึงจากภายนอก เพื่อป้องกันการแก้ไขข้อมูลโดยตรงและรักษาความสอดคล้องของข้อมูล

Maintainability หมายถึงความสามารถในการแก้ไข ปรับปรุง และบำรุงรักษา Code ได้อย่างง่ายดาย โดยไม่ส่งผลกระทบต่อส่วนอื่น ๆ ของระบบ

สรุป

public Access Modifier เป็นการเข้าถึงที่เปิดกว้างที่สุดใน PHP OOP ทำให้ Properties และ Methods สามารถเข้าถึงได้จากทุกที่ การใช้งาน public มีข้อดีในเรื่องของความสะดวกและรวดเร็ว แต่ก็มีข้อเสียในเรื่องของการขาด Encapsulation, ความยากต่อการ Maintain และความเสี่ยงด้านความปลอดภัย ดังนั้นจึงควรพิจารณาอย่างรอบคอบก่อนตัดสินใจใช้ public และในบทต่อไป เราจะมาเรียนรู้เกี่ยวกับ private Access Modifier ซึ่งเป็นการเข้าถึงที่จำกัดที่สุด

Office.in.th Custom Service

この構成をもとにシステムを開発・カスタマイズしたいですか?

Office.in.th は、エンタープライズ Web アプリケーション、API 連携、官民の業務管理システムの設計・開発を承り、長期的なサポートも提供します。

ソフトウェア開発サービスを見る