🟣 PHP

ทำความเข้าใจ Data Types ใน PHP 8: พื้นฐานสำคัญที่โปรแกรมเมอร์มือใหม่ต้องแม่น

8 นาที 23 views บันทึกเป็น PDF
ทำความเข้าใจ Data Types ใน PHP 8: พื้นฐานสำคัญที่โปรแกรมเมอร์มือใหม่ต้องแม่น

เรียนรู้พื้นฐาน Data Types ใน PHP 8 ทั้ง Scalar และ Compound Types พร้อมวิธีทำ Type Hinting เพื่อเขียนโค้ดให้สะอาด ลดบั๊ก และได้มาตรฐานระดับมืออาชีพ

ทำความรู้จักกับ Data Types: พื้นฐานสำคัญที่โปรแกรมเมอร์ต้องแม่น

ในการเขียนโปรแกรม ข้อมูลเปรียบเสมือนวัตถุดิบในการทำอาหาร ถ้าเราไม่รู้ว่าวัตถุดิบแต่ละอย่างคืออะไร เราก็ปรุงอาหารออกมาไม่ได้ Data Types หรือ ชนิดของข้อมูล คือการกำหนดว่าข้อมูลที่เรากำลังจัดเก็บอยู่นั้นเป็นประเภทไหน เช่น เป็นตัวเลข เป็นข้อความ หรือเป็นค่าความจริง ซึ่งคอมพิวเตอร์จำเป็นต้องรู้เพื่อที่จะนำไปประมวลผลได้อย่างถูกต้องและประหยัดทรัพยากร

ลองนึกภาพว่าคุณกำลังจัดระเบียบตู้เอกสาร ถ้าคุณแยกประเภทชัดเจนว่าลิ้นชักไหนเก็บตัวเลข ลิ้นชักไหนเก็บชื่อคน การค้นหาและใช้งานก็จะรวดเร็วมาก การเขียนโปรแกรมก็เช่นกัน การกำหนดชนิดข้อมูลให้ถูกต้องช่วยให้โปรแกรมทำงานได้เร็ว และช่วยลด บั๊ก (Bug) หรือข้อผิดพลาดที่เกิดจากการนำข้อมูลผิดประเภทมาคำนวณกันโดยไม่ตั้งใจ

สำหรับมือใหม่ที่เพิ่งเริ่มศึกษา PHP 8 การเข้าใจเรื่อง Type ถือเป็นบันไดขั้นแรกสู่การเป็นโปรแกรมเมอร์ที่มีวินัย เพราะภาษา PHP ยุคใหม่ได้ก้าวเข้าสู่ยุค Strict Typing หรือการบังคับใช้ชนิดข้อมูลที่เข้มงวดมากขึ้น ซึ่งจะช่วยให้โค้ดของคุณอ่านง่ายและดูแลรักษาง่ายขึ้นในระยะยาวเมื่อต้องทำงานในโปรเจกต์ขนาดใหญ่ร่วมกับทีม

Scalar Types: ข้อมูลพื้นฐานที่ต้องมีติดตัว

Scalar Types คือชนิดข้อมูลพื้นฐานที่สุดที่เก็บค่าได้เพียงค่าเดียวในหนึ่งตัวแปร เปรียบได้กับภาชนะที่ใส่ของได้แค่ชิ้นเดียวต่อหนึ่งใบ ใน PHP 8 เราจะพบข้อมูลประเภทนี้อยู่ตลอดเวลา ได้แก่ int สำหรับเลขจำนวนเต็ม, float สำหรับเลขทศนิยม, string สำหรับข้อความ และ bool สำหรับค่าความจริง

การเข้าใจ Scalar Types ช่วยให้เราเลือกใช้ตัวแปรได้เหมาะสม เช่น ถ้าเราต้องการนับจำนวนสินค้าในตะกร้า เราควรใช้ int เพราะไม่มีใครซื้อสินค้าเป็นทศนิยม แต่ถ้าเราต้องการเก็บราคาสินค้า เราต้องใช้ float เพื่อความละเอียดของตัวเลข การใช้ผิดประเภทอาจทำให้การคำนวณผลลัพธ์คลาดเคลื่อนหรือโปรแกรมพังได้

นี่คือตัวอย่างการประกาศตัวแปรด้วย Scalar Types ใน PHP:

<?php
$age = 25;              // int: จำนวนเต็ม
$price = 99.75;         // float: เลขทศนิยม
$name = "Somchai";      // string: ข้อความ
$is_member = true;      // bool: ค่าความจริง (true/false)
?>

ในโค้ดด้านบน เราได้กำหนดตัวแปรสี่ตัวตามประเภทของข้อมูลที่เหมาะสม โดย $age เก็บค่าจำนวนเต็ม $price เก็บค่าที่มีจุดทศนิยม $name ใช้เครื่องหมายคำพูดครอบข้อความ และ $is_member ใช้เก็บสถานะว่าเป็นสมาชิกหรือไม่ ซึ่งเป็นพื้นฐานที่ใช้ในทุกแอปพลิเคชัน

Compound Types: เมื่อข้อมูลเริ่มซับซ้อน

