<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.operators.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'language.operators.comparison.php',
    1 => 'Karşılaştırma',
    2 => 'Karşılaştırma İşle&ccedil;leri',
  ),
  'up' => 
  array (
    0 => 'language.operators.php',
    1 => 'İşle&ccedil;ler',
  ),
  'prev' => 
  array (
    0 => 'language.operators.bitwise.php',
    1 => 'Bitsel',
  ),
  'next' => 
  array (
    0 => 'language.operators.errorcontrol.php',
    1 => 'Hata Denetim',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'language/operators/comparison.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="language.operators.comparison" class="sect1">
 <h2 class="title">Karşılaştırma İşleçleri</h2>
 
 <p class="simpara">
  Karşılaştırma işleçleri isminden de anlaşılacağı üzere iki değerin
  karşılaştırılmasını sağlar. Çeşitli veri türleri arasındaki
  karşılaştırma örneklerinin yer aldığı <a href="types.comparisons.php" class="link">tür karşılaştırma tabloları</a> sayfasına da bakılabilir.
 </p>
 <table class="doctable table">
  <caption><strong>Karşılaştırma İşleçleri</strong></caption>
  
   <thead>
    <tr>
     <th>Örnek</th>
     <th>İsim</th>
     <th>Sonuç</th>
    </tr>

   </thead>

   <tbody class="tbody">
    <tr>
     <td><strong class="userinput"><code>$a == $b</code></strong></td>
     <td>Eşittir</td>
     <td>Tür dönüşümünden sonra, <var class="varname">$a</var> ve
       <var class="varname">$b</var> aynı değere sahipse sonuç <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> olur.</td>
    </tr>

    <tr>
     <td><strong class="userinput"><code>$a === $b</code></strong></td>
     <td>Aynıdır</td>
     <td>
      <var class="varname">$a</var> ve <var class="varname">$b</var> aynı değere sahipse ve
      türleri de aynıysa sonuç <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> olur.
     </td>
    </tr>

    <tr>
     <td><strong class="userinput"><code>$a != $b</code></strong></td>
     <td>Eşit değildir</td>
     <td>Tür dönüşümünden sonra, <var class="varname">$a</var> ve
      <var class="varname">$b</var> aynı değere sahip değilse sonuç <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> olur.
     </td>
    </tr>

    <tr>
     <td><strong class="userinput"><code>$a &lt;&gt; $b</code></strong></td>
     <td>Eşit değildir</td>
     <td>Tür dönüşümünden sonra, <var class="varname">$a</var> ve
      <var class="varname">$b</var> aynı değere sahip değilse sonuç <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> olur.
     </td>
    </tr>

    <tr>
     <td><strong class="userinput"><code>$a !== $b</code></strong></td>
     <td>Farklıdır</td>
     <td>
      <var class="varname">$a</var> ve <var class="varname">$b</var> aynı değere sahip
      değilse veya türleri aynı değilse sonuç <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> olur.
     </td>
    </tr>

    <tr>
     <td><strong class="userinput"><code>$a &lt; $b</code></strong></td>
     <td>Küçüktür</td>
     <td><var class="varname">$a</var> kesin olarak <var class="varname">$b</var>&#039;den
     küçükse sonuç <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> olur.</td>
    </tr>

    <tr>
     <td><strong class="userinput"><code>$a &gt; $b</code></strong></td>
     <td>Büyüktür</td>
     <td><var class="varname">$a</var> kesin olarak <var class="varname">$b</var>&#039;den
     büyükse sonuç <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> olur.</td>
    </tr>

    <tr>
     <td><strong class="userinput"><code>$a &lt;= $b</code></strong></td>
     <td>Küçük veya eşittir</td>
     <td><var class="varname">$a</var>, <var class="varname">$b</var>&#039;den küçük veya ona
     eşitse sonuç <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> olur.</td>
    </tr>

    <tr>
     <td><strong class="userinput"><code>$a &gt;= $b</code></strong></td>
     <td>Büyük veya eşittir</td>
     <td><var class="varname">$a</var>, <var class="varname">$b</var>&#039;den büyük veya ona
     eşitse sonuç <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> olur.</td>
    </tr>

    <tr>
     <td>$a &lt;=&gt; $b</td>
     <td>Mekik</td>
     <td>
      <var class="varname">$a</var> küçük, eşit veya büyük <var class="varname">$b</var>
      olduğunda, bir tamsayı da sırasıyla küçük, eşit veya büyük sıfırdır.
     </td>
    </tr>

   </tbody>
  
 </table>

 <p class="para">
  Her iki terim de sayısal dize ise veya bir terim sayı ve diğeri sayısal
  dizeyse, karşılaştırma sayısal olarak yapılır. Bu kurallar ayrıca
  <a href="control-structures.switch.php" class="link">switch</a> deyimine de
  uygulanır. <code class="literal">===</code> veya <code class="literal">!==</code> ile tür
  ve dolayısıyla değer karşılaştırıldığından böyle karşılaştırmalarda
  tür dönüşümü yapılmaz.
 </p>

 <div class="warning"><strong class="warning">Uyarı</strong>
  <p class="para">
   PHP 8.0.0&#039;dan önce, bir dize bir sayı veya sayısal bir dizeyle
   karşılaştırılırsa, karşılaştırma yapılmadan önce dize bir sayıya
   dönüştürülürdü. Bu, aşağıdaki örnekte görülebileceği gibi şaşırtıcı
   sonuçlara yol açabilir:
   <div class="informalexample">
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">0 </span><span style="color: #007700">== </span><span style="color: #DD0000">"a"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #DD0000">"1" </span><span style="color: #007700">== </span><span style="color: #DD0000">"01"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #DD0000">"10" </span><span style="color: #007700">== </span><span style="color: #DD0000">"1e1"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">100 </span><span style="color: #007700">== </span><span style="color: #DD0000">"1e2"</span><span style="color: #007700">);<br /><br />switch (</span><span style="color: #DD0000">"a"</span><span style="color: #007700">) {<br />case </span><span style="color: #0000BB">0</span><span style="color: #007700">:<br />    echo </span><span style="color: #DD0000">"0"</span><span style="color: #007700">;<br />    break;<br />case </span><span style="color: #DD0000">"a"</span><span style="color: #007700">:<br />    echo </span><span style="color: #DD0000">"a"</span><span style="color: #007700">;<br />    break;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <p class="para">
Yukarıdaki örneğin PHP 7 çıktısı:</p>
    <div class="example-contents screen">
<div class="cdata"><pre>
bool(true)
bool(true)
bool(true)
bool(true)
0
</pre></div>
    </div>
    <p class="para">
Yukarıdaki örneğin PHP 8 çıktısı:</p>
    <div class="example-contents screen">
<div class="cdata"><pre>
bool(false)
bool(true)
bool(true)
bool(true)
a
</pre></div>
    </div>
   </div>
  </p>
 </div>

 <p class="para">
  <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: #FF8000">// Tamsayılar<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">1 </span><span style="color: #007700">&lt;=&gt; </span><span style="color: #0000BB">1</span><span style="color: #007700">; </span><span style="color: #FF8000">// 0<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">1 </span><span style="color: #007700">&lt;=&gt; </span><span style="color: #0000BB">2</span><span style="color: #007700">; </span><span style="color: #FF8000">// -1<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">2 </span><span style="color: #007700">&lt;=&gt; </span><span style="color: #0000BB">1</span><span style="color: #007700">; </span><span style="color: #FF8000">// 1<br /><br />// Gerçeller<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">1.5 </span><span style="color: #007700">&lt;=&gt; </span><span style="color: #0000BB">1.5</span><span style="color: #007700">; </span><span style="color: #FF8000">// 0<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">1.5 </span><span style="color: #007700">&lt;=&gt; </span><span style="color: #0000BB">2.5</span><span style="color: #007700">; </span><span style="color: #FF8000">// -1<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">2.5 </span><span style="color: #007700">&lt;=&gt; </span><span style="color: #0000BB">1.5</span><span style="color: #007700">; </span><span style="color: #FF8000">// 1<br /><br />// Dizeler<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"a" </span><span style="color: #007700">&lt;=&gt; </span><span style="color: #DD0000">"a"</span><span style="color: #007700">; </span><span style="color: #FF8000">// 0<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"a" </span><span style="color: #007700">&lt;=&gt; </span><span style="color: #DD0000">"b"</span><span style="color: #007700">; </span><span style="color: #FF8000">// -1<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"b" </span><span style="color: #007700">&lt;=&gt; </span><span style="color: #DD0000">"a"</span><span style="color: #007700">; </span><span style="color: #FF8000">// 1<br /><br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"a" </span><span style="color: #007700">&lt;=&gt; </span><span style="color: #DD0000">"aa"</span><span style="color: #007700">; </span><span style="color: #FF8000">// -1<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"zz" </span><span style="color: #007700">&lt;=&gt; </span><span style="color: #DD0000">"aa"</span><span style="color: #007700">; </span><span style="color: #FF8000">// 1<br /><br />// Diziler<br /></span><span style="color: #007700">echo [] &lt;=&gt; []; </span><span style="color: #FF8000">// 0<br /></span><span style="color: #007700">echo [</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: #0000BB">3</span><span style="color: #007700">] &lt;=&gt; [</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: #0000BB">3</span><span style="color: #007700">]; </span><span style="color: #FF8000">// 0<br /></span><span style="color: #007700">echo [</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: #0000BB">3</span><span style="color: #007700">] &lt;=&gt; []; </span><span style="color: #FF8000">// 1<br /></span><span style="color: #007700">echo [</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: #0000BB">3</span><span style="color: #007700">] &lt;=&gt; [</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: #0000BB">1</span><span style="color: #007700">]; </span><span style="color: #FF8000">// 1<br /></span><span style="color: #007700">echo [</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: #0000BB">3</span><span style="color: #007700">] &lt;=&gt; [</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: #0000BB">4</span><span style="color: #007700">]; </span><span style="color: #FF8000">// -1<br /><br />// Nesneler<br /></span><span style="color: #0000BB">$a </span><span style="color: #007700">= (object) [</span><span style="color: #DD0000">"a" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"b"</span><span style="color: #007700">];<br /></span><span style="color: #0000BB">$b </span><span style="color: #007700">= (object) [</span><span style="color: #DD0000">"a" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"b"</span><span style="color: #007700">];<br />echo </span><span style="color: #0000BB">$a </span><span style="color: #007700">&lt;=&gt; </span><span style="color: #0000BB">$b</span><span style="color: #007700">; </span><span style="color: #FF8000">// 0<br /><br /></span><span style="color: #0000BB">$a </span><span style="color: #007700">= (object) [</span><span style="color: #DD0000">"a" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"b"</span><span style="color: #007700">];<br /></span><span style="color: #0000BB">$b </span><span style="color: #007700">= (object) [</span><span style="color: #DD0000">"a" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"c"</span><span style="color: #007700">];<br />echo </span><span style="color: #0000BB">$a </span><span style="color: #007700">&lt;=&gt; </span><span style="color: #0000BB">$b</span><span style="color: #007700">; </span><span style="color: #FF8000">// -1<br /><br /></span><span style="color: #0000BB">$a </span><span style="color: #007700">= (object) [</span><span style="color: #DD0000">"a" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"c"</span><span style="color: #007700">];<br /></span><span style="color: #0000BB">$b </span><span style="color: #007700">= (object) [</span><span style="color: #DD0000">"a" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"b"</span><span style="color: #007700">];<br />echo </span><span style="color: #0000BB">$a </span><span style="color: #007700">&lt;=&gt; </span><span style="color: #0000BB">$b</span><span style="color: #007700">; </span><span style="color: #FF8000">// 1<br /><br />// sadece değerler karşılaştırılmaz, anahtarlar da eşleşmeli<br /></span><span style="color: #0000BB">$a </span><span style="color: #007700">= (object) [</span><span style="color: #DD0000">"a" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"b"</span><span style="color: #007700">];<br /></span><span style="color: #0000BB">$b </span><span style="color: #007700">= (object) [</span><span style="color: #DD0000">"b" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"b"</span><span style="color: #007700">];<br />echo </span><span style="color: #0000BB">$a </span><span style="color: #007700">&lt;=&gt; </span><span style="color: #0000BB">$b</span><span style="color: #007700">; </span><span style="color: #FF8000">// 1<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>

 <p class="para">
  Çeşitli türler arasında karşılaştırma aşağıdaki tabloya ve tablodaki
  sıralamaya uygun olarak yapılır.
 </p>
 <table id="language.operators.comparison.types" class="doctable table">
  <caption><strong>Çeşitli Türlerin Karşılaştırılması</strong></caption>
  
   <thead>
    <tr>
     <th>1. Terimin Türü</th>
     <th>2. Terimin Türü</th>
     <th>Sonuç</th>
    </tr>

   </thead>

   <tbody class="tbody">
    <tr>
     <td><span class="type"><a href="language.types.null.php" class="type null">null</a></span> veya <span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
     <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
     <td><strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>, &quot;&quot; dizgesine dönüştürülür, sayısal veya alfabetik
     karşılaştırma yapılır.</td>
    </tr>

    <tr>
     <td><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span> veya <span class="type"><a href="language.types.null.php" class="type null">null</a></span></td>
     <td>herhangi bir tür</td>
     <td>Her iki tarafta <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span> türüne dönüşümden sonra
       <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> &lt; <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> karşılaştırması yapılır</td>
    </tr>

    <tr>
     <td><span class="type"><a href="language.types.object.php" class="type object">object</a></span></td>
     <td><span class="type"><a href="language.types.object.php" class="type object">object</a></span></td>
     <td>Yerleşik sınıflar kendi karşılaştırmalarını tanımlayabilir.
     Farklı sınıflar eşsizdir. Aynı sınıflar için bkz: <a href="language.oop5.object-comparison.php" class="link">Nesne karşılaştırması</a>
     </td>
    </tr>

    <tr>
     <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span>, <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span>, <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
       veya <span class="type"><a href="language.types.float.php" class="type float">float</a></span></td>
     <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span>, <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span>, <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
       veya <span class="type"><a href="language.types.float.php" class="type float">float</a></span></td>
     <td>Diziler ve özkaynaklar sayılara dönüştürülür, sayısal
     karşılaştırma yapılır.</td>
    </tr>

    <tr>
     <td><span class="type"><a href="language.types.array.php" class="type array">array</a></span></td>
     <td><span class="type"><a href="language.types.array.php" class="type array">array</a></span></td>
     <td>Daha az üyeye sahip dizi diğerinden küçüktür. Eğer 1. terimin
     anahtarı 2. terimde yoksa diziler eşsizdir. Karşılaştırma
     daima değerler karşılaştırılarak yapılır (aşağıdaki örneğe
     bakınız).</td>
    </tr>

    <tr>
     <td><span class="type"><a href="language.types.object.php" class="type object">object</a></span></td>
     <td>herhangi bir tür</td>
     <td><span class="type"><a href="language.types.object.php" class="type object">object</a></span> daima büyüktür.</td>
    </tr>

    <tr>
     <td><span class="type"><a href="language.types.array.php" class="type array">array</a></span></td>
     <td>herhangi bir tür</td>
     <td><span class="type"><a href="language.types.array.php" class="type array">array</a></span> daima büyüktür</td>
    </tr>

   </tbody>
  
 </table>

 <p class="para">
  <div class="example" id="example-1">
   <p><strong>Örnek 1 - Bool/null karşılaştırması</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">// Bool ve null daima bool gibi karşılaştırılır.<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">1 </span><span style="color: #007700">== </span><span style="color: #0000BB">TRUE</span><span style="color: #007700">);  </span><span style="color: #FF8000">// TRUE - (bool) 1 == TRUE ile aynı<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">0 </span><span style="color: #007700">== </span><span style="color: #0000BB">FALSE</span><span style="color: #007700">); </span><span style="color: #FF8000">// TRUE - (bool) 0 == FALSE ile aynı<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">100 </span><span style="color: #007700">&lt; </span><span style="color: #0000BB">TRUE</span><span style="color: #007700">); </span><span style="color: #FF8000">// FALSE - (bool) 100 &lt; TRUE ile aynı<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(-</span><span style="color: #0000BB">10 </span><span style="color: #007700">&lt; </span><span style="color: #0000BB">FALSE</span><span style="color: #007700">);</span><span style="color: #FF8000">// FALSE - (bool) -10 &lt; FALSE ile aynı<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">min</span><span style="color: #007700">(-</span><span style="color: #0000BB">100</span><span style="color: #007700">, -</span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">NULL</span><span style="color: #007700">, </span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">100</span><span style="color: #007700">)); </span><span style="color: #FF8000">// NULL - (bool) NULL &lt; (bool)-100 is FALSE &lt; TRUE<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>


 <p class="para">
  <div class="example" id="example-2">
   <p><strong>Örnek 2 - Özetle Standard Dizi Karşılaştırması</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">// Diziler mekik işlecinin yanı sıra standart karşılaştırma işleçleri ile<br />// böyle karşılaştırılır<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">standard_dizi_karşılaştır</span><span style="color: #007700">(</span><span style="color: #0000BB">$trm1</span><span style="color: #007700">, </span><span style="color: #0000BB">$trm2</span><span style="color: #007700">)<br />{<br />    if (</span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$ter1</span><span style="color: #007700">) &lt; </span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$ter2</span><span style="color: #007700">)) {<br />      return -</span><span style="color: #0000BB">1</span><span style="color: #007700">;                          </span><span style="color: #FF8000">// $ter1 &lt; $ter2<br />    </span><span style="color: #007700">} elseif (</span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$op1</span><span style="color: #007700">) &gt; </span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$op2</span><span style="color: #007700">)) {<br />        return </span><span style="color: #0000BB">1</span><span style="color: #007700">;                         </span><span style="color: #FF8000">// $ter1 &gt; $ter2<br />    </span><span style="color: #007700">}<br />    foreach (</span><span style="color: #0000BB">$ter1 </span><span style="color: #007700">as </span><span style="color: #0000BB">$anh </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">$değ</span><span style="color: #007700">) {<br />        if (!</span><span style="color: #0000BB">array_key_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$anh</span><span style="color: #007700">, </span><span style="color: #0000BB">$ter2</span><span style="color: #007700">)) {<br />            return </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />        } elseif (</span><span style="color: #0000BB">$değ </span><span style="color: #007700">&lt; </span><span style="color: #0000BB">$ter2</span><span style="color: #007700">[</span><span style="color: #0000BB">$anh</span><span style="color: #007700">]) {<br />            return -</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />        } elseif (</span><span style="color: #0000BB">$değ </span><span style="color: #007700">&gt; </span><span style="color: #0000BB">$ter2</span><span style="color: #007700">[</span><span style="color: #0000BB">$anh</span><span style="color: #007700">]) {<br />            return </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />        }<br />    }<br />    return </span><span style="color: #0000BB">0</span><span style="color: #007700">; </span><span style="color: #FF8000">// $ter1 == $ter2<br /></span><span style="color: #007700">}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>

 <div class="warning"><strong class="warning">Uyarı</strong>
  <h1 class="title">Kayan noktalı sayıların karşılaştırılması</h1>
  <p class="para">
   <span class="type"><a href="language.types.float.php" class="type float">float</a></span> türlerinin dahili gösteriminden dolayı iki
   <span class="type"><a href="language.types.float.php" class="type float">float</a></span> sayının eşitliğine bakılamaz.
  </p>
  <p class="para">
   Bu konuda daha ayrıntılı bilgi için <span class="type"><a href="language.types.float.php" class="type float">float</a></span> türünün belgesine
   bakılabilir.
  </p>
 </div>
 <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
  <span class="simpara">
   Farklı türdeki değerleri karşılaştırırken, özellikle tamsayıları
   mantıksal değerlerle veya dizgelerle karşılaştırırken, PHP&#039;nin otomatik
   tür dönüşümünün her zaman açık olmadığı unutmamalıdır. Bu nedenle, çoğu
   durumda <code class="literal">==</code> ve <code class="literal">!=</code> yerine genellikle
   <code class="literal">===</code> and <code class="literal">!==</code>  karşılaştırmalarının
   kullanılması önerilir.
  </span>
 </p></blockquote>

 <div class="sect2" id="language.operators.comparison.incomparable">
  <h3 class="title">Eşsiz Değerler</h3>
  <p class="simpara">
   Benzerlik karşılaştırması (<code class="literal">===</code> and
   <code class="literal">!==</code>) her değere uygulanabilirken, diğer
   karşılaştırma işleçlerinin sadece karşılaştırılabilir değerlere
   uygulanması gerekir. Eşsiz değerlerin karşılaştırma sonucu tanımsızdır
   ve bu sonuca güvenilmemelidir.
  </p>
 </div>

 <div class="sect2">
  <h3 class="title">Ayrıca Bakınız</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.strcasecmp.php" class="function">strcasecmp()</a></span></li>
    <li><span class="function"><a href="function.strcmp.php" class="function">strcmp()</a></span></li>
    <li><a href="language.operators.array.php" class="link">Dizi
     işleçleri</a></li>
    <li><a href="language.types.php" class="link">Türler</a></li>
   </ul>
  </p>
 </div>

 <div class="sect2" id="language.operators.comparison.ternary">
  <h3 class="title">Üç Terimli İşleç</h3>
  <p class="para">
   Diğer bir karşılaştırma işleci <code class="literal">?:</code> (üç terimli)
   işlecidir.
   <div class="example" id="example-3">
    <p><strong>Örnek 3 - Öntanımlı bir değer atama</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">// Üç terimli işleç için kullanım örneği<br /></span><span style="color: #0000BB">$action </span><span style="color: #007700">= (empty(</span><span style="color: #0000BB">$_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'action'</span><span style="color: #007700">])) ? </span><span style="color: #DD0000">'default' </span><span style="color: #007700">: </span><span style="color: #0000BB">$_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'action'</span><span style="color: #007700">];<br /><br /></span><span style="color: #FF8000">// Yukarıdaki kod ile buradaki if/else deyimi aynı işlemi yapar.<br /></span><span style="color: #007700">if (empty(</span><span style="color: #0000BB">$_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'action'</span><span style="color: #007700">])) {<br />    </span><span style="color: #0000BB">$action </span><span style="color: #007700">= </span><span style="color: #DD0000">'default'</span><span style="color: #007700">;<br />} else {<br />    </span><span style="color: #0000BB">$action </span><span style="color: #007700">= </span><span style="color: #0000BB">$_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'action'</span><span style="color: #007700">];<br />}<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
   <code class="literal">(ifade1) ? (ifade2) : (ifade3)</code> ifadesinin sonucu,
   <span class="replaceable">ifade1</span> doğruysa
   <span class="replaceable">ifade2</span> değilse
   <span class="replaceable">ifade3</span>&#039;tür.
  </p>
  <p class="para">
   Üç terimli işlecin orta parçasını dışarda bırakmak mümkündür.
   <code class="literal">ifade1 ?: ifade3</code> ifadesinin sonucu,
   <span class="replaceable">ifade1</span> doğruysa
   <span class="replaceable">ifade1</span> değilse
   <span class="replaceable">ifade3</span>&#039;tür.
  </p>
  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <span class="simpara">
    Üç terimli işleç aslında bir ifadedir, dolayısıyla sonucu bir
    değişkene atanamaz, fakat bir deyimin sonucuna atanabilir.
    Bir değişkenin gönderimli döndürülmesi gerekiyorsa bu önem kazanır.
    Gönderimli olarak değer döndüren bir işlevde
    <code class="literal">return $var == 42 ? $a : $b;</code> deyimi bu bakımdan
    çalışmaz ve bir uyarı gösterilir.
   </span>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <p class="para">
    Üç terimli işleçleri parantezsiz olarak iç içe kullanmanız önerilmez.
    PHP&#039;nin böyle bir
    işlemin tek bir deyimde yapılmak istenmesi durumundaki davranışı
    diğer dillerle karşılaştırıldığında beklendiği gibi olmayabilir.
    Aslında PHP 8.0.0&#039;dan önce, üçlü ifadeler diğer programlama dilleri
    gibi sağdan sola yerine soldan sağa değerlendiriliyordu.
    PHP 7.4.0 itibariyle soldan sağa ilişkilendirmeye güvenilmesi
    önerilmemekte olup PHP 8.0.0 itibariyle üçlü işlecin değerlendirmesi
    yönsüzdür.
    <div class="example" id="example-4">
     <p><strong>Örnek 4 - İç içe üç terimli davranışı</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">// ilk bakışta aşağıdaki deyimin sonucu 'true' olacak sanılır.<br /></span><span style="color: #007700">echo (</span><span style="color: #0000BB">true </span><span style="color: #007700">? </span><span style="color: #DD0000">'true' </span><span style="color: #007700">: </span><span style="color: #0000BB">false </span><span style="color: #007700">? </span><span style="color: #DD0000">'t' </span><span style="color: #007700">: </span><span style="color: #DD0000">'f'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// ancak gerçekte çıktı 't' olur, PHP 8.0.0 öncesinde.<br />// Çünkü üç terimli ifade soldan ilişkilendirilir.<br /><br />// Aynı deyimi şöyle yazarsanız, durum anlaşılır hale gelir<br /></span><span style="color: #007700">echo ((</span><span style="color: #0000BB">true </span><span style="color: #007700">? </span><span style="color: #DD0000">'true' </span><span style="color: #007700">: </span><span style="color: #0000BB">false</span><span style="color: #007700">) ? </span><span style="color: #DD0000">'t' </span><span style="color: #007700">: </span><span style="color: #DD0000">'f'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Burada, ilk ifade mantıksal olarak doğru olduğundan sonuç (bool) true<br />// olacak, böylece ikinci üç terimlinin ilk terimi 'true' olacak ve<br />// ikinci üç terimliden 't' dönecektir.<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <p class="para">
    Ancak kısa üç terimli (<code class="literal">?:</code>) zincirleri kararlıdır ve
    beklendiği gibi davranır. Yanlış olmayan ilk bağımsız değişken
    değerlendirilir. Tanımsız değerlerin yine de bir uyarı vereceği
    unutulmamalıdır.
    <div class="example" id="example-5">
     <p><strong>Örnek 5 - Kısa üç terimli zinciri</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">echo </span><span style="color: #0000BB">0 </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: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">; </span><span style="color: #FF8000">//1<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">0 </span><span style="color: #007700">?: </span><span style="color: #0000BB">0 </span><span style="color: #007700">?: </span><span style="color: #0000BB">2 </span><span style="color: #007700">?: </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">; </span><span style="color: #FF8000">//2<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">0 </span><span style="color: #007700">?: </span><span style="color: #0000BB">0 </span><span style="color: #007700">?: </span><span style="color: #0000BB">0 </span><span style="color: #007700">?: </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">; </span><span style="color: #FF8000">//3<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
  </p></blockquote>
 </div>

 <div class="sect2" id="language.operators.comparison.coalesce">
  <h3 class="title">Null kaynaşma işleci</h3>
  <p class="para">
   Diğer bir kullanışlı işleç kısaltması olan &quot;??&quot; null kaynaşma işleci
   adını alır.
   <div class="example" id="example-6">
    <p><strong>Örnek 6 - Öntanımlı değer atama</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">// Null kaynaşma işleci için kullanım örneği<br /></span><span style="color: #0000BB">$action </span><span style="color: #007700">= </span><span style="color: #0000BB">$_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'action'</span><span style="color: #007700">] ?? </span><span style="color: #DD0000">'default'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Yukarıdaki satır, bu if/else deyimine eşdeğerdir.<br /></span><span style="color: #007700">if (isset(</span><span style="color: #0000BB">$_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'action'</span><span style="color: #007700">])) {<br />    </span><span style="color: #0000BB">$action </span><span style="color: #007700">= </span><span style="color: #0000BB">$_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'action'</span><span style="color: #007700">];<br />} else {<br />    </span><span style="color: #0000BB">$action </span><span style="color: #007700">= </span><span style="color: #DD0000">'default'</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
   <code class="literal">(ifade1) ?? (ifade2)</code> ifadesinin sonucu,
   <span class="replaceable">ifade1</span> <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>
   ise <span class="replaceable">ifade2</span>
   değilse <span class="replaceable">ifade1</span>&#039;dir.
  </p>
  <p class="para">
   Aslında, bu işleç sol taraf değeri mevcut değilse
   <span class="function"><a href="function.isset.php" class="function">isset()</a></span> gibi bir uyarı ya da bilgi çıktılamaz.
   Bu, özellikle dizi anahtarlarında kullanışlıdır.
  </p>
  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <span class="simpara">
    Null kaynaşma işleci bir ifade olup bir değişkene atanmaz ama bir deyimin
    sonucuna atanabilir. Bir değişkenin gönderimli döndürülmesi gerekiyorsa
    bunu belirtmek önemlidir. Gönderimli döndüren bir işlevde
    <code class="literal">return $foo ?? $bar;</code> deyimi bu nedenle çalışmaz ve bir
    uyarı çıktılanır.
   </span>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <p class="para">
    Null kaynaşma işleci düşük önceliğe sahiptir. Yani, diğer işleçlerle
    (dizge bitiştirme veya aritmetik işleçler gibi) birlikte
    kullanıldığında yay ayraçlar gerekli olabilir.
   </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">// $name tanımsızsa uyarı verilir<br /></span><span style="color: #007700">print </span><span style="color: #DD0000">'Mr. ' </span><span style="color: #007700">. </span><span style="color: #0000BB">$name </span><span style="color: #007700">?? </span><span style="color: #DD0000">'Anonymous'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// "Mr. Anonymous" basar<br /></span><span style="color: #007700">print </span><span style="color: #DD0000">'Mr. ' </span><span style="color: #007700">. (</span><span style="color: #0000BB">$name </span><span style="color: #007700">?? </span><span style="color: #DD0000">'Anonymous'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <p class="para">
    Null kaynaşma işleci basit iç içeliğe izin verir:
    <div class="example" id="example-7">
     <p><strong>Örnek 7 - İçiçe null kaynaşma işleci</strong></p>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$foo </span><span style="color: #007700">= </span><span style="color: #0000BB">null</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$bar </span><span style="color: #007700">= </span><span style="color: #0000BB">null</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$baz </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$qux </span><span style="color: #007700">= </span><span style="color: #0000BB">2</span><span style="color: #007700">;<br /><br />echo </span><span style="color: #0000BB">$foo </span><span style="color: #007700">?? </span><span style="color: #0000BB">$bar </span><span style="color: #007700">?? </span><span style="color: #0000BB">$baz </span><span style="color: #007700">?? </span><span style="color: #0000BB">$qux</span><span style="color: #007700">; </span><span style="color: #FF8000">// 1 basar<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

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