ในยุคก่อนหน้านี้ PHP ขึ้นชื่อว่าเป็นภาษาแบบ Dynamically Typed หรือภาษาที่ไม่มีการผูกมัดประเภทของข้อมูลอย่างเข้มงวด นักพัฒนาสามารถส่งค่าอะไรก็ได้เข้าไปในฟังก์ชัน ซึ่งแม้จะให้ความยืดหยุ่นสูง แต่ก็มักนำมาซึ่งบั๊กซ่อนแอบที่หาตัวจับได้ยากในโปรเจกต์ขนาดใหญ่
จนกระทั่งการมาถึงของ PHP 7 ระบบได้เปิดตัว Scalar Type Hinting อย่างเป็นทางการ และถูกพัฒนาให้ยอดเยี่ยมยิ่งขึ้นใน PHP 8 ช่วยให้เราสามารถระบุประเภทข้อมูล (Type) ให้กับทั้งโปรแกรมพารามิเตอร์ (Argument) และค่าที่ส่งกลับคืนมา (Return Value) ได้อย่างชัดเจน
ทำไมต้องระบุ Type Hinting?
- ลดบั๊กและข้อผิดพลาด (Bug Reduction)
ป้องกันไม่ให้ส่งข้อมูลผิดประเภทเข้าฟังก์ชัน เช่น การนำสตริงไปคำนวณทางคณิตศาสตร์ - โค้ดอ่านง่ายขึ้น (Readability)
นักพัฒนาคนอื่น (หรือตัวคุณเองในอีก 3 เดือนข้างหน้า) สามารถดูจาก Signature ของฟังก์ชันแล้วรู้ได้ทันทีว่าฟังก์ชันนี้ต้องการอะไร และจะส่งอะไรกลับมา - IDE ทำงานได้ฉลาดขึ้น (Better Tooling)
IDE อย่าง VS Code หรือ PHPStorm จะสามารถทำ Auto-complete และแจ้งเตือน Error ได้ตั้งแต่ตอนที่คุณกำลังพิมพ์โค้ด
Argument Type Hinting (การระบุ Type ให้พารามิเตอร์)
เราสามารถระบุ Type ไว้ข้างหน้าชื่อตัวแปรในฟังก์ชันได้ทันที โดย Scalar Types พื้นฐานที่รองรับมีดังนี้
- bool (จริง/เท็จ)
- float (ทศนิยม)
- int (จำนวนเต็ม)
- string (ข้อความ)
ตัวอย่างโค้ด
PHP
PHP
<?php
function calculateTotal(int $price, int $quantity): int {
return $price * $quantity;
}
// การใช้งานปกติ
echo calculateTotal(100, 3); // ผลลัพธ์: 300