เมื่อข้อมูลเริ่มมีความสัมพันธ์กัน การเก็บข้อมูลแยกเป็นตัวแปรเดี่ยวๆ อาจไม่เพียงพอ เราจึงต้องใช้ Compound Types ซึ่งคือข้อมูลที่สามารถเก็บค่าได้หลายๆ ค่าในตัวแปรเดียว ที่พบบ่อยที่สุดคือ array (ชุดข้อมูล) และ object (วัตถุที่รวมข้อมูลและพฤติกรรมเข้าด้วยกัน)

ลองเปรียบเทียบว่า Scalar Type คือการเก็บผลไม้ทีละลูก แต่ Compound Type คือการเก็บผลไม้ไว้ในตะกร้าใบใหญ่ การใช้ array ช่วยให้เราจัดการข้อมูลที่เป็นรายการ เช่น รายชื่อผู้ใช้ หรือรายการสินค้าได้สะดวก ส่วน object จะถูกใช้ในแนวคิด Object-Oriented Programming (OOP) เพื่อจำลองสถานการณ์จริงให้กลายเป็นโค้ด

ตัวอย่างการใช้ Array และ Object ใน PHP:

<?php
// Array: เก็บรายการสินค้า
$items = ["Apple", "Banana", "Orange"];

// Object: สร้างวัตถุจากคลาส (Class)
class User {
    public $name = "Bee";
}
$user = new User();
?>

โค้ดด้านบนแสดงให้เห็นว่า $items คือตะกร้าที่เก็บรายชื่อผลไม้ไว้ด้วยกัน ส่วน $user คือการสร้างวัตถุจากพิมพ์เขียวที่ชื่อว่า User ซึ่งช่วยให้เราสามารถจัดการข้อมูลที่มีความซับซ้อนได้เป็นระบบมากขึ้น เหมาะสำหรับการทำระบบฐานข้อมูลหรือการดึงข้อมูลจาก API

การกำหนด Type ใน PHP 8 (Type Hinting)

จุดเด่นของ PHP 8 คือการรองรับ Type Hinting หรือการระบุชนิดข้อมูลกำกับไว้ที่ตัวแปรหรือพารามิเตอร์ของฟังก์ชัน การทำแบบนี้ช่วยให้ Developer คนอื่นที่มาอ่านโค้ดของคุณรู้ทันทีว่าฟังก์ชันนี้ต้องการข้อมูลประเภทไหน และป้องกันไม่ให้โปรแกรมรับค่าผิดประเภทเข้ามาจนเกิดข้อผิดพลาด

การฝึกกำหนด Type ตั้งแต่วันแรกจะช่วยให้คุณกลายเป็นโปรแกรมเมอร์ที่มีมาตรฐานสูง คุณจะพบว่ามันช่วยลดเวลาการแก้บั๊กได้อย่างมหาศาล เพราะถ้าคุณพยายามส่งค่าเป็น string เข้าไปในฟังก์ชันที่ต้องการ int ตัวโปรแกรมจะแจ้งเตือนทันที แทนที่จะปล่อยให้ทำงานผิดพลาดแบบเงียบๆ

ลองดูตัวอย่างการเขียนฟังก์ชันที่กำหนด Type อย่างถูกต้อง:

<?php
// กำหนดให้รับเฉพาะ int และ return ค่าเป็น int
function add(int $a, int $b): int {
    return $a + $b;
}

echo add(5, 10); // ทำงานได้ปกติ
// echo add(5, "10"); // ใน PHP 8 หากเปิด Strict Mode จะแจ้งเตือนข้อผิดพลาด
?>

ในตัวอย่างนี้ เรากำหนดให้ $a และ $b ต้องเป็นจำนวนเต็มเท่านั้น และฟังก์ชันต้องคืนค่าเป็นจำนวนเต็มเสมอ การทำแบบนี้คือแนวปฏิบัติที่ดีที่สุด (Best Practice) ที่มืออาชีพเขาทำกัน เพื่อให้โค้ดมีความน่าเชื่อถือและตรวจสอบได้ง่าย

จุดที่มือใหม่มักพลาดและวิธีแก้ไข

ความผิดพลาดที่พบบ่อยที่สุดคือการลืมคำนึงถึงความแตกต่างระหว่าง string กับ int โดยเฉพาะเวลาที่รับข้อมูลจากฟอร์มหน้าเว็บ ซึ่งทุกอย่างมักจะถูกส่งมาเป็น string เสมอ หากเรานำเลข "10" (ที่เป็นข้อความ) ไปบวกกับ 5 บางครั้งโปรแกรมอาจทำงานได้ แต่ในระยะยาวจะนำไปสู่ปัญหาตรรกะที่หาจุดผิดยากมาก

อีกจุดหนึ่งคือเรื่อง null ซึ่งหมายถึงการที่ตัวแปรยังไม่มีค่าอะไรเลย มือใหม่มักลืมตรวจสอบว่าค่าที่รับมาเป็น null หรือไม่ก่อนจะนำไปใช้งาน ทำให้เกิด Error ประเภท "Trying to access property of non-object" วิธีแก้คือการใช้ Nullable Types ด้วยการเติมเครื่องหมาย ? หน้าชื่อ Type เช่น ?string เพื่อบอกว่าค่านี้เป็น string หรือ null ก็ได้

