1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-23 23:12:09 +01:00
Files
archived-doc-es/language/operators/logical.xml
2025-05-06 21:45:14 +02:00

114 lines
2.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 43d07782b514d0c7a8487f2c74063739f302df8d Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="language.operators.logical">
<title>Los operadores lógicos</title>
<titleabbrev>Lógica</titleabbrev>
<table>
<title>Los operadores lógicos</title>
<tgroup cols="3">
<thead>
<row>
<entry>Ejemplo</entry>
<entry>Nombre</entry>
<entry>Resultado</entry>
</row>
</thead>
<tbody>
<row>
<entry>$a and $b</entry>
<entry>And (Y)</entry>
<entry>&true; si <varname>$a</varname> Y <varname>$b</varname> valen &true;.</entry>
</row>
<row>
<entry>$a or $b</entry>
<entry>Or (O)</entry>
<entry>&true; si <varname>$a</varname> O <varname>$b</varname> valen &true;.</entry>
</row>
<row>
<entry>$a xor $b</entry>
<entry>XOR</entry>
<entry>
&true; si <varname>$a</varname> O <varname>$b</varname> es &true;,
pero no ambos a la vez.
</entry>
</row>
<row>
<entry>! $a</entry>
<entry>Not (No)</entry>
<entry>&true; si <varname>$a</varname> no es &true;.</entry>
</row>
<row>
<entry>$a &amp;&amp; $b</entry>
<entry>And (Y)</entry>
<entry>&true; si <varname>$a</varname> Y <varname>$b</varname> son &true;.</entry>
</row>
<row>
<entry>$a || $b</entry>
<entry>Or (O)</entry>
<entry>&true; si <varname>$a</varname> O <varname>$b</varname> es &true;.</entry>
</row>
</tbody>
</tgroup>
</table>
<simpara>
La razón por la cual existen dos tipos de "Y" y de "O"
es que tienen diferentes prioridades. Ver el
párrafo
<link linkend="language.operators.precedence">precedencia de operadores</link>.
</simpara>
<example>
<title>Ilustración de los operadores lógicos</title>
<programlisting role="php">
<![CDATA[
<?php
// --------------------
// foo() nunca será llamada, ya que estos operadores se anulan
$a = (false && foo());
$b = (true || foo());
$c = (false and foo());
$d = (true or foo());
// --------------------
// "||" tiene una precedencia superior a "or"
// El resultado de la expresión (false || true) es asignado a $e
// Actúa como: ($e = (false || true))
$e = false || true;
// La constante false es asignada a $f antes de que aparezca la operación "or"
// Actúa como: (($f = false) or true)
$f = false or true;
var_dump($e, $f);
// --------------------
// "&&" tiene una precedencia superior a "and"
// El resultado de la expresión (true && false) es asignado a $g
// Actúa como: ($g = (true && false))
$g = true && false;
// La constante true es asignada a $h antes de que aparezca la operación "and"
// Actúa como: (($h = true) and false)
$h = true and false;
var_dump($g, $h);
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
bool(true)
bool(false)
bool(false)
bool(true)
]]>
</screen>
</example>
</sect1>