Sophie

Sophie

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

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>Logical Operators</title>

 </head>
 <body><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="language.operators.increment.html">Incrementing/Decrementing Operators</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="language.operators.string.html">String 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.logical" class="sect1">
   <h2 class="title">Logical Operators</h2>

   <table class="doctable table">
    <caption><strong>Logical Operators</strong></caption>
    
     <thead>
      <tr>
       <th>Example</th>
       <th>Name</th>
       <th>Result</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>$a and $b</td>
       <td>And</td>
       <td><strong><code>TRUE</code></strong> if both <var class="varname"><var class="varname">$a</var></var> and <var class="varname"><var class="varname">$b</var></var> are <strong><code>TRUE</code></strong>.</td>
      </tr>

      <tr>
       <td>$a or $b</td>
       <td>Or</td>
       <td><strong><code>TRUE</code></strong> if either <var class="varname"><var class="varname">$a</var></var> or <var class="varname"><var class="varname">$b</var></var> is <strong><code>TRUE</code></strong>.</td>
      </tr>

      <tr>
       <td>$a xor $b</td>
       <td>Xor</td>
       <td><strong><code>TRUE</code></strong> if either <var class="varname"><var class="varname">$a</var></var> or <var class="varname"><var class="varname">$b</var></var> is <strong><code>TRUE</code></strong>, but not both.</td>
      </tr>

      <tr>
       <td>! $a</td>
       <td>Not</td>
       <td><strong><code>TRUE</code></strong> if <var class="varname"><var class="varname">$a</var></var> is not <strong><code>TRUE</code></strong>.</td>
      </tr>

      <tr>
       <td>$a &amp;&amp; $b</td>
       <td>And</td>
       <td><strong><code>TRUE</code></strong> if both <var class="varname"><var class="varname">$a</var></var> and <var class="varname"><var class="varname">$b</var></var> are <strong><code>TRUE</code></strong>.</td>
      </tr>

      <tr>
       <td>$a || $b</td>
       <td>Or</td>
       <td><strong><code>TRUE</code></strong> if either <var class="varname"><var class="varname">$a</var></var> or <var class="varname"><var class="varname">$b</var></var> is <strong><code>TRUE</code></strong>.</td>
      </tr>

     </tbody>
    
   </table>

   <p class="simpara">
    The reason for the two different variations of &quot;and&quot; and &quot;or&quot;
    operators is that they operate at different precedences. (See
    <a href="language.operators.precedence.html" class="link">Operator
    Precedence</a>.)
   </p>
   <div class="example" id="example-126">
    <p><strong>Example #1 Logical operators illustrated</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF8000">//&nbsp;--------------------<br />//&nbsp;foo()&nbsp;will&nbsp;never&nbsp;get&nbsp;called&nbsp;as&nbsp;those&nbsp;operators&nbsp;are&nbsp;short-circuit<br /><br /></span><span style="color: #0000BB">$a&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">&amp;&amp;&nbsp;</span><span style="color: #0000BB">foo</span><span style="color: #007700">());<br /></span><span style="color: #0000BB">$b&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">true&nbsp;&nbsp;</span><span style="color: #007700">||&nbsp;</span><span style="color: #0000BB">foo</span><span style="color: #007700">());<br /></span><span style="color: #0000BB">$c&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">and&nbsp;</span><span style="color: #0000BB">foo</span><span style="color: #007700">());<br /></span><span style="color: #0000BB">$d&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">true&nbsp;&nbsp;</span><span style="color: #007700">or&nbsp;&nbsp;</span><span style="color: #0000BB">foo</span><span style="color: #007700">());<br /><br /></span><span style="color: #FF8000">//&nbsp;--------------------<br />//&nbsp;"||"&nbsp;has&nbsp;a&nbsp;greater&nbsp;precedence&nbsp;than&nbsp;"or"<br /><br />//&nbsp;The&nbsp;result&nbsp;of&nbsp;the&nbsp;expression&nbsp;(false&nbsp;||&nbsp;true)&nbsp;is&nbsp;assigned&nbsp;to&nbsp;$e<br />//&nbsp;Acts&nbsp;like:&nbsp;($e&nbsp;=&nbsp;(false&nbsp;||&nbsp;true))<br /></span><span style="color: #0000BB">$e&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">||&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">//&nbsp;The&nbsp;constant&nbsp;false&nbsp;is&nbsp;assigned&nbsp;to&nbsp;$f&nbsp;and&nbsp;then&nbsp;true&nbsp;is&nbsp;ignored<br />//&nbsp;Acts&nbsp;like:&nbsp;(($f&nbsp;=&nbsp;false)&nbsp;or&nbsp;true)<br /></span><span style="color: #0000BB">$f&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">or&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$e</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$f</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">//&nbsp;--------------------<br />//&nbsp;"&amp;&amp;"&nbsp;has&nbsp;a&nbsp;greater&nbsp;precedence&nbsp;than&nbsp;"and"<br /><br />//&nbsp;The&nbsp;result&nbsp;of&nbsp;the&nbsp;expression&nbsp;(true&nbsp;&amp;&amp;&nbsp;false)&nbsp;is&nbsp;assigned&nbsp;to&nbsp;$g<br />//&nbsp;Acts&nbsp;like:&nbsp;($g&nbsp;=&nbsp;(true&nbsp;&amp;&amp;&nbsp;false))<br /></span><span style="color: #0000BB">$g&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">true&nbsp;</span><span style="color: #007700">&amp;&amp;&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">//&nbsp;The&nbsp;constant&nbsp;true&nbsp;is&nbsp;assigned&nbsp;to&nbsp;$h&nbsp;and&nbsp;then&nbsp;false&nbsp;is&nbsp;ignored<br />//&nbsp;Acts&nbsp;like:&nbsp;(($h&nbsp;=&nbsp;true)&nbsp;and&nbsp;false)<br /></span><span style="color: #0000BB">$h&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">true&nbsp;</span><span style="color: #007700">and&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$g</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$h</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
    </div>

    <div class="example-contents"><p>The above example will output
something similar to:</p></div>
    <div class="example-contents screen">
<div class="cdata"><pre>
bool(true)
bool(false)
bool(false)
bool(true)
</pre></div>
    </div>
   </div>
  </div><hr /><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="language.operators.increment.html">Incrementing/Decrementing Operators</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="language.operators.string.html">String 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>