ความรู้เบื้องต้นเกี่ยวกับเนมสเปซใน OOP ใน PHP
หากเมื่อเรียกใช้สคริปต์ PHP มีสองคลาสที่มีชื่อเหมือนกัน พวกมันจะขัดแย้งกัน ซึ่งจะทำให้เกิดข้อผิดพลาดร้ายแรง (Fatal error) ที่จริงแล้วนี่ไม่สะดวกเท่าไหร่ เพราะต้องคอยตรวจสอบความไม่ซ้ำกันของชื่ออยู่ตลอด
ตัวอย่างเช่น ลองพิจารณาสถานการณ์ต่อไปนี้: คุณมีเว็บไซต์ที่มีผู้ใช้และผู้ดูแลระบบ โดยในโฟลเดอร์ users เก็บคลาสสำหรับผู้ใช้ และในโฟลเดอร์ admin เก็บคลาสสำหรับผู้ดูแลระบบ
สมมติว่าทั้งผู้ใช้และผู้ดูแลระบบต้องการคลาส Page บางคลาสที่รับผิดชอบเกี่ยวกับหน้าต่างๆ ของเว็บไซต์ โดยที่ผู้ใช้จะมีคลาสของตัวเอง และผู้ดูแลระบบก็มีของตัวเอง ในกรณีเช่นนี้ เราก็จะพบกับปัญหาความขัดแย้งของชื่อ
วิธีแก้ไขความขัดแย้งนี้ที่ง่ายที่สุดคือ การตั้งชื่อคลาสที่แตกต่างกัน เช่น UsersPage และ AdminPage อย่างไรก็ตาม วิธีนี้จะนำไปสู่การมีชื่อคลาสที่ยาวมากๆ ในที่สุด
ใน PHP มีอีกวิธีหนึ่งในการแก้ไขปัญหานี้ คือ เนมสเปซ (Namespaces) แนวคิดมีดังนี้: แต่ละคลาสสามารถอยู่ในเนมสเปซใดเนมสเปซหนึ่ง และความไม่ซ้ำกันของชื่อคลาสต้องเป็นไปตามเนมสเปซนั้นๆ เท่านั้น
นั่นคือ เพื่อแก้ไขปัญหาของเรา เราสามารถทำได้ดังนี้: นำคลาส Page หนึ่งคลาสไปไว้ในเนมสเปซใดเนมสเปซหนึ่ง ตัวอย่างเช่น Users และนำอีกคลาส Page ไปไว้ในเนมสเปซอื่น ตัวอย่างเช่น Admin