Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Từ khóa namespace và hằng số __NAMESPACE__ trong PHP

Giới thiệu

Trong PHP, từ khóa namespace dùng để định nghĩa namespace. Nó cũng dùng như một toán tử để yêu cầu truy cập phần tử nhất định trong namespace hiện tại. Hằng số __NAMESPACE__ trả về tên namespace hiện tại.

Hằng số __NAMESPACE__

Từ named namespace, __NAMESPACE__ trả về tên của nó; đối với global và unnamed namespace, nó trả về chuỗi rỗng.

Ví dụ: Global namespace

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

Kết quả

name of global namespace :

Ví dụ: Named namespace

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

Kết quả

name of current namespace : myspace

Xây dựng tên động (Dynamic name construction)

__NAMESPACE__ hữu ích cho việc xây dựng tên động:

<?php
namespace MyProject;
class myclass {
    function hello() { echo "hello world"; }
}
$cls = "myclass";
function get($cls) {
    $a = __NAMESPACE__ . '\\' . $cls;
    return new $a;
}
get($cls)->hello();
?>

Kết quả

hello world

Toán tử namespace

Từ khóa namespace có thể dùng như tương đương của toán tử self cho class để yêu cầu tường minh một phần tử từ namespace hiện tại hoặc sub-namespace.

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

Kết quả

hello Myspace

Từ global namespace, toán tử namespace tham chiếu đến function/class trong namespace hiện tại (là global namespace):

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

Kết quả

hello global space