>> รู้หมือไร่ <<
เมื่อมีการถามถึงฟังก์ชั่นที่ใช้ในการตรวจสอบชนิดของตัวแปรใน PHP
ฟังก์ชั่นที่มักจะถูกนึกถึงเป็นอันดับแรกคือ gettype()
ที่ให้ผลลัพธ์เป็นสตริงเช่น
gettype(1)
gettype('PHP')
gettype([1, 2, 3])
แต่ในกรณีที่ต้องการตรวจว่าค่านั้นๆ เป็นชนิดใดชนิดหนึ่ง ควรใช้ฟังก์ชั่นที่ระบุชนิดโดยตรง
เช่น
is_int(), is_string(), is_array()
ไม่ควรใช้ gettype()
เพราะทำงานช้ากว่าฟังก์ชั่นเหล่านั้นมาก
และ gettype() ยังมีจุดบกพร่องคือ ให้ผลลัพธ์ที่ไม่เข้ากันกับ Type Hinting
เช่นให้ "boolean" แทนที่จะเป็น "bool" หรือ "integer" แทนที่จะเป็น "int"
หรือที่ดูประหลาดที่สุดคือ "double" แทนที่จะเป็น "float"
if (gettype($arr) === 'array') { ...
if (is_array($arr)) { ...