ประเภท หรือชนิดของตัวแปรภาษา PHP ตัวแปรทุกตัวที่เราสร้างขึ้นมาต้องมีประเภทของตัวแปร ประเภทของตัวแปรหรือชนิดของตัวแปร จะทำหน้าที่บอกว่าตัวแปรดังกล่าวทำหน้าที่เก็บข้อมูลประเภทอะไร เช่น ตัวแปรตัวนี้เก็บข้อมูลตัวเลข นั้นหมายความว่าตัวแปรดังกล่าวเป็นประเภทตัวเลข (Integers) หรือ int เป็นต้น ซึ่งภาษา PHP สามารถแบ่งประเภทของตัวแปรได้เป็น 10 ประเภทข้อมูล โดยแบ่งตามกลุ่มได้ดังนี้
1. กลุ่มประเภทข้อมูลพื้นฐาน (scalar types) คือ ประเภทข้อมูลที่ทำหน้าที่เก็บข้อมูลพื้นฐานที่เราคุ้นเคย เช่น ตัวเลข ตัวอักษร โดยมี 4 ประเภทข้อมูล คือ
1.1 bool คือ ประเภทข้อมูลที่มีค่าได้เพียง 2 ค่า คือ จริง (true) หรือเท็จ (false)
1.2 int คือ ประเภทข้อมูลแบบตัวเลข ทั้งตัวเลขจำนวนเต็มบวก เช่น 10, 20 และตัวเลขจำนวนเต็มลบ -10, -20
1.3 float คือ ประเภทข้อมูลแบบตัวเลขทศนิยม เช่น 10.53, -9.30
1.4 string คือ ประเภทข้อมูลแบบชุดตัวอักษร หรือ ข้อความ เช่น สวัสดี, ลาก่อน หรือตัวอักษร A, B
ตัวอย่างการสร้างตัวแปรแบบกลุ่มประเภทข้อมูลพื้นฐาน
<?php
$b = true;
$i = 10;
$f = 25.53;
$s = "apple";
?>
2. กลุ่มประเภทข้อมูลที่เกี่ยวข้องกับความหลากหลายข้อมูล หรือโครงสร้างข้อมูล (compound types) คือ ประเภทข้อมูลที่มีความหลากหลาย หรือมีรูปแบบเชิงโครงสร้างข้อมูลที่มีความซับซ้อนและมีรูปแบบที่ยืดหยุ่นตามโครงสร้างของแต่ละประเภท โดยมี 4 ประเภทข้อมูล คือ
2.1 array คือ ประเภทข้อมูลที่มีการเก็บในรูปแบบของแถวเรียงลำดับกันไป โดยข้อมูลจะมีความเกี่ยวข้องกับ key และ value เป็นโครงสร้างข้อมูลที่สำคัญ และถูกนำมาใช้งานบ่อย
2.2 object คือ ประเภทข้อมูลแบบวัตถุ เกี่ยวข้องกับการเขียนโปรแกรมเชิงวัตถุ (OOP)
2.3 callable คือ ประเภทข้อมูลที่ทำให้เราสามารถส่ง function เข้าไปในอีก function ที่เรากำลังเรียกใช้งานได้ ผ่านคำสั่ง callable
2.4 iterable คือ ประเภทข้อมูลใดๆ ที่สามารถนำไปวนลูปได้ด้วย iterable ร่วมกับคำสั่ง foreach
ตัวอย่างการสร้างตัวแปรแบบ array และแบบ object
<?php
// array
$a = array("apple", "mango", "banana", "orange");
// object
class MyObejct {
}
// callable
function myWorld($msg) {
return $msg." world";
}
function myRoom($msg) {
return $msg." room";
}
function printHello( callable $format, $msg ) {
echo $format($msg);
echo "<br>";
}
printHello("myWorld", "Hello");
printHello("myRoom", "Hello");
// iterable
function myIterable(iterable $_iterable) {
foreach($_iterable as $item) {
echo $item."<br/>";
}
}
$a = ["apple", "orange", "mango"];
myIterable($a);
?>
3. กลุ่มประเภทข้อมูลแบบพิเศษ (special types) คือ กลุ่มประเภทข้อมูลที่ทำหน้าที่เฉพาะเจาะจงเพื่อวัตถุประสงค์บางอย่างเพียงเท่านั้น มี 2 ประเภทข้อมูล คือ
3.1 resource คือ รูปแบบการจัดเก็บแบบพิเศษ ใช้สำหรับเก็บค่าอ้างอิงฟังก์ชัน หรือการใช้ทรัพยากรจากภายนอกของ PHP เช่น การเชื่อมต่อฐานข้อมูล MySQL และเก็บค่าการเชื่อมต่อไว้ในตัวแปรภาษา PHP
3.2 NULL คือ ประเภทข้อมูลแบบไม่มีค่า เป็นไปได้ว่า ตัวแปรถูกกำหนดให้เป็น NULL หรือตัวแปรดังกล่าวไม่ได้ถูกกำหนดค่าตอนสร้างขึ้นมา
<?php
// resource
$conn = mysqli_connect("localhost","root","admin","");
// null
$n = NULL;
?>