<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.variables.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'language.variables.scope.php',
    1 => 'Değişken etki alanı',
    2 => 'Değişken etki alanı',
  ),
  'up' => 
  array (
    0 => 'language.variables.php',
    1 => 'Değişkenler',
  ),
  'prev' => 
  array (
    0 => 'language.variables.predefined.php',
    1 => '&Ouml;ntanımlı Değişkenler',
  ),
  'next' => 
  array (
    0 => 'language.variables.variable.php',
    1 => 'Değişken değişkenler',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'language/variables.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="language.variables.scope" class="sect1">
   <h2 class="title">Değişken etki alanı</h2>

   <p class="simpara">
    Bir değişkenin etki alanı içinde tanımlandığı bağlamdır. Hemen her PHP
    değişkeninin sadece tek bir etki alanı vardır. Bu tek etki alanı betiğe
    <span class="function"><a href="function.include.php" class="function">include</a></span> ve <span class="function"><a href="function.require.php" class="function">require</a></span> ile dahil
    edilen dosyalara da uzanır. Örneğin:
   </p>
   <div class="informalexample">
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$a </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />include </span><span style="color: #DD0000">'b.inc'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
   <p class="simpara">
    Burada <var class="varname">$a</var> değişkeni içerilen
    <var class="filename">b.inc</var> betiğinin içinde mevcut olacaktır. Fakat,
    kullanıcı tanımlı işlevlerin etki alanı işleve özeldir. Yani, bir işlev
    içinde kullanılan herhangi bir değişkenin etki alanı öntanımlı olarak
    işlevin yerel etki alanı ile sınırlıdır. Örneğin:
   </p>

   <div class="informalexample">
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$a </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">; </span><span style="color: #FF8000">/* küresel etki alanı */<br /><br /></span><span style="color: #007700">function </span><span style="color: #0000BB">deneme</span><span style="color: #007700">()<br />{<br />    echo </span><span style="color: #0000BB">$a</span><span style="color: #007700">; </span><span style="color: #FF8000">/* işlevin etki alanı */<br /></span><span style="color: #007700">}<br /><br /></span><span style="color: #0000BB">deneme</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>

   <p class="simpara">
    Bu betik tanı iletisi olarak <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>
    (PHP 8.0.0 öncesinde <strong><code><a href="errorfunc.constants.php#constant.e-notice">E_NOTICE</a></code></strong>) üretir.
    <a href="errorfunc.configuration.php#ini.display-errors" class="link">display_errors</a> INI yönergesi
    tanı iletilerini gizlemek üzere atanırsa bu betik herhangi bir çıktı
    üretmeyecektir, çünkü echo ifadesi <var class="varname">$a</var> değişkeninin
    yerel sürümüne atıf yapmakta olup bu etki alanı içinde değişkene bir
    değer atanmamıştır. Bunun C dilinden bir miktar farklı olduğuna dikkat
    edilmelidir, C dilinde küresel değişkenler, özellikle yerel bir tanımla
    geçersiz kılınmadıkları sürece, işlevler tarafından otomatik olarak
    erişilebilir olacaktır. Bu bazı sorunlara yol açabilir, öyle ki
    birileri dikkatsizlikle küresel değişkeni değiştirebilir.
    PHP&#039;de küresel değişkenler eğer bir işlev içinde kullanılacaksa,
    o işlev içinde <code class="literal">global</code> sözcüğü ile
    bildirilmeleri gerekir.
   </p>

   <div class="sect2" id="language.variables.scope.global">
    <h3 class="title"><code class="literal">global</code> anahtar sözcüğü</h3>
    <p class="simpara">
      İlk olarak, <code class="literal">global</code> kullanımına bir örnek verelim:
    </p>
    <p class="para">
     <div class="example" id="example-1">
      <p><strong>Örnek 1 - <code class="literal">global</code> kullanımı</strong></p>
      <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$a </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$b </span><span style="color: #007700">= </span><span style="color: #0000BB">2</span><span style="color: #007700">;<br /><br />function </span><span style="color: #0000BB">topla</span><span style="color: #007700">()<br />{<br />    global </span><span style="color: #0000BB">$a</span><span style="color: #007700">, </span><span style="color: #0000BB">$b</span><span style="color: #007700">;<br /><br />    </span><span style="color: #0000BB">$b </span><span style="color: #007700">= </span><span style="color: #0000BB">$a </span><span style="color: #007700">+ </span><span style="color: #0000BB">$b</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">topla</span><span style="color: #007700">();<br />echo </span><span style="color: #0000BB">$b</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
      </div>

     </div>
    </p>

   <p class="simpara">
    Yukarıdaki betik <code class="literal">3</code> çıktısı verecektir.
    <var class="varname">$a</var> ve <var class="varname">$b</var> işlev içinde küresel
    tanımlanarak, her iki değişkene yapılan bütün atıflar küresel sürüme
    yapılmış olacaktır. Bir işlev tarafından işlenebilecek küresel değişken
    sayısında bir sınır yoktur.
   </p>

   <p class="simpara">
    Küresel etki alanındaki değişkenlere erişimin ikinci yolu PHP tarafından
    tanımlanmış özel <var class="varname"><a href="reserved.variables.globals.php" class="classname">$GLOBALS</a></var> dizisini kullanmaktır. Önceki
    örnek şu şekilde yazılabilir:
   </p>
   <p class="para">
    <div class="example" id="example-2">
     <p><strong>Örnek 2 - <code class="literal">global</code> yerine <var class="varname"><a href="reserved.variables.globals.php" class="classname">$GLOBALS</a></var> kullanımı
     </strong></p>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$a </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$b </span><span style="color: #007700">= </span><span style="color: #0000BB">2</span><span style="color: #007700">;<br /><br />function </span><span style="color: #0000BB">topla</span><span style="color: #007700">()<br />{<br />    </span><span style="color: #0000BB">$GLOBALS</span><span style="color: #007700">[</span><span style="color: #DD0000">'b'</span><span style="color: #007700">] = </span><span style="color: #0000BB">$GLOBALS</span><span style="color: #007700">[</span><span style="color: #DD0000">'a'</span><span style="color: #007700">] + </span><span style="color: #0000BB">$GLOBALS</span><span style="color: #007700">[</span><span style="color: #DD0000">'b'</span><span style="color: #007700">];<br />}<br /><br /></span><span style="color: #0000BB">topla</span><span style="color: #007700">();<br />echo </span><span style="color: #0000BB">$b</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>

   <p class="simpara">
      <var class="varname"><a href="reserved.variables.globals.php" class="classname">$GLOBALS</a></var> dizisi, anahtarı küresel değişkenin ismi,
      elemanının değeri değişkenin içeriği olan bir ilişkisel dizidir.
      <var class="varname"><a href="reserved.variables.globals.php" class="classname">$GLOBALS</a></var> dizisinin her etki alanında mevcut oluşuna
      dikkat edin, bunun sebebi<var class="varname"><a href="reserved.variables.globals.php" class="classname">$GLOBALS</a></var> dizisinin bir <a href="language.variables.superglobals.php" class="link">süper küresel</a>
      olmasıdır. Süper küresellerin gücünü gösteren bir örnek aşağıda
      verilmiştir:
   </p>
   <p class="para">
    <div class="example" id="example-3">
     <p><strong>Örnek 3 - Süper küreselleri ve etki alanlarını gösteren örnek</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">function </span><span style="color: #0000BB">test_superglobal</span><span style="color: #007700">()<br />{<br />    echo </span><span style="color: #0000BB">$_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'isim'</span><span style="color: #007700">];<br />}<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">
     Eğer içerildiği dosya bir işlevin içinde içerilmişse
     <code class="literal">global</code> anahtar sözcüğünün işlevlerin dışında kullanımı
     bir hataya yol açmaz.
    </p>
   </p></blockquote>
  </div>

  <div class="sect2" id="language.variables.scope.static">
   <h3 class="title">Statik değişkenlerin kullanımı</h3>
   <p class="simpara">
    Değişken etki alanı ile ilgili önemli özelliklerden biri statik
    değişkenlerdir. Bir statik bir değişken sadece işlevin etki alanında
    geçerli olup, programın çalışması bu etki alanını terkettiği zaman
    değerini kaybetmez. Aşağıdaki örneğı ele alalım:
   </p>
   <p class="para">
    <div class="example" id="example-4">
     <p><strong>Örnek 4 - Statik değişkenlere ihtiyacı gösteren örnek</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">function </span><span style="color: #0000BB">dene</span><span style="color: #007700">()<br />{<br />    </span><span style="color: #0000BB">$a </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />    echo </span><span style="color: #0000BB">$a</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">$a</span><span style="color: #007700">++;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
   <p class="simpara">
   Bu işlev her çağrıldığında <var class="varname">$a</var>&#039;yı <code class="literal">0</code>
   yapar ve <code class="literal">0</code> yazdırır, bu nedenle oldukça kullanışsızdır.
   Değişkeni artıran <code class="literal">$a++</code> bir işe yaramaz çünkü işlev
   çıktığı gibi <var class="varname">$a</var> değişkeni kaybolur. Kaldığı değeri
   kaybetmeyecek kullanışlı bir sayaç işlevi yapması için
   <var class="varname">$a</var> değişkeni aşağıda <code class="literal">static</code> olarak
   bildirilmiştir.
   </p>
   <p class="para">
    <div class="example" id="example-5">
     <p><strong>Örnek 5 - Statik değişkenlerin kullanım örneği</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">function </span><span style="color: #0000BB">dene</span><span style="color: #007700">()<br />{<br />    static </span><span style="color: #0000BB">$a </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />    echo </span><span style="color: #0000BB">$a</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">$a</span><span style="color: #007700">++;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
   <p class="simpara">
    Artık, <var class="varname">$a</var> değişkeni sadece <code class="literal">dene()</code> işlevinin ilk çağrılışında ilklendirilecek ve işlevin her çağrılışında
    <var class="varname">$a</var> değişkeninin değerini bastıktan sonra değerini bir
    artıracaktır.
   </p>

   <p class="simpara">
    Statik değişkenler aynı zamanda kendini çağıran işlevlerle çalışmak için
    de bir yol sunar. Kendini çağıran (recursive) işlev kendi kendini
    çağırır. Böyle bir işlev dikkatli yazılmazsa sonsuza kadar kendi kendini
    çağırır. Kendini çağırmayı bir noktada sonlandıracak uygun bir
    yönteminiz olmalıdır. Aşağıdaki basit işlev, kendini çağırmayı nerede
    durduracağını bilerek 10&#039;a kadar sayar:
   </p>
   <p class="para">
    <div class="example" id="example-6">
     <p><strong>Örnek 6 - Kendini çağıran işlevlerle statik değişkenler</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">function </span><span style="color: #0000BB">say</span><span style="color: #007700">()<br />{<br />    static </span><span style="color: #0000BB">$sayaç </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br /><br />    </span><span style="color: #0000BB">$sayaç</span><span style="color: #007700">++;<br />    echo </span><span style="color: #DD0000">"</span><span style="color: #0000BB">$sayaç</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />    if (</span><span style="color: #0000BB">$sayaç </span><span style="color: #007700">&lt; </span><span style="color: #0000BB">10</span><span style="color: #007700">) {<br />        </span><span style="color: #0000BB">say</span><span style="color: #007700">();<br />    }<br />    </span><span style="color: #0000BB">$sayaç</span><span style="color: #007700">--;<br />}<br /></span><span style="color: #0000BB">say</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>

   <p class="para">
    Statik değişkenlere sabit ifadelerin sonucu olan değerler atanabilir, ancak
    işlev çağrıları gibi dinamik ifadeler bir ayrıştırma hatasına sebep olur.
   </p>
   <p class="para">
    <div class="example" id="example-7">
     <p><strong>Örnek 7 - Statik değişkenlerin bildirimi</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">function </span><span style="color: #0000BB">foo</span><span style="color: #007700">(){<br />    static </span><span style="color: #0000BB">$int </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;          </span><span style="color: #FF8000">// doğru<br />    </span><span style="color: #007700">static </span><span style="color: #0000BB">$int </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">+</span><span style="color: #0000BB">2</span><span style="color: #007700">;        </span><span style="color: #FF8000">// doğru<br />    </span><span style="color: #007700">static </span><span style="color: #0000BB">$int </span><span style="color: #007700">= </span><span style="color: #0000BB">sqrt</span><span style="color: #007700">(</span><span style="color: #0000BB">121</span><span style="color: #007700">);  </span><span style="color: #FF8000">// yanlış (bir işlevle atandığı için)<br /><br />    </span><span style="color: #0000BB">$int</span><span style="color: #007700">++;<br />    echo </span><span style="color: #0000BB">$int</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>

   <p class="para">
    PHP 8.1.0 ve sonrasında, statik değişken kullanan bir yöntem miras
    alındığında (geçersiz kılınmamak şartıyla), statik değişkenlerini ebeveyn
    yöntemle paylaşmaktadır. Yani, yöntemlerdeki statik değişkenler artık
    birer statik özellik gibi davranmaktadır.
   </p>

   <div class="example" id="example-8">
    <p><strong>Örnek 8 - Miras alınan yöntemlerde statik değişken 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">class </span><span style="color: #0000BB">Foo </span><span style="color: #007700">{<br />    public static function </span><span style="color: #0000BB">counter</span><span style="color: #007700">() {<br />        static </span><span style="color: #0000BB">$counter </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />        </span><span style="color: #0000BB">$counter</span><span style="color: #007700">++;<br />        return </span><span style="color: #0000BB">$counter</span><span style="color: #007700">;<br />    }<br />}<br />class </span><span style="color: #0000BB">Bar </span><span style="color: #007700">extends </span><span style="color: #0000BB">Foo </span><span style="color: #007700">{}<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">Foo</span><span style="color: #007700">::</span><span style="color: #0000BB">counter</span><span style="color: #007700">()); </span><span style="color: #FF8000">// int(1)<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">Foo</span><span style="color: #007700">::</span><span style="color: #0000BB">counter</span><span style="color: #007700">()); </span><span style="color: #FF8000">// int(2)<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">Bar</span><span style="color: #007700">::</span><span style="color: #0000BB">counter</span><span style="color: #007700">()); </span><span style="color: #FF8000">// int(3), PHP 8.1.0 öncesi int(1)<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">Bar</span><span style="color: #007700">::</span><span style="color: #0000BB">counter</span><span style="color: #007700">()); </span><span style="color: #FF8000">// int(4), PHP 8.1.0 öncesi int(2)<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>

   <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
    <p class="para">
     Statik bildirimler derleme sırasında çözümlenir.
    </p>
   </p></blockquote>
  </div>

  <div class="sect2" id="language.variables.scope.references">
   <h3 class="title"><code class="literal">global</code> ve <code class="literal">static</code> değişkenlere
   gönderim</h3>
   <p class="simpara">
    <a href="language.variables.scope.php#language.variables.scope.static" class="link"><code class="literal">static</code></a> ve
    <a href="language.variables.scope.php#language.variables.scope.global" class="link"><code class="literal">global</code></a>
    değişken niteleyicileri <a href="language.references.php" class="link">gönderim</a>
    olarak gerçeklenmiştir.
    Örneğin, <code class="literal">global</code> deyimi ile bir işlevin etki alanında
    geçerli kılınan bir küresel değişken aslında kendine bir gönderim
    oluşturur. Bu durum aşağıdaki örnekte de görüldüğü gibi beklenmedik
    davranışlara yol açabilir:
   </p>

   <div class="informalexample">
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">gönderimli_küresel_dene</span><span style="color: #007700">() {<br />    global </span><span style="color: #0000BB">$nesne</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">$yeni </span><span style="color: #007700">= new </span><span style="color: #0000BB">stdClass</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">$nesne </span><span style="color: #007700">= &amp;</span><span style="color: #0000BB">$yeni</span><span style="color: #007700">;<br />}<br /><br />function </span><span style="color: #0000BB">gönderimsiz_küresel_dene</span><span style="color: #007700">() {<br />    global </span><span style="color: #0000BB">$nesne</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">$yeni </span><span style="color: #007700">= new </span><span style="color: #0000BB">stdClass</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">$nesne </span><span style="color: #007700">= </span><span style="color: #0000BB">$yeni</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">gönderimli_küresel_dene</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$nesne</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">gönderimsiz_küresel_dene</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$nesne</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
   <p class="para">
Yukarıdaki örneğin çıktısı:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
NULL
object(stdClass)#1 (0) {
}
</pre></div>
   </div>

   <p class="simpara">
    Aynı davranış <code class="literal">static</code> deyimine de uyar.
    Gönderimler statik olarak saklanmazlar:
   </p>

   <div class="informalexample">
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">function &amp;</span><span style="color: #0000BB">gönderimli_örnek</span><span style="color: #007700">() {<br />    static </span><span style="color: #0000BB">$obj</span><span style="color: #007700">;<br /><br />    echo </span><span style="color: #DD0000">'Statik nesne: '</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$obj</span><span style="color: #007700">);<br />    if (!isset(</span><span style="color: #0000BB">$obj</span><span style="color: #007700">)) {<br />        </span><span style="color: #0000BB">$new </span><span style="color: #007700">= new </span><span style="color: #0000BB">stdClass</span><span style="color: #007700">;<br />        </span><span style="color: #FF8000">// Statik değişkene gönderim atayalım<br />        </span><span style="color: #0000BB">$obj </span><span style="color: #007700">= &amp;</span><span style="color: #0000BB">$new</span><span style="color: #007700">;<br />    }<br />    if (!isset(</span><span style="color: #0000BB">$obj</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">property</span><span style="color: #007700">)) {<br />        </span><span style="color: #0000BB">$obj</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">property </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />    } else {<br />        </span><span style="color: #0000BB">$obj</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">property</span><span style="color: #007700">++;<br />    }<br />    return </span><span style="color: #0000BB">$obj</span><span style="color: #007700">;<br />}<br /><br />function &amp;</span><span style="color: #0000BB">gönderimsiz_örnek</span><span style="color: #007700">() {<br />    static </span><span style="color: #0000BB">$obj</span><span style="color: #007700">;<br /><br />    echo </span><span style="color: #DD0000">'Statik nesne: '</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$obj</span><span style="color: #007700">);<br />    if (!isset(</span><span style="color: #0000BB">$obj</span><span style="color: #007700">)) {<br />        </span><span style="color: #FF8000">// Statik değişkene nesne atayalım<br />        </span><span style="color: #0000BB">$obj </span><span style="color: #007700">= new </span><span style="color: #0000BB">stdClass</span><span style="color: #007700">;<br />    }<br />    </span><span style="color: #0000BB">$obj</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">property</span><span style="color: #007700">++;<br />    return </span><span style="color: #0000BB">$obj</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">$nesne1 </span><span style="color: #007700">= </span><span style="color: #0000BB">gönderimli_örnek</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$bu_da_nesne1 </span><span style="color: #007700">= </span><span style="color: #0000BB">gönderimli_örnek</span><span style="color: #007700">();<br />echo </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$nesne2 </span><span style="color: #007700">= </span><span style="color: #0000BB">gönderimsiz_örnek</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$bu_da_nesne2 </span><span style="color: #007700">= </span><span style="color: #0000BB">gönderimsiz_örnek</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
   <p class="para">
Yukarıdaki örneğin çıktısı:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Statik nesne: NULL
Statik nesne: NULL

Statik nesne: NULL
Statik nesne: object(stdClass)#3 (1) {
  [&quot;property&quot;]=&gt;
  int(1)
}
</pre></div>
   </div>

   <p class="simpara">
    Bu örnek, bir statik değişkene gönderimli atama yapılması halinde,
    <code class="literal">&amp;gönderimli_örnek()</code> işlevi ikinci kez
    çağrıldığında değişkene atanan değerin
    <em>saklanmadığını</em> gösterir.

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