<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.oop5.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'language.oop5.visibility.php',
    1 => 'G&ouml;r&uuml;n&uuml;rl&uuml;k',
    2 => 'G&ouml;r&uuml;n&uuml;rl&uuml;k',
  ),
  'up' => 
  array (
    0 => 'language.oop5.php',
    1 => 'Sınıflar ve Nesneler',
  ),
  'prev' => 
  array (
    0 => 'language.oop5.decon.php',
    1 => 'Kurucular ve Yıkıcılar',
  ),
  'next' => 
  array (
    0 => 'language.oop5.inheritance.php',
    1 => 'Nesnelerin Kalıtımı',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'language/oop5/visibility.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="language.oop5.visibility" class="sect1">
  <h2 class="title">Görünürlük</h2>
  <p class="para">
    Bir özelliğin ya da bir yöntemin (PHP 7.1.0 ve sonrası) görünürlüğü,
    bildirim sırasında önüne şu anahtar sözcüklerden biri getirilerek
    belirlenebilir:
    <code class="literal">public</code>, <code class="literal">protected</code> ya da
    <code class="literal">private</code>.
    <strong class="command">public</strong> olarak bildirilmiş özelliklere ve yöntemlere her
    yerden erişilebilir. <strong class="command">protected</strong> bildirimli özelliklere ve
    yöntemlere sadece tanımlandığı sınıfdan, ebeveyn sınıflardan ve miras
    alınarak <strong class="command">private</strong> bildirimli özelliklere ve yöntemlere
    ise sadece özelliğin tanımlandığı sınıfın içinden erişilebilir.
  </p>
  <div class="sect2" id="language.oop5.visiblity-members">
   <h3 class="title">Özelliklerin Görünürlüğü</h3>
   <p class="para">
    Sınıf özellikleri <code class="literal">public</code>, <code class="literal">protected</code>
    ya da <code class="literal">private</code> olarak tanımlanabilir.
    Görünürlük belirtilmeden bildirilen özelliklerin görünürlüğünün
    <code class="literal">public</code> olduğu varsayılır.
   </p>
   <div class="example" id="example-1">
    <p><strong>Örnek 1 - Özellik 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: #FF8000">/**<br /> * Sınıfım tanımı<br /> */<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">Sınıfım<br /></span><span style="color: #007700">{<br />    public </span><span style="color: #0000BB">$genel </span><span style="color: #007700">= </span><span style="color: #DD0000">'Genel'</span><span style="color: #007700">;<br />    protected </span><span style="color: #0000BB">$korumalı </span><span style="color: #007700">= </span><span style="color: #DD0000">'Korumalı'</span><span style="color: #007700">;<br />    private </span><span style="color: #0000BB">$özel </span><span style="color: #007700">= </span><span style="color: #DD0000">'Özel'</span><span style="color: #007700">;<br /><br />    function </span><span style="color: #0000BB">selamVer</span><span style="color: #007700">()<br />    {<br />        echo </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">genel</span><span style="color: #007700">;<br />        echo </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">korumalı</span><span style="color: #007700">;<br />        echo </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">özel</span><span style="color: #007700">;<br />    }<br />}<br /><br /></span><span style="color: #0000BB">$nesne </span><span style="color: #007700">= new </span><span style="color: #0000BB">Sınıfım</span><span style="color: #007700">();<br />echo </span><span style="color: #0000BB">$nesne</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">genel</span><span style="color: #007700">;    </span><span style="color: #FF8000">// Çalışır<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">$nesne</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">korumalı</span><span style="color: #007700">; </span><span style="color: #FF8000">// Ölümcül Hata<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">$nesne</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">özel</span><span style="color: #007700">;     </span><span style="color: #FF8000">// Ölümcül Hata<br /></span><span style="color: #0000BB">$nesne</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">selamVer</span><span style="color: #007700">();    </span><span style="color: #FF8000">// Genel, Korumalı ve Özel görüntüler<br /><br /><br />/**<br /> * ÖbürSınıfım tanımı<br /> */<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">ÖbürSınıfım </span><span style="color: #007700">extends </span><span style="color: #0000BB">Sınıfım<br /></span><span style="color: #007700">{<br />    </span><span style="color: #FF8000">// public ve protected özellikleri yeniden tanımlayabiliriz,<br />    // ancak private olanlar tanımlanamaz<br />    </span><span style="color: #007700">public </span><span style="color: #0000BB">$genel </span><span style="color: #007700">= </span><span style="color: #DD0000">'Genel2'</span><span style="color: #007700">;<br />    protected </span><span style="color: #0000BB">$korumalı </span><span style="color: #007700">= </span><span style="color: #DD0000">'Öbür korumalı'</span><span style="color: #007700">;<br /><br />    function </span><span style="color: #0000BB">selamVer</span><span style="color: #007700">()<br />    {<br />        echo </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">genel</span><span style="color: #007700">;<br />        echo </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">korumalı</span><span style="color: #007700">;<br />        echo </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">özel</span><span style="color: #007700">;<br />    }<br />}<br /><br /></span><span style="color: #0000BB">$nesne2 </span><span style="color: #007700">= new </span><span style="color: #0000BB">ÖbürSınıfım</span><span style="color: #007700">();<br />echo </span><span style="color: #0000BB">$nesne2</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">genel</span><span style="color: #007700">;    </span><span style="color: #FF8000">// Çalışır<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">$nesne2</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">korumalı</span><span style="color: #007700">; </span><span style="color: #FF8000">// Ölümcül Hata<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">$nesne2</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">özel</span><span style="color: #007700">;     </span><span style="color: #FF8000">// Tanımsız<br /><br /></span><span style="color: #0000BB">$nesne2</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">selamVer</span><span style="color: #007700">();    </span><span style="color: #FF8000">// Genel2, Öbür korumalı ve Undefined görüntülenir<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
   <div class="sect3" id="language.oop5.visibility-members-aviz">
    <h4 class="title">Bakışımsız Özellik Görünürlüğü</h4>
    <p class="simpara">
     PHP 8.4&#039;ten itibaren, özelliklerin görünürlükleri bakışımsız olarak
     ayarlanabilir, okuma (<code class="literal">get</code>) ve yazma
     (<code class="literal">set</code>) için farklı kapsamlar olabilir. Özellikle,
     <code class="literal">set</code> görünürlüğü, öntanımlı görünürlükten daha izin
     verici olmadığı sürece ayrı olarak belirtilebilir.
    </p>
    <div class="example" id="example-2">
     <p><strong>Örnek 2 - Bakışımsız Özellik Görünürlüğü</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">Book<br /></span><span style="color: #007700">{<br />    public function </span><span style="color: #0000BB">__construct</span><span style="color: #007700">(<br />        public private(</span><span style="color: #0000BB">set</span><span style="color: #007700">) </span><span style="color: #0000BB">string $title</span><span style="color: #007700">,<br />        public protected(</span><span style="color: #0000BB">set</span><span style="color: #007700">) </span><span style="color: #0000BB">string $author</span><span style="color: #007700">,<br />        protected private(</span><span style="color: #0000BB">set</span><span style="color: #007700">) </span><span style="color: #0000BB">int $pubYear</span><span style="color: #007700">,<br />    ) {}<br />}<br /><br />class </span><span style="color: #0000BB">SpecialBook </span><span style="color: #007700">extends </span><span style="color: #0000BB">Book<br /></span><span style="color: #007700">{<br />    public function </span><span style="color: #0000BB">update</span><span style="color: #007700">(</span><span style="color: #0000BB">string $author</span><span style="color: #007700">, </span><span style="color: #0000BB">int $year</span><span style="color: #007700">): </span><span style="color: #0000BB">void<br />    </span><span style="color: #007700">{<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">author </span><span style="color: #007700">= </span><span style="color: #0000BB">$author</span><span style="color: #007700">; </span><span style="color: #FF8000">// OK<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">pubYear </span><span style="color: #007700">= </span><span style="color: #0000BB">$year</span><span style="color: #007700">; </span><span style="color: #FF8000">// Onulmaz Hata<br />    </span><span style="color: #007700">}<br />}<br /><br /></span><span style="color: #0000BB">$b </span><span style="color: #007700">= new </span><span style="color: #0000BB">Book</span><span style="color: #007700">(</span><span style="color: #DD0000">'How to PHP'</span><span style="color: #007700">, </span><span style="color: #DD0000">'Peter H. Peterson'</span><span style="color: #007700">, </span><span style="color: #0000BB">2024</span><span style="color: #007700">);<br /><br />echo </span><span style="color: #0000BB">$b</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">title</span><span style="color: #007700">; </span><span style="color: #FF8000">// Çalışır<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">$b</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">author</span><span style="color: #007700">; </span><span style="color: #FF8000">// Çalışır<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">$b</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">pubYear</span><span style="color: #007700">; </span><span style="color: #FF8000">// Onulmaz Hata<br /><br /></span><span style="color: #0000BB">$b</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">title </span><span style="color: #007700">= </span><span style="color: #DD0000">'How not to PHP'</span><span style="color: #007700">; </span><span style="color: #FF8000">// Onulmaz Hata<br /></span><span style="color: #0000BB">$b</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">author </span><span style="color: #007700">= </span><span style="color: #DD0000">'Pedro H. Peterson'</span><span style="color: #007700">; </span><span style="color: #FF8000">// Onulmaz Hata<br /></span><span style="color: #0000BB">$b</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">pubYear </span><span style="color: #007700">= </span><span style="color: #0000BB">2023</span><span style="color: #007700">; </span><span style="color: #FF8000">// Onulmaz Hata<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
    <p class="para">Bakışımsız görünürlükle ilgili birkaç uyarı var:</p>
    <ul class="itemizedlist">
     <li class="listitem">
      <span class="simpara">
       Yalnızca yazılan özelliklerin ayrı bir <code class="literal">set</code>
       görünürlüğü olabilir.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       <code class="literal">set</code> görünürlüğü <code class="literal">get</code> ile aynı
       veya daha kısıtlayıcı olmalıdır. Yani,
       <code class="code">public protected(set)</code> ve
       <code class="code">protected protected(set)</code> kullanımına izin verilir,
       ancak <code class="code">protected public(set)</code> bir sözdizimi hatasına
       neden olur.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Bir özellik <code class="literal">public</code> ise, ana görünürlük atlanabilir.
       Yani, <code class="code">public private(set)</code> ve <code class="code">private(set)</code>
       aynı sonucu verecektir.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       <code class="literal">private(set)</code> görünürlüğüne sahip bir özellik
       otomatik olarak <code class="literal">final</code> olur ve bir alt sınıfta
       yeniden bildirilemez.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Bir özelliğe başvurulmasını sağlamak <code class="literal">set</code>
       görünürlüğünü takip eder, <code class="literal">get</code>&#039;i değil.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Benzer şekilde, bir dizi özelliğine yazmaya çalışmak hem dahili
       olarak <code class="literal">get</code> hem de <code class="literal">set</code> işlemini
       içerir ve bu nedenle her zaman daha kısıtlayıcı olan
       <code class="literal">set</code> görünürlüğünü takip eder.
      </span>
     </li>
    </ul>
    <p class="simpara">
     Bir sınıf başka bir sınıfı genişlettiğinde, alt sınıf
     <code class="literal">final</code> olmayan herhangi bir özelliği yeniden tanımlayabilir. Bunu yaparken, yeni görünürlük ana sınıfla aynı veya
     ondan daha geniş olduğu sürece, ana görünürlüğü veya
     <code class="literal">set</code> görünürlüğünü genişletebilir. Ancak, bir
     <code class="literal">private</code> özelliği geçersiz kılınırsa, aslında ana
     sınıfın özelliğinin değiştirilmediği, ancak farklı bir dahili isme
     sahip yeni bir özellik oluşturduğu unutulmamalıdır.
    </p>
    <div class="example" id="example-3">
     <p><strong>Örnek 3 - Bakışımsız Özellik Kalıtı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">Book<br /></span><span style="color: #007700">{<br />    protected </span><span style="color: #0000BB">string $title</span><span style="color: #007700">;<br />    public protected(</span><span style="color: #0000BB">set</span><span style="color: #007700">) </span><span style="color: #0000BB">string $author</span><span style="color: #007700">;<br />    protected private(</span><span style="color: #0000BB">set</span><span style="color: #007700">) </span><span style="color: #0000BB">int $pubYear</span><span style="color: #007700">;<br />}<br /><br />class </span><span style="color: #0000BB">SpecialBook </span><span style="color: #007700">extends </span><span style="color: #0000BB">Book<br /></span><span style="color: #007700">{<br />    public protected(</span><span style="color: #0000BB">set</span><span style="color: #007700">) </span><span style="color: #0000BB">$title</span><span style="color: #007700">; </span><span style="color: #FF8000">// OK, çünkü okumak daha geniş, yazmak ise aynı.<br />    </span><span style="color: #007700">public </span><span style="color: #0000BB">string $author</span><span style="color: #007700">; </span><span style="color: #FF8000">// OK, çünkü okumak aynı, yazmak ise daha geniş.<br />    </span><span style="color: #007700">public protected(</span><span style="color: #0000BB">set</span><span style="color: #007700">) </span><span style="color: #0000BB">int $pubYear</span><span style="color: #007700">; </span><span style="color: #FF8000">// Onulmaz hata. private(set) özellikler finaldir.<br /></span><span style="color: #007700">}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </div>
  </div>

  <div class="sect2" id="language.oop5.visiblity-methods">
   <h3 class="title">Yöntem Görünürlüğü</h3>
   <p class="para">
    Sınıf yöntemleri <code class="literal">public</code>, <code class="literal">protected</code>
    ya da <code class="literal">private</code> olarak tanımlanmalıdır. Bunlardan
    herhangi biri kullanılmadan yapılmış yöntem tanımlarının
    <code class="literal">public</code> kullanılarak yapıldığı varsayılır.
   </p>
   <div class="example" id="example-4">
    <p><strong>Örnek 4 - Yöntem 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: #FF8000">/**<br /> * Sınıfım tanımı<br /> */<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">Sınıfım<br /></span><span style="color: #007700">{<br />    </span><span style="color: #FF8000">// public kurucu bildirimi<br />    </span><span style="color: #007700">public function </span><span style="color: #0000BB">__construct</span><span style="color: #007700">() { }<br /><br />    </span><span style="color: #FF8000">// public yöntem bildirimi<br />    </span><span style="color: #007700">public function </span><span style="color: #0000BB">Genel</span><span style="color: #007700">() { }<br /><br />    </span><span style="color: #FF8000">// protected yöntem bildirimi<br />    </span><span style="color: #007700">protected function </span><span style="color: #0000BB">Korumalı</span><span style="color: #007700">() { }<br /><br />    </span><span style="color: #FF8000">// private yöntem bildirimi<br />    </span><span style="color: #007700">private function </span><span style="color: #0000BB">Özel</span><span style="color: #007700">() { }<br /><br />    </span><span style="color: #FF8000">// Bu da public bir yöntem<br />    </span><span style="color: #007700">function </span><span style="color: #0000BB">Falanca</span><span style="color: #007700">()<br />    {<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Genel</span><span style="color: #007700">();<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Korumalı</span><span style="color: #007700">();<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Özel</span><span style="color: #007700">();<br />    }<br />}<br /><br /></span><span style="color: #0000BB">$sınıfım </span><span style="color: #007700">= new </span><span style="color: #0000BB">Sınıfım</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$sınıfım</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Genel</span><span style="color: #007700">();    </span><span style="color: #FF8000">// Çalışır<br /></span><span style="color: #0000BB">$sınıfım</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Korumalı</span><span style="color: #007700">(); </span><span style="color: #FF8000">// Ölümcül Hata<br /></span><span style="color: #0000BB">$sınıfım</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Özel</span><span style="color: #007700">();     </span><span style="color: #FF8000">// Ölümcül Hata<br /></span><span style="color: #0000BB">$sınıfım</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Falanca</span><span style="color: #007700">();  </span><span style="color: #FF8000">// Public, Protected ve Private çalışır<br /><br /><br />/**<br /> * ÖbürSınıfım tanımı<br /> */<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">ÖbürSınıfım </span><span style="color: #007700">extends </span><span style="color: #0000BB">Sınıfım<br /></span><span style="color: #007700">{<br />    </span><span style="color: #FF8000">// Bu public bir yöntemdir<br />    </span><span style="color: #007700">function </span><span style="color: #0000BB">Filanca</span><span style="color: #007700">()<br />    {<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Genel</span><span style="color: #007700">();<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Korumalı</span><span style="color: #007700">();<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Özel</span><span style="color: #007700">();  </span><span style="color: #FF8000">// Ölümcül Hata<br />    </span><span style="color: #007700">}<br />}<br /><br /></span><span style="color: #0000BB">$öbürSınıfım </span><span style="color: #007700">= new </span><span style="color: #0000BB">Sınıfım</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$öbürSınıfım</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Genel</span><span style="color: #007700">();   </span><span style="color: #FF8000">// Çalışır<br /></span><span style="color: #0000BB">$öbürSınıfım</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Filanca</span><span style="color: #007700">(); </span><span style="color: #FF8000">// Genel ve Korumalı çalışır, Özel çalışmaz<br /><br /></span><span style="color: #007700">class </span><span style="color: #0000BB">Bar<br /></span><span style="color: #007700">{<br />    public function </span><span style="color: #0000BB">dnm</span><span style="color: #007700">() {<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">dnmÖzel</span><span style="color: #007700">();<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">dnmGenel</span><span style="color: #007700">();<br />    }<br /><br />    public function </span><span style="color: #0000BB">dnmGenel</span><span style="color: #007700">() {<br />        echo </span><span style="color: #DD0000">"Bar::dnmGenel\n"</span><span style="color: #007700">;<br />    }<br /><br />    private function </span><span style="color: #0000BB">dnmÖzel</span><span style="color: #007700">() {<br />        echo </span><span style="color: #DD0000">"Bar::dnmÖzel\n"</span><span style="color: #007700">;<br />    }<br />}<br /><br />class </span><span style="color: #0000BB">Foo </span><span style="color: #007700">extends </span><span style="color: #0000BB">Bar<br /></span><span style="color: #007700">{<br />    public function </span><span style="color: #0000BB">dnmGenel</span><span style="color: #007700">() {<br />        echo </span><span style="color: #DD0000">"Foo::dnmGenel\n"</span><span style="color: #007700">;<br />    }<br /><br />    private function </span><span style="color: #0000BB">dnmÖzel</span><span style="color: #007700">() {<br />        echo </span><span style="color: #DD0000">"Foo::dnmÖzel\n"</span><span style="color: #007700">;<br />    }<br />}<br /><br /></span><span style="color: #0000BB">$fo </span><span style="color: #007700">= new </span><span style="color: #0000BB">Foo</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$fo</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">dnm</span><span style="color: #007700">();  </span><span style="color: #FF8000">// Bar::dnmÖzel<br />             // Foo::dnmGenel<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </div>

  <div class="sect2" id="language.oop5.visiblity-constants">
   <h3 class="title">Sabit Görünürlüğü</h3>
   <p class="para">
    PHP 7.1.0 ve sonrasında, sınıf sabitleri public, private veya
    protected olarak tanımlanabilir. Bu sözcükler olmaksızın tanımlanmış
    sabitlerin public olarak tanımlandıkları varsayılır.
   </p>
   <div class="example" id="example-5">
    <p><strong>Örnek 5 - PHP 7.1.0 ve sonrasında sabit bildirimleri</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: #FF8000">/**<br /> * Tanımla: MyClass<br /> */<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">MyClass<br /></span><span style="color: #007700">{<br />    </span><span style="color: #FF8000">// public sabit bildirimi<br />    </span><span style="color: #007700">public const </span><span style="color: #0000BB">MY_PUBLIC </span><span style="color: #007700">= </span><span style="color: #DD0000">'genel'</span><span style="color: #007700">;<br /><br />    </span><span style="color: #FF8000">// protected  sabit bildirimi<br />    </span><span style="color: #007700">protected const </span><span style="color: #0000BB">MY_PROTECTED </span><span style="color: #007700">= </span><span style="color: #DD0000">'korumalı'</span><span style="color: #007700">;<br /><br />    </span><span style="color: #FF8000">// private  sabit bildirimi<br />    </span><span style="color: #007700">private const </span><span style="color: #0000BB">MY_PRIVATE </span><span style="color: #007700">= </span><span style="color: #DD0000">'özel'</span><span style="color: #007700">;<br /><br />    public function </span><span style="color: #0000BB">foo</span><span style="color: #007700">()<br />    {<br />        echo </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">MY_PUBLIC</span><span style="color: #007700">;<br />        echo </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">MY_PROTECTED</span><span style="color: #007700">;<br />        echo </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">MY_PRIVATE</span><span style="color: #007700">;<br />    }<br />}<br /><br /></span><span style="color: #0000BB">$myclass </span><span style="color: #007700">= new </span><span style="color: #0000BB">MyClass</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">MyClass</span><span style="color: #007700">::</span><span style="color: #0000BB">MY_PUBLIC</span><span style="color: #007700">; </span><span style="color: #FF8000">// Çalışır<br /></span><span style="color: #0000BB">MyClass</span><span style="color: #007700">::</span><span style="color: #0000BB">MY_PROTECTED</span><span style="color: #007700">; </span><span style="color: #FF8000">// Ölümcül hata<br /></span><span style="color: #0000BB">MyClass</span><span style="color: #007700">::</span><span style="color: #0000BB">MY_PRIVATE</span><span style="color: #007700">; </span><span style="color: #FF8000">// Ölümcül hata<br /></span><span style="color: #0000BB">$myclass</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">foo</span><span style="color: #007700">(); </span><span style="color: #FF8000">// genel, korumalı ve özel çalışır<br /><br /><br />/**<br /> * Tanımla: MyClass2<br /> */<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">MyClass2 </span><span style="color: #007700">extends </span><span style="color: #0000BB">MyClass<br /></span><span style="color: #007700">{<br />    </span><span style="color: #FF8000">// public<br />    </span><span style="color: #007700">function </span><span style="color: #0000BB">foo2</span><span style="color: #007700">()<br />    {<br />        echo </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">MY_PUBLIC</span><span style="color: #007700">;<br />        echo </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">MY_PROTECTED</span><span style="color: #007700">;<br />        echo </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">MY_PRIVATE</span><span style="color: #007700">; </span><span style="color: #FF8000">// Ölümcül hata<br />    </span><span style="color: #007700">}<br />}<br /><br /></span><span style="color: #0000BB">$myclass2 </span><span style="color: #007700">= new </span><span style="color: #0000BB">MyClass2</span><span style="color: #007700">;<br />echo </span><span style="color: #0000BB">MyClass2</span><span style="color: #007700">::</span><span style="color: #0000BB">MY_PUBLIC</span><span style="color: #007700">; </span><span style="color: #FF8000">// Çalışır<br /></span><span style="color: #0000BB">$myclass2</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">foo2</span><span style="color: #007700">(); </span><span style="color: #FF8000">// genel ve korumalı çalışır, özel çalışmaz<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </div>

  <div class="sect2" id="language.oop5.visibility-other-objects">
   <h3 class="title">Diğer nesnelerden görünürlük</h3>
   <p class="para">
    Aynı türdeki nesneler, aynı örnekler olmasalar bile, diğerlerinin özel ve
    korunan üyelerine erişime sahip olacaktır. Bunun sebebi, gerçeklenime özgü
    ayrıntıların bu nesnelerin içindeyken zaten biliniyor olmasıdır.
   </p>
   <div class="example" id="example-6">
    <p><strong>Örnek 6 - Aynı nesne türündeki özel üyelere erişim</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">Test<br /></span><span style="color: #007700">{<br />    private </span><span style="color: #0000BB">$foo</span><span style="color: #007700">;<br /><br />    public function </span><span style="color: #0000BB">__construct</span><span style="color: #007700">(</span><span style="color: #0000BB">$foo</span><span style="color: #007700">)<br />    {<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">foo </span><span style="color: #007700">= </span><span style="color: #0000BB">$foo</span><span style="color: #007700">;<br />    }<br /><br />    private function </span><span style="color: #0000BB">bar</span><span style="color: #007700">()<br />    {<br />        echo </span><span style="color: #DD0000">'Private yönteme erişildi.'</span><span style="color: #007700">;<br />    }<br /><br />    public function </span><span style="color: #0000BB">baz</span><span style="color: #007700">(</span><span style="color: #0000BB">Test $other</span><span style="color: #007700">)<br />    {<br />        </span><span style="color: #FF8000">// private özelliği değiştirilebilir:<br />        </span><span style="color: #0000BB">$other</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">foo </span><span style="color: #007700">= </span><span style="color: #DD0000">'hello'</span><span style="color: #007700">;<br />        </span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$other</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">foo</span><span style="color: #007700">);<br /><br />        </span><span style="color: #FF8000">// private yöntemi de çağırılabilir:<br />        </span><span style="color: #0000BB">$other</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">bar</span><span style="color: #007700">();<br />    }<br />}<br /><br /></span><span style="color: #0000BB">$test </span><span style="color: #007700">= new </span><span style="color: #0000BB">Test</span><span style="color: #007700">(</span><span style="color: #DD0000">'test'</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$test</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">baz</span><span style="color: #007700">(new </span><span style="color: #0000BB">Test</span><span style="color: #007700">(</span><span style="color: #DD0000">'other'</span><span style="color: #007700">));<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>
Yukarıdaki örneğin çıktısı:</p></div>
    <div class="example-contents screen">
<div class="cdata"><pre>
string(5) &quot;hello&quot;
Private yönteme erişildi.
</pre></div>
    </div>
   </div>
  </div>

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