ข้ามไปยังเนื้อหาหลัก
คู่มือระบบ เนื้อหาผ่านการตรวจสอบแล้ว

Methods: การกำหนดพฤติกรรมของ Object

บทความนี้อธิบายถึง Methods ซึ่งเป็นพฤติกรรมหรือการกระทำที่ Object สามารถทำได้ โดยเน้นที่การประกาศ, การเรียกใช้งาน, และการส่งค่า Parameters รวมถึง Type Hinting ใ...

Methods: การกำหนดพฤติกรรมของ Object

ในบทที่แล้ว เราได้เรียนรู้เกี่ยวกับ Properties ซึ่งเป็นคุณลักษณะหรือข้อมูลที่ Object แต่ละตัวมี ในบทนี้ เราจะมาเรียนรู้เกี่ยวกับ Methods ซึ่งเป็นพฤติกรรมหรือการกระทำที่ Object สามารถทำได้ เหมือนกับที่ Properties เป็น "อะไร" ของ Object, Methods คือ "ทำอะไร" ของ Object

ลองนึกถึง Class Car ที่เราอาจจะสร้างขึ้น Car อาจมี Properties เช่น $color, $model, และ $speed Methods ของ Car อาจเป็น startEngine(), accelerate(), brake(), และ stopEngine() ซึ่งเป็นการกระทำที่รถสามารถทำได้

การประกาศ Methods

การประกาศ Method ใน PHP นั้น คล้ายกับการประกาศ Function ทั่วไป แต่จะอยู่ภายใน Class Method ประกอบด้วยส่วนประกอบหลักๆ ดังนี้:

  • Access Modifier: กำหนดขอบเขตการเข้าถึง Method (public, protected, private)
  • Keyword function: บ่งบอกว่านี่คือ Method
  • Method Name: ชื่อของ Method
  • Parameters (optional): ค่าที่ส่งเข้ามาใน Method
  • Code Block: ส่วนของ code ที่ Method ทำงาน

ตัวอย่างการประกาศ Method:

class Car {
  public $color;
  public $model;
  public $speed = 0;

  public function startEngine() {
    echo "Engine started!\n";
  }

  public function accelerate($amount) {
    $this->speed += $amount;
    echo "Accelerating to " . $this->speed . " km/h\n";
  }

  public function brake($amount) {
    $this->speed -= $amount;
    if ($this->speed < 0) {
      $this->speed = 0;
    }
    echo "Braking to " . $this->speed . " km/h\n";
  }
}

ในตัวอย่างนี้ เราได้ประกาศ Method startEngine(), accelerate(), และ brake() ภายใน Class Car สังเกตว่าเราใช้ keyword public เพื่อให้ Method เหล่านี้สามารถเรียกใช้ได้จากภายนอก Class

การเรียกใช้ Methods

ในการเรียกใช้ Method ของ Object เราต้องสร้าง instance ของ Class นั้นก่อน แล้วใช้ operator -> (arrow operator) ตามด้วยชื่อ Method และวงเล็บ ()

ตัวอย่างการเรียกใช้ Methods จากตัวอย่างก่อนหน้า:

$myCar = new Car();
$myCar->startEngine(); // Output: Engine started!
$myCar->accelerate(20); // Output: Accelerating to 20 km/h
$myCar->brake(5); // Output: Braking to 15 km/h

ในตัวอย่างนี้ เราสร้าง Object $myCar จาก Class Car แล้วเรียกใช้ Method startEngine(), accelerate(), และ brake() โดยใช้ arrow operator (->)

การส่งค่า Parameters

Methods สามารถรับค่า Parameters ได้ เพื่อให้ Method สามารถทำงานกับข้อมูลที่แตกต่างกันได้ Parameters จะถูกกำหนดไว้ในวงเล็บ () หลังชื่อ Method เมื่อประกาศ Method

ตัวอย่างการส่งค่า Parameters:

class Calculator {
  public function add($num1, $num2) {
    return $num1 + $num2;
  }

  public function subtract($num1, $num2) {
    return $num1 - $num2;
  }
}

$calculator = new Calculator();
$result = $calculator->add(5, 3);
echo "5 + 3 = " . $result . "\n"; // Output: 5 + 3 = 8

$result = $calculator->subtract(10, 4);
echo "10 - 4 = " . $result . "\n"; // Output: 10 - 4 = 6

ในตัวอย่างนี้ Method add() และ subtract() รับ Parameters สองตัวคือ $num1 และ $num2 เมื่อเราเรียกใช้ Method เหล่านี้ เราต้องส่งค่า argument สองค่าให้กับ Parameters เหล่านั้น

Type Hinting ใน Parameters:

เช่นเดียวกับ Properties, Methods ก็สามารถใช้ Type Hinting ใน Parameters ได้เช่นกัน เพื่อระบุประเภทข้อมูลที่ Method คาดหวังว่าจะได้รับ

class Logger {
  public function logMessage(string $message) {
    echo "Log: " . $message . "\n";
  }

  public function logArray(array $data) {
    print_r($data);
  }
}

$logger = new Logger();
$logger->logMessage("This is a log message."); // Output: Log: This is a log message.
$logger->logArray(['key1' => 'value1', 'key2' => 'value2']); // Output: Array ( [key1] => value1 [key2] => value2 )

ถ้าเราส่งค่าที่ไม่ตรงกับ Type Hint ที่กำหนด PHP จะ throw error ออกมา

สรุป

Methods เป็นส่วนสำคัญของการเขียนโปรแกรมเชิงวัตถุใน PHP ช่วยให้เรากำหนดพฤติกรรมของ Object ได้ Methods สามารถรับ Parameters เพื่อทำงานกับข้อมูลที่แตกต่างกัน และสามารถใช้ Type Hinting เพื่อระบุประเภทข้อมูลที่ Method คาดหวังว่าจะได้รับ ในบทต่อไป เราจะเรียนรู้เกี่ยวกับ Constructor ซึ่งเป็น Method พิเศษที่ใช้ในการเริ่มต้น Object

Office.in.th Custom Service

ต้องการพัฒนาระบบหรือปรับแต่งจากโครงสร้างนี้?

Office.in.th รับพัฒนาและออกแบบ Enterprise Web Application, API Integration และระบบบริหารงานภาครัฐ/เอกชน พร้อมการสนับสนุนระยะยาว

ดูบริการรับพัฒนาซอฟต์แวร์