Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

PHP namespace keyword และ __NAMESPACE__ Constant

บทนำ

ใน PHP คีย์เวิร์ด namespace ใช้ Define Namespace และใช้เป็น Operator ขอเข้าถึง Element ใน Current Namespace ค่าคงที่ __NAMESPACE__ คืนชื่อ Current Namespace

__NAMESPACE__ Constant

  • ใน Named Namespace: คืนชื่อ Namespace
  • ใน Global/Unnamed Namespace: คืน Empty String

ตัวอย่าง Global Namespace

<?php
echo "name of global namespace: " . __NAMESPACE__ . "\n";
?>

ผลลัพธ์

name of global namespace: 

ตัวอย่าง Named Namespace

<?php
namespace myspace;
echo "name of current namespace: " . __NAMESPACE__ . "\n";
?>

ผลลัพธ์

name of current namespace: myspace

Dynamic Name Construction

__NAMESPACE__ ใช้สร้างชื่อแบบ Dynamic ได้:

<?php
namespace MyProject;
class myclass {
    function hello() { echo "hello world"; }
}

$cls = "myclass";
function get($cls) {
    $a = __NAMESPACE__ . '\\' . $cls;
    return new $a;
}
get($cls)->hello();
?>

ผลลัพธ์

hello world

Namespace Operator

คีย์เวิร์ด namespace ใช้เป็น Operator เทียบเท่า self สำหรับ Class เพื่อขอ Element จาก Current/Sub-namespace อย่างชัดเจน:

<?php
namespace Myspace;
class myclass {
    function hello() { echo "hello Myspace"; }
}
$a = new namespace\myclass();
$a->hello();
?>

ผลลัพธ์

hello Myspace

จาก Global Namespace

Namespace Operator ใน Global Space อ้างถึง Global Class:

<?php
class myclass {
    function hello() { echo "hello global space"; }
}
$a = new namespace\myclass();
$a->hello();
?>

ผลลัพธ์

hello global space

สรุปการใช้งาน

การใช้งานตัวอย่างหมายเหตุ
Define Namespacenamespace MyApp;Statement แรกในไฟล์
__NAMESPACE__echo __NAMESPACE__;Magic Constant
Namespace Operatornew namespace\MyClass()เหมือน self สำหรับ namespace
Sub-namespace Accessnamespace\Sub\ClassRelative to current