การประกาศและใช้งานเนมสเปซ
ครอบคลาสไว้ในเนมสเปซและนำเข้าโดยใช้คำสั่ง use
การประกาศและใช้งานเนมสเปซ เป็นบทเรียน PHP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน PHP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน
เนมสเปซคืออะไร
เนมสเปซใช้จัดกลุ่มคลาส ฟังก์ชัน และค่าคงที่ที่เกี่ยวข้องกัน เพื่อหลีกเลี่ยงชื่อชนกันระหว่างไลบรารี
การประกาศเนมสเปซ
ใช้คีย์เวิร์ด namespace เป็นคำสั่งแรกในไฟล์ PHP (หลัง <?php)
<?php
namespace App\Services;
class Logger {
public function log(string $msg): void {
echo $msg;
}
}ส่วนประกอบของเนมสเปซ
ส่วนประกอบจะแยกจากกันด้วยแบ็กสแลช (\) โดยทั่วไปแต่ละส่วนจะสอดคล้องกับไดเรกทอรีหนึ่งรายการในการโหลดอัตโนมัติแบบ PSR-4
การนำเข้าด้วย use
คีย์เวิร์ด use ใช้นำเข้าชื่อคลาสแบบเต็ม เพื่อให้คุณอ้างอิงคลาสนั้นด้วยชื่อย่อ
<?php
namespace App\Controllers;
use App\Services\Logger;
class HomeController {
public function index(): void {
$logger = new Logger();
$logger->log("visited");
}
}ชื่อแบบเต็ม
อ้างอิงคลาสโดยไม่ใช้ use ได้ด้วยการเติมแบ็กสแลชไว้ข้างหน้า
<?php
$logger = new \App\Services\Logger();
$logger->log("Hello");เนมสเปซส่วนกลาง
โค้ดที่ไม่มีเนมสเปซจะอยู่ในเนมสเปซส่วนกลาง คลาสที่มีมาให้ในระบบ เช่น \DateTime ก็อยู่ที่นั่นเช่นกัน ภายในเนมสเปซ ให้เติม \ ไว้ข้างหน้า
การนำเข้าฟังก์ชันและค่าคงที่
ใช้ use function และ use const เพื่อนำเข้าสัญลักษณ์ที่ไม่ใช่คลาส
<?php
namespace App;
use function App\Utils\formatDate;
use const App\Utils\DATE_FORMAT;
echo formatDate(time(), DATE_FORMAT);คำสั่ง use แบบจัดกลุ่ม
นำเข้าสัญลักษณ์หลายรายการในบล็อก use แบบจัดกลุ่มเดียวกันได้ (PHP 7 ขึ้นไป)
<?php
use App\Models\{User, Post, Comment};หนึ่งเนมสเปซต่อหนึ่งไฟล์
อนุญาตให้ประกาศเนมสเปซหลายรายการในไฟล์เดียวได้ แต่ไม่แนะนำ ควรใช้หนึ่งเนมสเปซต่อหนึ่งไฟล์เพื่อความชัดเจนและความเข้ากันได้กับตัวโหลดอัตโนมัติ
รูปแบบที่ใช้กันทั่วไป
Laravel และ Symfony ใช้ App\ เป็นเนมสเปซราก ซึ่งแมปกับ src/ หรือ app/ ใน composer.json
การจัดระเบียบเนมสเปซย่อย
จัดกลุ่มตามฟีเจอร์หรือชั้นของระบบ: App\Http\Controllers, App\Domain\Orders, App\Infrastructure\Database
ทบทวนเนมสเปซ
ประเด็นสำคัญ: namespace ต้องเป็นคำสั่งแรก, use ใช้นำเข้าสัญลักษณ์, แบ็กสแลชใช้แยกส่วนประกอบ และเติม \ ข้างหน้าคลาสส่วนกลางเมื่ออยู่ภายในเนมสเปซ
ตรวจสอบความเข้าใจอย่างรวดเร็ว
คีย์เวิร์ดใดใช้สำหรับนำเข้าคลาสจากเนมสเปซอื่น
คำถามที่พบบ่อย
บทเรียน “การประกาศและใช้งานเนมสเปซ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การประกาศและใช้งานเนมสเปซ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส PHP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การประกาศและใช้งานเนมสเปซ”
ครอบคลาสไว้ในเนมสเปซและนำเข้าโดยใช้คำสั่ง use คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน PHP Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน PHP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การประกาศและใช้งานเนมสเปซ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน PHP Academy นี้ได้ไหม
ได้ บทเรียน PHP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การประกาศและใช้งานเนมสเปซ
- เนมสเปซซ้อนกันและชื่อแฝง
- มาตรฐานการโหลดอัตโนมัติ PSR-4
- การลงทะเบียนตัวโหลดอัตโนมัติ