Giriş

(PHP 5 >= 5.3.0, PHP 7)

İsim alanı nedir? En dar tanımıyla, öğeleri sarmalamanın bir yoludur. Çoğu bakımdan bu soyut bir kavram gibi görünebilir. Örneğin, bir işletim sisteminin dizinleri bir birleriyle ilgili dosyaları gruplamaya yarar ve içerdiği dosyalar için bir isim alanı görevi yapar. Daha belirgin bir örnek olarak, /home/ali ve /home/veli dizinlerinde mesela.txt adında birer dosya bulunduğunu varsayalım. /home/ali dizinindeki dosyaya dizin dışından erişmek istersek dosyanın önüne dizin ayracı ile dizin adını yerleştiririz. Programcılık dünyasındaki isim alanlarına da aynı kurallar uygulanır.

Sürüm: Açıklama
7.0.0 Gruplu use bildirimleri eklendi.

PHP dünyasında isim alanları, kütüphane ve uygulama yazarlarının aşağıdaki gibi sınıflar ve işlevler gibi yeniden kullanılabilir elemanları oluşturken karşılaştıkları iki soruna çözüm getirmek amacıyla tasarlanmıştır:

  1. Yazdığınız kod ile yerleşik PHP sınıfları/işlevleri/sabitleri veya üçüncü şahısların sınıfları/işlevleri/sabitleri arasındaki isim çakışmaları.
  2. İlk sorunu hafifletmek ve kaynak kodun okunabilirliğini arttırmak için epeyce_uzun_isimlere takma ad tanımlama (veya kısaltma) yeteneği.

PHP isim alanları birbirleriyle ilişkili sınıflar, arayüzler, sabitler ve işlevleri gruplamak için bir yol sunar. PHP'deki isim alanı söz dizimi için bir örnek:

Örnek 1 - İsim alanı söz dizimi örneği

<?php
namespace isim\alanım// "İsim Alanlarının Tanımlanması" bölümüne bakınız

class Sınıfım {}
function 
işlevim() {}
const 
SABİTİM 1;

$a = new Sınıfım;
$c = new \isim\alanım\Sınıfım// "Küresel Etki Alanı" bölümüne bakınız

$a strlen('selam'); // "İsim alanlarının kullanımı: Son çare olarak
                      // küresel işlev ve sabitler" bölümüne bakınız

$d = \isim\alanım\SABİTİM;        // isim alanı işleci ve __NAMESPACE__
$d __NAMESPACE__ '\SABİTİM';  // sabiti" bölümüne bakınız
echo constant($d); // "İsim alanları ve devingen dil özellikleri"
                   // bölümüne bakınız
?>

Bilginize: İsim alanı isimleri harf büyüklüğüne duyarlıdır.

Bilginize:

İsim alanı ismi olarak PHP ve PHP\Classes gibi bu isimle başlayan bileşik isimler dahili dil kullanımına ayrılmış olup kullanıcı yazılımlarında kullanılmamalıdır.