Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > f800694edefe91adea2624f711a41a2d > files > 8940

php-manual-en-5.5.7-1.mga4.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>Comparison Operators</title>

 </head>
 <body><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="language.operators.bitwise.html">Bitwise Operators</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="language.operators.errorcontrol.html">Error Control Operators</a></div>
 <div class="up"><a href="language.operators.html">Operators</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div><hr /><div id="language.operators.comparison" class="sect1">
   <h2 class="title">Comparison Operators</h2>
   <p class="simpara">
    Comparison operators, as their name implies, allow you to compare
    two values.  You may also be interested in viewing
    <a href="types.comparisons.html" class="link">the type comparison tables</a>,
    as they show examples of various type related comparisons.
   </p>
   <table class="doctable table">
    <caption><strong>Comparison Operators</strong></caption>
    
     <thead>
      <tr>
       <th>Example</th>
       <th>Name</th>
       <th>Result</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>$a == $b</td>
       <td>Equal</td>
       <td><strong><code>TRUE</code></strong> if <var class="varname"><var class="varname">$a</var></var> is equal to <var class="varname"><var class="varname">$b</var></var> after type juggling.</td>
      </tr>

      <tr>
       <td>$a === $b</td>
       <td>Identical</td>
       <td>
        <strong><code>TRUE</code></strong> if <var class="varname"><var class="varname">$a</var></var> is equal to <var class="varname"><var class="varname">$b</var></var>, and they are of the same
        type.
       </td>
      </tr>

      <tr>
       <td>$a != $b</td>
       <td>Not equal</td>
       <td><strong><code>TRUE</code></strong> if <var class="varname"><var class="varname">$a</var></var> is not equal to <var class="varname"><var class="varname">$b</var></var> after type juggling.</td>
      </tr>

      <tr>
       <td>$a &lt;&gt; $b</td>
       <td>Not equal</td>
       <td><strong><code>TRUE</code></strong> if <var class="varname"><var class="varname">$a</var></var> is not equal to <var class="varname"><var class="varname">$b</var></var> after type juggling.</td>
      </tr>

      <tr>
       <td>$a !== $b</td>
       <td>Not identical</td>
       <td>
        <strong><code>TRUE</code></strong> if <var class="varname"><var class="varname">$a</var></var> is not equal to <var class="varname"><var class="varname">$b</var></var>, or they are not of the same
        type.
       </td>
      </tr>

      <tr>
       <td>$a &lt; $b</td>
       <td>Less than</td>
       <td><strong><code>TRUE</code></strong> if <var class="varname"><var class="varname">$a</var></var> is strictly less than <var class="varname"><var class="varname">$b</var></var>.</td>
      </tr>

      <tr>
       <td>$a &gt; $b</td>
       <td>Greater than</td>
       <td><strong><code>TRUE</code></strong> if <var class="varname"><var class="varname">$a</var></var> is strictly greater than <var class="varname"><var class="varname">$b</var></var>.</td>
      </tr>

      <tr>
       <td>$a &lt;= $b</td>
       <td>Less than or equal to </td>
       <td><strong><code>TRUE</code></strong> if <var class="varname"><var class="varname">$a</var></var> is less than or equal to <var class="varname"><var class="varname">$b</var></var>.</td>
      </tr>

      <tr>
       <td>$a &gt;= $b</td>
       <td>Greater than or equal to </td>
       <td><strong><code>TRUE</code></strong> if <var class="varname"><var class="varname">$a</var></var> is greater than or equal to <var class="varname"><var class="varname">$b</var></var>.</td>
      </tr>

     </tbody>
    
   </table>

   <p class="para">
    If you compare a number with a string or the comparison involves numerical
    strings, then each string is
    <a href="language.types.string.html#language.types.string.conversion" class="link">converted to a number</a>
    and the comparison performed numerically. These rules also apply to the
    <a href="control-structures.switch.html" class="link">switch</a> statement. The
    type conversion does not take place when the comparison is === or !== as
    this involves comparing the type as well as the value.
    <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&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #DD0000">"a"</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;0&nbsp;==&nbsp;0&nbsp;-&gt;&nbsp;true<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #DD0000">"1"&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #DD0000">"01"</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;1&nbsp;==&nbsp;1&nbsp;-&gt;&nbsp;true<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #DD0000">"10"&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #DD0000">"1e1"</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;10&nbsp;==&nbsp;10&nbsp;-&gt;&nbsp;true<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">100&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #DD0000">"1e2"</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;100&nbsp;==&nbsp;100&nbsp;-&gt;&nbsp;true<br /><br /></span><span style="color: #007700">switch&nbsp;(</span><span style="color: #DD0000">"a"</span><span style="color: #007700">)&nbsp;{<br />case&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">:<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"0"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;break;<br />case&nbsp;</span><span style="color: #DD0000">"a"</span><span style="color: #007700">:&nbsp;</span><span style="color: #FF8000">//&nbsp;never&nbsp;reached&nbsp;because&nbsp;"a"&nbsp;is&nbsp;already&nbsp;matched&nbsp;with&nbsp;0<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">"a"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;break;<br />}<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
     </div>

    </div>
   </p>

   <p class="para">
    For various types, comparison is done according to the following
    table (in order).
   </p>
   <table id="language.operators.comparison.types" class="doctable table">
    <caption><strong>Comparison with Various Types</strong></caption>
    
     <thead>
      <tr>
       <th>Type of Operand 1</th>
       <th>Type of Operand 2</th>
       <th>Result</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td><span class="type"><a href="language.types.null.html" class="type null">null</a></span> or <span class="type"><a href="language.types.string.html" class="type string">string</a></span></td>
       <td><span class="type"><a href="language.types.string.html" class="type string">string</a></span></td>
       <td>Convert <strong><code>NULL</code></strong> to &quot;&quot;, numerical or lexical comparison</td>
      </tr>

      <tr>
       <td><span class="type"><a href="language.types.boolean.html" class="type bool">bool</a></span> or <span class="type"><a href="language.types.null.html" class="type null">null</a></span></td>
       <td>anything</td>
       <td>Convert both sides to <span class="type"><a href="language.types.boolean.html" class="type bool">bool</a></span>, <strong><code>FALSE</code></strong> &lt; <strong><code>TRUE</code></strong></td>
      </tr>

      <tr>
       <td><span class="type"><a href="language.types.object.html" class="type object">object</a></span></td>
       <td><span class="type"><a href="language.types.object.html" class="type object">object</a></span></td>
       <td>Built-in classes can define its own comparison, different classes
        are uncomparable, same class - compare properties the same way as
        arrays (PHP 4), PHP 5 has its own <a href="language.oop5.object-comparison.html" class="link">explanation</a>
       </td>
      </tr>

      <tr>
       <td><span class="type"><a href="language.types.string.html" class="type string">string</a></span>, <span class="type"><a href="language.types.resource.html" class="type resource">resource</a></span> or <span class="type"><a href="language.pseudo-types.html#language.types.number" class="type number">number</a></span></td>
       <td><span class="type"><a href="language.types.string.html" class="type string">string</a></span>, <span class="type"><a href="language.types.resource.html" class="type resource">resource</a></span> or <span class="type"><a href="language.pseudo-types.html#language.types.number" class="type number">number</a></span></td>
       <td>Translate strings and resources to numbers, usual math</td>
      </tr>

      <tr>
       <td><span class="type"><a href="language.types.array.html" class="type array">array</a></span></td>
       <td><span class="type"><a href="language.types.array.html" class="type array">array</a></span></td>
       <td>Array with fewer members is smaller, if key from operand 1 is not
        found in operand 2 then arrays are uncomparable, otherwise - compare
        value by value (see following example)</td>
      </tr>

      <tr>
       <td><span class="type"><a href="language.types.object.html" class="type object">object</a></span></td>
       <td>anything</td>
       <td><span class="type"><a href="language.types.object.html" class="type object">object</a></span> is always greater</td>
      </tr>

      <tr>
       <td><span class="type"><a href="language.types.array.html" class="type array">array</a></span></td>
       <td>anything</td>
       <td><span class="type"><a href="language.types.array.html" class="type array">array</a></span> is always greater</td>
      </tr>

     </tbody>
    
   </table>


   <p class="para">
    <div class="example" id="example-121">
     <p><strong>Example #1 Boolean/null comparison</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">//&nbsp;Bool&nbsp;and&nbsp;null&nbsp;are&nbsp;compared&nbsp;as&nbsp;bool&nbsp;always<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">TRUE</span><span style="color: #007700">);&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;TRUE&nbsp;-&nbsp;same&nbsp;as&nbsp;(bool)1&nbsp;==&nbsp;TRUE<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">FALSE</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;TRUE&nbsp;-&nbsp;same&nbsp;as&nbsp;(bool)0&nbsp;==&nbsp;FALSE<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">100&nbsp;</span><span style="color: #007700">&lt;&nbsp;</span><span style="color: #0000BB">TRUE</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;FALSE&nbsp;-&nbsp;same&nbsp;as&nbsp;(bool)100&nbsp;&lt;&nbsp;TRUE<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(-</span><span style="color: #0000BB">10&nbsp;</span><span style="color: #007700">&lt;&nbsp;</span><span style="color: #0000BB">FALSE</span><span style="color: #007700">);</span><span style="color: #FF8000">//&nbsp;FALSE&nbsp;-&nbsp;same&nbsp;as&nbsp;(bool)-10&nbsp;&lt;&nbsp;FALSE<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">,&nbsp;-</span><span style="color: #0000BB">10</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">10</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">100</span><span style="color: #007700">));&nbsp;</span><span style="color: #FF8000">//&nbsp;NULL&nbsp;-&nbsp;(bool)NULL&nbsp;&lt;&nbsp;(bool)-100&nbsp;is&nbsp;FALSE&nbsp;&lt;&nbsp;TRUE<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
     </div>

    </div>
   </p>


   <p class="para">
    <div class="example" id="example-122">
     <p><strong>Example #2 Transcription of standard array comparison</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">//&nbsp;Arrays&nbsp;are&nbsp;compared&nbsp;like&nbsp;this&nbsp;with&nbsp;standard&nbsp;comparison&nbsp;operators<br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">standard_array_compare</span><span style="color: #007700">(</span><span style="color: #0000BB">$op1</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$op2</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$op1</span><span style="color: #007700">)&nbsp;&lt;&nbsp;</span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$op2</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">;&nbsp;</span><span style="color: #FF8000">//&nbsp;$op1&nbsp;&lt;&nbsp;$op2<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">}&nbsp;elseif&nbsp;(</span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$op1</span><span style="color: #007700">)&nbsp;&gt;&nbsp;</span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$op2</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">;&nbsp;</span><span style="color: #FF8000">//&nbsp;$op1&nbsp;&gt;&nbsp;$op2<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">}<br />&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(</span><span style="color: #0000BB">$op1&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">$key&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">$val</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">array_key_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$key</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$op2</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">;&nbsp;</span><span style="color: #FF8000">//&nbsp;uncomparable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">}&nbsp;elseif&nbsp;(</span><span style="color: #0000BB">$val&nbsp;</span><span style="color: #007700">&lt;&nbsp;</span><span style="color: #0000BB">$op2</span><span style="color: #007700">[</span><span style="color: #0000BB">$key</span><span style="color: #007700">])&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;elseif&nbsp;(</span><span style="color: #0000BB">$val&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">$op2</span><span style="color: #007700">[</span><span style="color: #0000BB">$key</span><span style="color: #007700">])&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">;&nbsp;</span><span style="color: #FF8000">//&nbsp;$op1&nbsp;==&nbsp;$op2<br /></span><span style="color: #007700">}<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
     </div>

    </div>
   </p>

   <p class="para">
    See also  <span class="function"><a href="function.strcasecmp.html" class="function">strcasecmp()</a></span>,
     <span class="function"><a href="function.strcmp.html" class="function">strcmp()</a></span>,
    <a href="language.operators.array.html" class="link">Array operators</a>,
    and the manual section on
    <a href="language.types.html" class="link">Types</a>.
   </p>

   <div class="warning"><strong class="warning">Warning</strong>
    <h1 class="title">Comparison of floating point numbers</h1>

    <p class="para">
     Because of the way <span class="type"><a href="language.types.float.html" class="type float">float</a></span>s are represented internally, you
     should not test two <span class="type"><a href="language.types.float.html" class="type float">float</a></span>s for equality.
    </p>

    <p class="para">
     See the documentation for <span class="type"><a href="language.types.float.html" class="type float">float</a></span> for more information.
    </p>
   </div>

   <div class="sect2" id="language.operators.comparison.ternary">
    <h3 class="title">Ternary Operator</h3>
    <p class="para">
     Another conditional operator is the &quot;?:&quot; (or ternary) operator.
     <div class="example" id="example-123">
      <p><strong>Example #3 Assigning a default value</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">//&nbsp;Example&nbsp;usage&nbsp;for:&nbsp;Ternary&nbsp;Operator<br /></span><span style="color: #0000BB">$action&nbsp;</span><span style="color: #007700">=&nbsp;(empty(</span><span style="color: #0000BB">$_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'action'</span><span style="color: #007700">]))&nbsp;?&nbsp;</span><span style="color: #DD0000">'default'&nbsp;</span><span style="color: #007700">:&nbsp;</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">//&nbsp;The&nbsp;above&nbsp;is&nbsp;identical&nbsp;to&nbsp;this&nbsp;if/else&nbsp;statement<br /></span><span style="color: #007700">if&nbsp;(empty(</span><span style="color: #0000BB">$_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'action'</span><span style="color: #007700">]))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$action&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'default'</span><span style="color: #007700">;<br />}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$action&nbsp;</span><span style="color: #007700">=&nbsp;</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>
     The expression <em>(expr1) ? (expr2) : (expr3)</em>
     evaluates to <span class="replaceable">expr2</span> if
     <span class="replaceable">expr1</span> evaluates to <strong><code>TRUE</code></strong>, and
     <span class="replaceable">expr3</span> if
     <span class="replaceable">expr1</span> evaluates to <strong><code>FALSE</code></strong>.
    </p>
    <p class="para">
     Since PHP 5.3, it is possible to leave out the middle part of the ternary
     operator. Expression <em>expr1 ?: expr3</em> returns
     <span class="replaceable">expr1</span> if <span class="replaceable">expr1</span>
     evaluates to <strong><code>TRUE</code></strong>, and <span class="replaceable">expr3</span> otherwise.
    </p>
    <blockquote class="note"><p><strong class="note">Note</strong>: 
     <span class="simpara">
      Please note that the ternary operator is a statement, and that it
      doesn&#039;t evaluate to a variable, but to the result of a statement. This
      is important to know if you want to return a variable by reference.
      The statement <em>return $var == 42 ? $a : $b;</em> in a
      return-by-reference function will therefore not work and a warning is
      issued in later PHP versions.
     </span>
    </p></blockquote>
    <blockquote class="note"><p><strong class="note">Note</strong>: 
     <p class="para">
      It is recommended that you avoid &quot;stacking&quot; ternary expressions. PHP&#039;s
      behaviour when using more than one ternary operator within a single
      statement is non-obvious:
      <div class="example" id="example-124">
       <p><strong>Example #4 Non-obvious Ternary Behaviour</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">//&nbsp;on&nbsp;first&nbsp;glance,&nbsp;the&nbsp;following&nbsp;appears&nbsp;to&nbsp;output&nbsp;'true'<br /></span><span style="color: #007700">echo&nbsp;(</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">//&nbsp;however,&nbsp;the&nbsp;actual&nbsp;output&nbsp;of&nbsp;the&nbsp;above&nbsp;is&nbsp;'t'<br />//&nbsp;this&nbsp;is&nbsp;because&nbsp;ternary&nbsp;expressions&nbsp;are&nbsp;evaluated&nbsp;from&nbsp;left&nbsp;to&nbsp;right<br /><br />//&nbsp;the&nbsp;following&nbsp;is&nbsp;a&nbsp;more&nbsp;obvious&nbsp;version&nbsp;of&nbsp;the&nbsp;same&nbsp;code&nbsp;as&nbsp;above<br /></span><span style="color: #007700">echo&nbsp;((</span><span style="color: #0000BB">true&nbsp;</span><span style="color: #007700">?&nbsp;</span><span style="color: #DD0000">'true'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">)&nbsp;?&nbsp;</span><span style="color: #DD0000">'t'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">'f'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">//&nbsp;here,&nbsp;you&nbsp;can&nbsp;see&nbsp;that&nbsp;the&nbsp;first&nbsp;expression&nbsp;is&nbsp;evaluated&nbsp;to&nbsp;'true',&nbsp;which<br />//&nbsp;in&nbsp;turn&nbsp;evaluates&nbsp;to&nbsp;(bool)true,&nbsp;thus&nbsp;returning&nbsp;the&nbsp;true&nbsp;branch&nbsp;of&nbsp;the<br />//&nbsp;second&nbsp;ternary&nbsp;expression.<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
       </div>

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

  </div><hr /><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="language.operators.bitwise.html">Bitwise Operators</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="language.operators.errorcontrol.html">Error Control Operators</a></div>
 <div class="up"><a href="language.operators.html">Operators</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div></body></html>