Borsa Youtube kanalımız ve Twitter hesabımız 08 Haziran 2023 tarihinden itibaren yayında...
PHP 5.3.0 ile birlikte gelen isim alanlarını kullanarak, bir projede kullanılan sınıfları daha düzgün bir şekilde gruplandırabilir ve farklı isim alanlarında tanımlanan birden fazla sınıfın aynı sınıf ismi ile tanınlanmasını sağlayabiliriz.
İsim alanları PHP'de kullanılan tüm öğeleri barındırılabilir. Aynı isime sahip sınıf, fonksiyon ve sabit değerleri farklı isim alanları içinde tanımlanarak kullanılabilir.
İsim alanlarında her tür PHP kodu bulunabilmesine karşın sadece sınıflar, fonksiyonlar ve sabitler isim alanlarından etkilenir.
İsim alanlarının bildirimi namespace anahtar kelimesi ile yapılır.
Bir isim alanını içeren bir dosyada isim alanı diğer tüm kodlardan önce dosyanın başında bildirilmelidir. Bu kurala tek istisna declare anahtar kelimesidir. Dosya başında yer alan boşluklar, <html> ve <body> ifadeleri dahil olmak üzere hiç bir ifade bir isim alanı bildiriminden önce yer alamaz.
<?php
namespace name_bizim; // İsim alanı bildirimi
const CONBOOL = 1;
class sinif_bizim { /* ... */ }
function deger_goster() { /* ... */ }
?>
<?php
namespace name_bizim;
class sinif_bizim { // İsim alanı içinde sınıf bildirimi
public $pubdeg01;
public $pubdeg02;
function __construct ($arg01, $arg02)
{
$this->pubdeg01 = $arg01;
$this->pubdeg02 = $arg02;
}
public function deger_yaz()
{
echo $this->pubdeg01 . " " . $this->pubdeg02 . '<br/>';
}
}
function fonk($arg) { // İsim alanı içinde fonksiyon bildirimi
echo $arg;
}
const CONINT = 17; // İsim alanı içinde sabit bildirimi
$obj01 = new sinif_bizim(35, 84); // İsim alanındaki sınıftan nesne oluşturma
$obj02 = new \name_bizim\sinif_bizim(42, 57); // İsim alanındaki sınıftan yol tanımı ile nesne oluşturma
$obj01->deger_yaz();
$obj02->deger_yaz();
echo CONINT;
?>
Yukarıdaki dosyayı çalıştırdığımızda, web tarayıcımızda aşağıdaki ifadeler karşımıza çıkar::
35 84 42 57 17