<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.namespaces.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'language.namespaces.importing.php',
    1 => 'Takma ad ve İthal',
    2 => 'İsim alanlarının kullanımı: İthal ve Takma ad',
  ),
  'up' => 
  array (
    0 => 'language.namespaces.php',
    1 => 'İsim Alanları',
  ),
  'prev' => 
  array (
    0 => 'language.namespaces.nsconstants.php',
    1 => 'namespace s&ouml;zc&uuml;ğ&uuml; ve __NAMESPACE__',
  ),
  'next' => 
  array (
    0 => 'language.namespaces.global.php',
    1 => 'K&uuml;resel alan',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'language/namespaces.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="language.namespaces.importing" class="sect1">
  <h2 class="title">İsim alanlarının kullanımı: İthal ve Takma ad</h2>
  
  <p class="verinfo">(PHP 5 &gt;= 5.3.0, PHP 7, PHP 8)</p>
  <p class="para">
    Dış kaynaklı tamamen nitelenmiş bir isme bir takma adla veya ithal
    ederek başvurma yeteneği isim alanlarının önemli bir özelliğidir. Bu
    özellik, Unix dosya sistemlerinin bir dizin veya dosyaya bir sembolik
    bağ oluşturma yeteneğine benzer.
  </p>
  <p class="para">
   PHP sabitler, işlevler, sınıflar, arayüzler, nitelikler, sayılamalar
   ve isim alanlarına takma ad verilmesini ve ithalini destekler.
  </p>
  <p class="para">
   Takma ad kullanımı <code class="literal">use</code> işleci üzerinden sağlanır.
   Aşağıda 5 çeşidin de ithal örneğine yer verilmiştir:
   <div class="example" id="example-1">
    <p><strong>Örnek 1 - <code class="code">use</code> işleci ile ithal/takma ad kullanımı</strong></p>
    <div class="example-contents">
     <div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">namespace </span><span style="color: #0000BB">fan</span><span style="color: #007700">;<br />use </span><span style="color: #0000BB">Bir\Tam\Sınıfadı </span><span style="color: #007700">as </span><span style="color: #0000BB">BirBaşkası</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// use Bir\Tam\iAadı as iAadı ile aynıdır<br /></span><span style="color: #007700">use </span><span style="color: #0000BB">Bir\Tam\iAadı</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// küresel bir sınıfın ithali<br /></span><span style="color: #007700">use </span><span style="color: #0000BB">DiziNesnesi</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// bir işlevin ithali<br /></span><span style="color: #007700">use function </span><span style="color: #0000BB">Bir\Tam\işlevAdı</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// bir işleve takma ad<br /></span><span style="color: #007700">use function </span><span style="color: #0000BB">Bir\Tam\işlevAdı </span><span style="color: #007700">as </span><span style="color: #0000BB">func</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// bir sabitin ithali<br /></span><span style="color: #007700">use const </span><span style="color: #0000BB">Bir\Tam\SABİT</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$nesne </span><span style="color: #007700">= new </span><span style="color: #0000BB">namespace\BirBaşkası</span><span style="color: #007700">; </span><span style="color: #FF8000">// fan\BirBaşkası sınıfını örnekler<br /></span><span style="color: #0000BB">$nesne </span><span style="color: #007700">= new </span><span style="color: #0000BB">BirBaşkası</span><span style="color: #007700">; </span><span style="color: #FF8000">// Bir\Tam\Sınıfadı  sınıfını örnekler<br /></span><span style="color: #0000BB">iAadı\altia\işlev</span><span style="color: #007700">(); </span><span style="color: #FF8000">// Bir\Tam\iAadı\altia\işlev işlevini çağırır<br /></span><span style="color: #0000BB">$a </span><span style="color: #007700">= new </span><span style="color: #0000BB">DiziNesnesi</span><span style="color: #007700">(array(</span><span style="color: #0000BB">1</span><span style="color: #007700">)); </span><span style="color: #FF8000">// DiziNesnesi sınıfını örnekler<br />// "use DiziNesnesi" olmasaydı fan\DiziNesnesi sınıfını örneklerdik<br /></span><span style="color: #0000BB">func</span><span style="color: #007700">(); </span><span style="color: #FF8000">// Bir\Tam\işlevAdı işlevini çağırır<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">SABİT</span><span style="color: #007700">; </span><span style="color: #FF8000">// Bir\Tam\SABİT değerini basar<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
   İsim alanlı adlar için baştaki terbölü gereksiz olup önerilmediği
   gibi bunlar geçerli isim alanına göre işlenmezler. İthal edilen isimler
   ise tamamen nitelenmiş olmalıdır. (Tamamen nitelenmiş isimler
   <code class="literal">Fan\Fin</code> şeklinde isim alanı ayracı içermelerine karşın
   küresel isimler <code class="literal">FanFin</code> şeklinde isim alanı ayracı
   içermezler.)
  </p>
  <p class="para">
   PHP bunlara ek olarak çok sayıda <code class="code">use</code> deyiminin aynı satırda
   kullanılmasına imkan veren bir kısayola da sahiptir.
   <div class="example" id="example-2">
    <p><strong>Örnek 2 - <code class="code">use</code> işleci ile rumuz/ithal, çoklu <code class="code">use</code>
      kullanımı</strong></p>
    <div class="example-contents">
     <div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">use </span><span style="color: #0000BB">Bir\Tam\Sınıfadı </span><span style="color: #007700">as </span><span style="color: #0000BB">BirBaşkası</span><span style="color: #007700">, </span><span style="color: #0000BB">Bir\Tam\iAadı</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$nesne </span><span style="color: #007700">= new </span><span style="color: #0000BB">BirBaşkası</span><span style="color: #007700">; </span><span style="color: #FF8000">// Bir\Tam\Sınıfadı sınıfını örnekler<br /></span><span style="color: #0000BB">iAadı\altia\işlev</span><span style="color: #007700">();     </span><span style="color: #FF8000">// Bir\Tam\iAadı\altia\işlev işlevini çağırır<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
  <p class="para">
   İthal işlemi derleme sırasında yerine getirilir ve dolayısıyla dinamik
   sınıf, işlev ve sabit isimlerini etkilemez.
   <div class="example" id="example-3">
    <p><strong>Örnek 3 - İthal işlemi ve dinamik isimler</strong></p>
    <div class="example-contents">
     <div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">use </span><span style="color: #0000BB">Bir\Tam\Sınıfadı </span><span style="color: #007700">as </span><span style="color: #0000BB">BirBaşkası</span><span style="color: #007700">, </span><span style="color: #0000BB">Bir\Tam\iAadı</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$nesne </span><span style="color: #007700">= new </span><span style="color: #0000BB">BirBaşkası</span><span style="color: #007700">; </span><span style="color: #FF8000">// Bir\Tam\Sınıfadı sınıfını örnekler<br /></span><span style="color: #0000BB">$a </span><span style="color: #007700">= </span><span style="color: #DD0000">'BirBaşkası'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$nesne </span><span style="color: #007700">= new </span><span style="color: #0000BB">$a</span><span style="color: #007700">;         </span><span style="color: #FF8000">// BirBaşkası sınıfını örnekler<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
  <p class="para">
   Bunlara ek olarak, ithal işlemi sadece nitelenmemiş ve nitelenmiş
   isimleri etkiler. Tamamen nitelenmiş isimler mutlak olup ithal işleminden
   etkilenmez.
   <div class="example" id="example-4">
    <p><strong>Örnek 4 - İthal işlemi ve tamamen nitelenmiş isimler</strong></p>
    <div class="example-contents">
     <div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">use </span><span style="color: #0000BB">Bir\Tam\Sınıfadı </span><span style="color: #007700">as </span><span style="color: #0000BB">BirBaşkası</span><span style="color: #007700">, </span><span style="color: #0000BB">Bir\Tam\iAadı</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$nesne </span><span style="color: #007700">= new </span><span style="color: #0000BB">BirBaşkası</span><span style="color: #007700">;       </span><span style="color: #FF8000">// Bir\Tam\Sınıfadı sınıfını örnekler<br /></span><span style="color: #0000BB">$nesne </span><span style="color: #007700">= new </span><span style="color: #0000BB">\BirBaşkası</span><span style="color: #007700">;        </span><span style="color: #FF8000">// BirBaşkası sınıfını örnekler<br /></span><span style="color: #0000BB">$nesne </span><span style="color: #007700">= new </span><span style="color: #0000BB">BirBaşkası\birşey</span><span style="color: #007700">;  </span><span style="color: #FF8000">// Bir\Tam\Sınıfadı\birşey sınıfını örnekler<br /></span><span style="color: #0000BB">$nesne </span><span style="color: #007700">= new </span><span style="color: #0000BB">\BirBaşkası\birşey</span><span style="color: #007700">; </span><span style="color: #FF8000">// BirBaşkası\birşey sınıfını örnekler<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
  <div class="sect2" id="language.namespaces.importing.scope">
   <h3 class="title">İthal etki alanı kuralları</h3>
   <p class="para">
    <code class="literal">use</code> anahtar sözcüğü bir dosyanın en dış etki alanında
    veya isim alanı bildirimleri içinde kullanılmalıdır. Bunun sebebi ithal
    işleminin çalışma zamanında değil derleme sırasında yapılmasıdır,
    dolayısıyla bir bloğun etki alanında olamaz. Aşağıdaki örnekte uygun
    olmayan <code class="literal">use</code> kullanımı gösterilmiştir:
   </p>
   <p class="para">
    <div class="example" id="example-5">
     <p><strong>Örnek 5 - Usülsüz ithal kuralı</strong></p>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">namespace </span><span style="color: #0000BB">Languages</span><span style="color: #007700">;<br /><br />function </span><span style="color: #0000BB">toGreenlandic</span><span style="color: #007700">()<br />{<br />    use </span><span style="color: #0000BB">Languages\Danish</span><span style="color: #007700">;<br /><br />    </span><span style="color: #FF8000">// ...<br /></span><span style="color: #007700">}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
   <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
    <p class="para">
     İthal kuralları dosyaya özeldir, yani içerilen dosyalar içeren dosyanın
     ithal kurallarını miras al<em>MA</em>yacaktır.
    </p>
   </p></blockquote>
  </div>
  <div class="sect2" id="language.namespaces.importing.group">
   <h3 class="title">Gruplu <code class="literal">use</code> bildirimleri</h3>
   <p class="para">
     Aynı <a href="language.namespaces.definition.php" class="link">isim alanından</a>
     ithal edilen sınıflar, işlevler ve sabitler tek bir
     <a href="language.namespaces.importing.php" class="link"><code class="literal">use</code></a>
     deyiminde gruplanabilir.
   </p>
   <div class="informalexample">
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">use </span><span style="color: #0000BB">some\namespace\ClassA</span><span style="color: #007700">;<br />use </span><span style="color: #0000BB">some\namespace\ClassB</span><span style="color: #007700">;<br />use </span><span style="color: #0000BB">some\namespace\ClassC </span><span style="color: #007700">as </span><span style="color: #0000BB">C</span><span style="color: #007700">;<br /><br />use function </span><span style="color: #0000BB">some\namespace\fn_a</span><span style="color: #007700">;<br />use function </span><span style="color: #0000BB">some\namespace\fn_b</span><span style="color: #007700">;<br />use function </span><span style="color: #0000BB">some\namespace\fn_c</span><span style="color: #007700">;<br /><br />use const </span><span style="color: #0000BB">some\namespace\ConstA</span><span style="color: #007700">;<br />use const </span><span style="color: #0000BB">some\namespace\ConstB</span><span style="color: #007700">;<br />use const </span><span style="color: #0000BB">some\namespace\ConstC</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// aşağıdaki gruplandırılmış use bildirimine eşdeğerdir<br /></span><span style="color: #007700">use </span><span style="color: #0000BB">some\namespace</span><span style="color: #007700">\{</span><span style="color: #0000BB">ClassA</span><span style="color: #007700">, </span><span style="color: #0000BB">ClassB</span><span style="color: #007700">, </span><span style="color: #0000BB">ClassC </span><span style="color: #007700">as </span><span style="color: #0000BB">C</span><span style="color: #007700">};<br />use function </span><span style="color: #0000BB">some\namespace</span><span style="color: #007700">\{</span><span style="color: #0000BB">fn_a</span><span style="color: #007700">, </span><span style="color: #0000BB">fn_b</span><span style="color: #007700">, </span><span style="color: #0000BB">fn_c</span><span style="color: #007700">};<br />use const </span><span style="color: #0000BB">some\namespace</span><span style="color: #007700">\{</span><span style="color: #0000BB">ConstA</span><span style="color: #007700">, </span><span style="color: #0000BB">ConstB</span><span style="color: #007700">, </span><span style="color: #0000BB">ConstC</span><span style="color: #007700">};</span></span></code></div>
    </div>

   </div>
  </div>
 </div><?php manual_footer($setup); ?>