downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Our source is open

The syntax highlighted source is automatically generated by PHP from the plaintext script. If you're interested in what's behind the several functions we used, you can always take a look at the source of the following files:

Of course, if you want to see the source of this page, we have it available. You can also browse the SVN repository for this website on svn.php.net.

Source of: /manual/en/language.operators.logical.php

<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = 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 => 'en',
  ),
 
'this' =>
  array (
   
0 => 'language.operators.logical.php',
   
1 => 'Logical Operators',
  ),
 
'up' =>
  array (
   
0 => 'language.operators.php',
   
1 => 'Operators',
  ),
 
'prev' =>
  array (
   
0 => 'language.operators.increment.php',
   
1 => 'Incrementing/Decrementing Operators',
  ),
 
'next' =>
  array (
   
0 => 'language.operators.string.php',
   
1 => 'String Operators',
  ),
);
$setup["toc"] = $TOC;
$setup["parents"] = $PARENTS;
manual_setup($setup);

manual_header();
?>
<div id="language.operators.logical" class="sect1">
   <h2 class="title">Logical Operators</h2>

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

     </thead>

     <tbody valign="middle" class="tbody">
      <tr valign="middle">
       <td align="left">$a and $b</td>
       <td align="left">And</td>
       <td align="left"><b><tt class="constant">TRUE</tt></b> if both <var class="varname">$a</var> and <var class="varname">$b</var> are <b><tt class="constant">TRUE</tt></b>.</td>
      </tr>

      <tr valign="middle">
       <td align="left">$a or $b</td>
       <td align="left">Or</td>
       <td align="left"><b><tt class="constant">TRUE</tt></b> if either <var class="varname">$a</var> or <var class="varname">$b</var> is <b><tt class="constant">TRUE</tt></b>.</td>
      </tr>

      <tr valign="middle">
       <td align="left">$a xor $b</td>
       <td align="left">Xor</td>
       <td align="left"><b><tt class="constant">TRUE</tt></b> if either <var class="varname">$a</var> or <var class="varname">$b</var> is <b><tt class="constant">TRUE</tt></b>, but not both.</td>
      </tr>

      <tr valign="middle">
       <td align="left">! $a</td>
       <td align="left">Not</td>
       <td align="left"><b><tt class="constant">TRUE</tt></b> if <var class="varname">$a</var> is not <b><tt class="constant">TRUE</tt></b>.</td>
      </tr>

      <tr valign="middle">
       <td align="left">$a &amp;&amp; $b</td>
       <td align="left">And</td>
       <td align="left"><b><tt class="constant">TRUE</tt></b> if both <var class="varname">$a</var> and <var class="varname">$b</var> are <b><tt class="constant">TRUE</tt></b>.</td>
      </tr>

      <tr valign="middle">
       <td align="left">$a || $b</td>
       <td align="left">Or</td>
       <td align="left"><b><tt class="constant">TRUE</tt></b> if either <var class="varname">$a</var> or <var class="varname">$b</var> is <b><tt class="constant">TRUE</tt></b>.</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.php" class="link">Operator
    Precedence</a>.)
   </p>
   <div class="example">
    <p><b>Example #1 Logical operators illustrated</b></p>
    <div class="example-contents programlisting">
<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;(($e&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 para"><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><?php manual_footer(); ?>
 
show source | credits | sitemap | contact | advertising | mirror sites