Tworząc bardziej zaawansowane skrypty PHP, które są tworzone z myślą o ich załączaniu często zachodzi konieczność zastosowania przestrzeni nazw, by uniknąć kolidowania nazw utworzonych funkcji czy deklaracji klas z kodem innego skryptu. Bardzo ważne też jest, aby kod określający przestrzeń nazw był umieszczony w pierwszej linijce pliku. Oto przykład:
<?php namespace my_namespace; // nazwa przestrzeni nazw
function myFunction(){
echo("<p>" . __FUNCTION__ . "</p>");
}
class myClass{
public function myMethod(){
echo("<p>Namespace: " . __NAMESPACE__ . "</p>");
}
}
?>
Powyższy kod zapisany do pliku np. file.php można załączyć i wykorzystać w innym skrypcie w następujący sposób:
<?php
require("file.php");
$obj = new my_namespace\myClass();
$obj->myMethod();
my_namespace\myFunction();
?>
Wynik działania powyższego kodu:
Namespace: my_namespace
my_namespace\myFunction
Operator jest tutaj znakiem separującym od przestrzeni nazw. Aby ułatwić sobie życie można skrócić nazwę przestrzeni nazw w następujący sposób:
<?php
require("file.php");
use my_namespace as mnsp;
$obj = new mnsp\myClass();
$obj->myMethod();
mnsp\myFunction();
?>
Przestrzenie nazw można również zapisywać z klamrami w następujący sposób:
<?php namespace my_namespace{ // nazwa przestrzeni nazw
function myFunction(){
echo("<p>" . __FUNCTION__ . "</p>");
}
class myClass{
public function myMethod(){
echo("<p>Namespace: " . __NAMESPACE__ . "</p>");
}
}
}
?>
Możliwe jest również zagnieżdżanie przestrzeni nazw np. tak: