คำตอบคือไม่ เนื่องจาก 0123 หมายถึง 123 ที่มีฐาน 8 (เลขฐานแปด) และเลขฐานสิบเท่ากันคือ 83
นำหน้าตัวเลขด้วย 0 แสดงว่าเป็นเลขฐานแปด (ฐาน 8) ซึ่งคล้ายกับข้อเท็จจริงที่ว่า 0x หมายถึงตัวเลขฐานสิบหก (ฐาน 16)
พิจารณาบรรทัดโค้ดด้านล่าง -
ตัวอย่าง
var_dump(123); var_dump(0123);
ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
int 123 int 83
นี่เป็นเพราะความจริงที่ว่า 0123 เป็นสัญกรณ์ฐานแปด (สังเกต 0 ที่จุดเริ่มต้น) ในขณะที่ 123 เป็นเลขฐานสิบ
ตอนนี้ให้พิจารณารหัสด้านล่าง -
ตัวอย่าง
var_dump(79); var_dump(079);
ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
int 79 int 7