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