ความแตกต่างระหว่าง (int) และ intval()
ทั้ง (int) และ intval() ใช้สำหรับการแปลงตัวอักษรเป็นตัวเลขเหมือนๆกัน แต่ทั้งสองวิธีมีข้อแตกต่างกันเล็กน้อย ซึ่งตามคู่มือของ PHP ระบุว่า
ทิป ในกรณ๊ที่ต้องการทดสอบว่าตัวแปรมีค่าเป็นศูนย์หรือไม่ ผมแนะนำให้ทดสอบด้วย empty() ก่อน แล้วค่อยแปลงเป็น integer ทีหลัง เนื่องจากฟังก์ชั่น empty() มีความเร็วในการทดสอบว่าตัวแปรมีค่าเป็น 0 หรือไม่เร็วกว่าการใช้ (int) อยู่หลายเท่าตัวทีเดียว
วิธีด้านบนเร็วกว่าวิธีด้านล่าง โดยเฉพาะหาก $y = 0
- intval() เป็นฟังก์ชั่นแปลงค่าตัวแปรเป็น integer ซึ่งรองรับการแปลงเลขฐานต่างๆ เช่น ฐานแปด ฐานสิบ (ค่าเริ่มต้นคือฐานสิบ)
- (int) เป็น type cast ทำหน้าที่ในการแปลงค่าของตัวแปรเท่านั้น
ทิป ในกรณ๊ที่ต้องการทดสอบว่าตัวแปรมีค่าเป็นศูนย์หรือไม่ ผมแนะนำให้ทดสอบด้วย empty() ก่อน แล้วค่อยแปลงเป็น integer ทีหลัง เนื่องจากฟังก์ชั่น empty() มีความเร็วในการทดสอบว่าตัวแปรมีค่าเป็น 0 หรือไม่เร็วกว่าการใช้ (int) อยู่หลายเท่าตัวทีเดียว
if ($empty($y)) {
// do some thing
} else {
$y = (int)$y;
// do some thing
}
วิธีด้านบนเร็วกว่าวิธีด้านล่าง โดยเฉพาะหาก $y = 0
$y = (int)$y;
if ($y == 0) {
// do some thing
} else {
// do some thing
}