วิธีแก้ไขปัญหาเหล่านี้คือการฝึกใช้คำสั่ง var_dump() เพื่อตรวจสอบชนิดข้อมูลของตัวแปรนั้นๆ อยู่เสมอระหว่างพัฒนาโปรแกรม ดังนี้:

<?php
$input = "10";
var_dump($input); // จะแสดงผลว่าเป็น string(2) "10"
$number = (int)$input; // แปลง string เป็น int ให้ถูกต้อง
var_dump($number); // จะแสดงผลว่าเป็น int(10)
?>

การใช้ var_dump() จะทำให้คุณเห็น "ไส้ใน" ของข้อมูลอย่างชัดเจน อย่าเดาว่าข้อมูลที่อยู่ในตัวแปรคืออะไร ให้ตรวจสอบด้วยเครื่องมือนี้ทุกครั้งที่คุณสงสัย วิธีนี้จะช่วยให้คุณเข้าใจการทำงานของ PHP ได้ลึกซึ้งขึ้นเรื่อยๆ

สรุป: การนำไปใช้จริงในการพัฒนาซอฟต์แวร์

การเข้าใจ Scalar และ Compound Types คือพื้นฐานที่แยกโปรแกรมเมอร์มือสมัครเล่นออกจากมืออาชีพ คุณควรฝึกฝนการเขียนโค้ดโดยกำหนด Type ให้ชัดเจนเสมอตั้งแต่วันนี้ ในโปรเจกต์จริง เช่น การสร้างระบบสมาชิก คุณต้องระบุว่า username คือ string, age คือ int และ is_active คือ bool

การเขียนโค้ดที่รัดกุมด้วย Type คือการสื่อสารกับทีมและอนาคตของตัวคุณเอง เมื่อโปรเจกต์ใหญ่ขึ้นเรื่อยๆ โค้ดที่มีการระบุ Type ไว้ชัดเจนจะช่วยให้คุณแก้ไขฟีเจอร์ใหม่ได้โดยไม่ทำลายฟีเจอร์เก่า และช่วยให้ IDE (เครื่องมือช่วยเขียนโค้ด) แนะนำคำสั่งได้อย่างแม่นยำขึ้นมาก

เริ่มต้นจากการลองปรับเปลี่ยนโค้ดเก่าๆ ที่คุณเคยเขียน โดยเพิ่ม Type Hinting เข้าไปในทุกฟังก์ชัน หากคุณทำแบบนี้จนเป็นนิสัย คุณจะพบว่าตัวเองสามารถเขียนโปรแกรมที่ซับซ้อนได้โดยมีความมั่นใจมากขึ้น และมีจำนวนบั๊กที่ต้องแก้ลดลงอย่างเห็นได้ชัด นี่คือทักษะสำคัญที่บริษัทไอทีชั้นนำมองหาในตัว Developer ทุกคน

แชร์บทความ

Facebook X LINE

บทความที่เกี่ยวข้อง

สร้างระบบ Authentication ด้วย PHP 8: สอนทำระบบ Login และ Hash รหัสผ่านให้ปลอดภัย
PHP

สร้างระบบ Authentication ด้วย PHP 8: สอนทำระบบ Login และ Hash รหัสผ่านให้ปลอดภัย

เรียนรู้วิธีสร้างระบบ Authentication ด้วย PHP 8 ตั้งแต่การสมัครสมาชิก การ Hash รหัสผ่านด้วย password_hash ไปจนถึงการทำระบบ Login และ Protected Dashboard

1 month ago 7 นาที
21 views
สอน PHP 8 จัดการฐานข้อมูล CRUD: วิธี UPDATE และ DELETE ข้อมูลอย่างปลอดภัยด้วย Bind Parameters
PHP

สอน PHP 8 จัดการฐานข้อมูล CRUD: วิธี UPDATE และ DELETE ข้อมูลอย่างปลอดภัยด้วย Bind Parameters

เรียนรู้วิธีแก้ไขและลบข้อมูลในฐานข้อมูลด้วย PHP 8 และ PDO พร้อมเทคนิคการใช้ Bind Parameters เพื่อป้องกัน SQL Injection สำหรับมือใหม่หัดเขียนเว็บ

1 month ago 6 นาที
20 views
สอนเขียน PHP 8 เชื่อมต่อฐานข้อมูลด้วย PDO ทำ CRUD อย่างปลอดภัย ป้องกัน SQL Injection
PHP

สอนเขียน PHP 8 เชื่อมต่อฐานข้อมูลด้วย PDO ทำ CRUD อย่างปลอดภัย ป้องกัน SQL Injection

เรียนรู้วิธีจัดการฐานข้อมูลด้วย PHP 8 ผ่าน PDO อย่างมืออาชีพ พร้อมเทคนิคการใช้ Prepared Statements เพื่อป้องกัน SQL Injection สำหรับมือใหม่หัดเขียนเว็บ

1 month ago 7 นาที
21 views