136   PHP ไม่ควรใช้ gettype() เพราะทำงานช้าและมีจุดบกพร่อง

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

// YES!
if (is_array($arr)) { ...
 
http://php.net/manual/en/function.gettype.php

Credit: Admin (phpinfo.in.th)
Back to Top