Vous êtes sur la page 1sur 8

OPERADORES LGICOS Y DE COMPARACIN EN PHP

OPERADORES DE COMPARACIN EN PHP


Los operadores de comparacin permiten comparar dos valores, tal y como su nombre indica.
En general, esto nos servir para tomar decisiones. Por ejemplo, quizs tenemos que decidir si
autorizar una operacin segn exista saldo suficiente en su cuenta bancaria o no. Para ello en
PHP disponemos de los operadores que se indican en la siguiente tabla.
Nombre

Ejemplo

Resultado

Mayor que

$a > $b

true si $a es mayor que $b


false en caso contrario

Menor que

$a < $b

true si $a es menor que $b


false en caso contrario

Mayor o igual que

$a >= $b

true si $a es mayor o igual que $b


false en caso contrario

Menor o igual que

$a <= $b

true si $a es menor o igual que $b


false en caso contrario

Diferente

$a <> $b

$a != $b

true si $a es diferente a $b
false en caso contrario

Idntico o estrictamente igual

$a ===
$b

true si $a es igual a $b y son del


mismo tipo
false en caso contrario

No idntico o estrictamente
distinto

$a == $b

true si $a no es igual a $b o no son del


mismo tipo
false en caso contrario

Igual

$a == $b

true si $a es igual a $b
false en caso contrario

La sintaxis coincide con la empleada en otros lenguajes de programacin.


Adems de los operadores habituales existen los operadores === que se interpreta como es
estrictamente igual y !== que se interpreta como no es estrictamente igual. Estos
operadores resultan un poco ms complejos de comprender por lo que volveremos a hablar de
ellos ms adelante. De momento tener en cuenta que si una variable contiene $texto1= 1 y
hacemos la comparacin $texto1 === 1 , obtendremos false, es decir, que no es igual (porque
un texto no es igual a un nmero). Sin embargo una comparacin como $texto == 1 devolver
true ya que esta comparacin no es estricta y trata de realizar automticamente conversiones
para comprobar si se puede establecer una equivalencia entre los dos valores. En este caso se
busca el equivalente numrico del texto y luego se hace la comparacin, motivo por el cual se
obtiene true.

Es decir, si se compara un nmero con una cadena de caracteres o la comparacin implica


cadenas de caracteres numricas, cada cadena de caracteres es convertida en un nmero y la
comparacin se realizar numricamente excepto cuando el operador utilizado es === o ==
porque, en estos casos, tambin comparamos el tipo.
OPERADORES LGICOS EN PHP
Los operadores lgicos, nos permiten crear condiciones para las distintas estructuras en PHP,
tanto en estructuras condicionales como en estructuras repetitivas. Los operadores lgicos
ms importantes son and (en espaol: y) y or (en espaol: o)
Nombre

Ejemplo

Resultado

and &&

$a and $b

true si $a es true y $b es true


false en caso contrario

or ||

$a or $b

true si $a o $b es true, o ambos


false en caso contrario

xor

$a xor $b

true si $a o $b es true, pero no ambos


false en caso contrario

not !

!$a

true si $a no es true
false en caso contrario

Una condicin puede ser tan larga como se quiera o necesite y usar tantos operadores lgicos
como se quiera o necesiten. El uso de los parntesis otorgar la prioridad de la ejecucin de
unas operaciones y otras (como en matemticas).
Las expresiones donde se utilizan operadores lgicos y relacionales devuelven un valor
booleano, es decir, verdadero (true) o falso (false).
Por ejemplo si $a = 7 y $b = 5 la expresin $a < $b devuelve false (es falsa). Si $a = true y $b =
false la expresin $a && $b devuelve false (es falsa porque no se cumple que $a y $b sean
verdaderas).
Si $a = true y $b = false la expresin $a || $b devuelve true porque uno de los dos operandos
es verdadero. Si $a = true la expresin !a devuelve false (el opuesto o contrario).
El operador || se obtiene en la mayora de los teclados pulsando ALT GR + 1, es decir, la tecla
ALT GR y el nmero 1 simultneamente.
Los operadores && y || se llaman operadores en cortocircuito porque si no se cumple la
condicin de un trmino no se evala el resto de la operacin. Por ejemplo: ($a == $b && $c !=
$d && $h >= $k) tiene tres evaluaciones: la primera comprueba si la variable a es igual a b. Si
no se cumple esta condicin, el resultado de la expresin es falso y no se evalan las otras dos
condiciones posteriores.

En un caso como ( $a < $b || $c != $d || $h <= $k) se evala si a es menor que b. Si se cumple


esta condicin el resultado de la expresin es verdadero y no se evalan las otras dos
condiciones posteriores.
El operador ! recomendamos no usarlo hasta que se tenga una cierta destreza en
programacin. Una expresin como (!$esVisible) devuelve false si ($esVisible == true), o true si
($esVisible == false). En general existen expresiones equivalentes que permiten evitar el uso de
este operador cuando se desea.
OPERADOR DE NEGACIN APLICADO SOBRE NMEROS O TEXTO
Si $a = true su negacin !$a devuelve false. Pero qu ocurre si $a es un nmero o un texto? Si
$a es un nmero se considera que equivale a false si su valor numrico es 0, o que equivale a
true si su valor numrico es distinto de cero. Seguidamente se aplica la negacin. Por tanto si
$a = 7, a se considera equivalente a true y !$a es false. Si $a = 0, a se considera equivalente a
false y !$a es true.
Para cadenas de texto, la cadena vaca se considera equivale a false y cualquier otra cadena se
considera que equivale a true. Si $texto1 = "" (cadena vaca) entonces !$texto1 vale true.
ORDEN DE PRIORIDAD, PRELACIN O PRECEDENCIA
Los operadores lgicos y matemticos tienen un orden de prioridad o precedencia. Este es un
esquema general que indica el orden en que deben evaluarse en la mayora de los lenguajes de
programacin:

Una expresin como $A+$B == 8 && $A-$B == 1 siendo $A = 3 y $B = 5 supondr que se evala
primero $A+$B que vale 8, luego se evala $A-$B que vale -2. Luego se evala si se cumple que
la primera operacin es cierta y luego si la segunda tambin es cierta, resultando que no, por
lo que la expresin es falsa.
COMPARACIN DE CADENAS DE TEXTO CON OPERADORES RELACIONALES
Dos cadenas de texto se pueden comparar resultando que se comparan letra a letra por el
valor del equivalente numrico de cada letra. Cada letra tiene un nmero asociado: por
ejemplo la a es el nmero 97, la b el 98, etc.
Si comparamos "avellana" < "sandia" obtenemos true.
Sin embargo, los cdigos numricos pueden generar resultados no previstos. Por ejemplo,
qu cdigo numrico es menor, el de la a el de la A? An ms, resulta que todos los cdigos
numricos de maysculas son menores que los de minsculas, con lo cual podemos obtener
que Zul < avellano devuelve true (cosa que a priori nos resultar ciertamente extraa).
Para comparar cadenas en base a un orden alfabtico necesitaremos usar entonces otras
tcnicas que comentaremos ms adelante.
VARIABLES EN PHP
Las variables en PHP son representadas con un signo de dlar ($) seguido por el nombre de la
variable. El nombre de la variable es sensible a minsculas y maysculas. Es decir, las
siguientes declaraciones de variables son distintas entre ellas:
$variable, $Variable, $variAble, $VariAble, etc. representan a distintas variables.
Recordar que una variable es un espacio de la memoria del ordenador (en este caso del
servidor) a la que asignamos un contenido que a grandes rasgos puede ser un valor numrico
(slo nmeros, con su valor de clculo) o alfanumrico (slo texto o texto con nmeros, sin
valor de clculo).
Para declarar un nombre de variable vlido, ste tiene que empezar con una letra (o si no
empieza con una letra, tendr que hacerlo con un carcter de subrayado), seguido de
cualquier nmero de letras, nmeros y caracteres de subrayado, sin espacios. Veamos algunos
ejemplos:
Posible nombre de variable

Validez

$4variable

Nombre de variable invlido.

$_4variable

Nombre de variable vlido.

$variable4

Nombre de variable vlido.

$otra

Nombre de variable vlido.

$1_otra

Nombre de variable invlido.

$variable_de_nombre_muy_largo

Nombre de variable vlido.

$ABC

Nombre de variable vlido.

$ABC

Nombre de variable invlido.

$A_y_B_x_C

Nombre de variable vlido.

Cuando el intrprete PHP detecta un error en la sintaxis al declarar una variable, cuando
tratamos de acceder a la pgina php nos aparecer un mensaje de error. Por ejemplo si en un
archivo php incluimos una lnea como $ A B C = 5; donde el nombre de variable es invlido ya
que tiene espacios intermedios, nos aparecer un mensaje de error:
Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE or '$' in
/home/miraiz/domains/midominio.com/public_html/prueba.php on line 3. Este mensaje nos
informa de que hay un problema en el archivo php y nos indica la lnea donde el intrprete
considera que est el problema.
DIFERENCIAS ENTRE LOS OPERADORES DE ASIGNACIN E IGUALDAD. ASIGNACIN (=)
El operador de asignacin es "=". Se podra pensar que es como un "igual a". No lo es. El
operador igual en programacin no tiene el mismo sentido que en matemticas. En
programacin, significa que el valor de la expresin de la derecha se establece en el operando
de la izquierda.
Fjate en este ejemplo y en los comentarios.
<?php

$a = 3; // asignamos el valor 3 a la variable $a


$b = "cadena"; // asignamos el valor "cadena" a la variable
$b

?>

OPERADOR DE IGUALDAD (==)


El operador comparador de igualdad es ==. Como su propio nombre indica, sirve para
comparar dos valores o variables y no para asignar valores. Este operador devuelve el
resultado de la operacin lgica de 'igual a' tal y como podemos apreciar en el siguiente
ejemplo.
Fjate en este ejemplo y en los comentarios.
<?php
$a = 3;
$b = 3;
$a == $b; // El resultado de la comparacin es TRUE porque $a es igual a $b
$a = 3;
$b = 4;
$a == $b; // El resultado de la comparacin es FALSE porque $a no es igual a $b
?>

TIPOS DE DATOS
En PHP no es obligatorio indicar el tipo de datos al que pertenece una variable como en otros
lenguajes, sino que los tipos de datos son establecidos directamente por el intrprete PHP, que
es el encargado de interpretar el cdigo.
Ahora veremos en una tabla los distintos tipos de datos que se pueden usar en PHP.
TIPO DE DATO

DEFINICIN

integer

Los integers, o enteros, pueden tener distintos valores numricos


enteros que se expresan con diferentes notaciones.
$variable = 18; // Nmero entero positivo
$variable = -18; // Nmero entero negativo
$variable = 0x12; // Notacin hexadecimal, en principio no la
utilizaremos

float o double

Este tipo de datos son los nmeros de punto flotante a los que
normalmente llamamos nmeros decimales, por ejemplo, 9.876.
Ambos tienen mucha precisin, pero double es el ms preciso (con
ms decimales). La sintaxis para utilizarlos es bastante simple:
$variable = 9.876;

string

El tipo de datos string, tambin conocido como cadena de caracteres,


se expresa con la siguiente sintaxis:
$variable = "Yo soy una cadena";

boolean

Se trata de un tipo lgico. Sus posibles valores son true (verdadero) o


false (falso).
$variable = true;
$variable = false;

FUNCIONES CON CADENAS DE CARACTERES EN PHP.


Las cadenas de caracteres en PHP se definen, como ya sabemos, entre comillas dobles o
simples (podemos usar dobles o simples indistintamente). Es decir, podemos definir una
variable como cadena de caracteres de la siguiente forma: $cadena = "George Washington"; o
tambin $cadena = 'George Wasington';
Para la manipulacin de estas variables o cadenas de caracteres nos ser til conocer las
funciones bsicas de manipulacin. No vamos a entrar a describir cada una de las funciones
para cadenas de caracteres que PHP posee, que son muchas. Simplemente veremos las ms
bsicas y de uso ms comn.
FUNCIN STRLEN
La funcin strlen obtiene la longitud de una cadena y devuelve un nmero entero. Es decir,
obtenemos el nmero de caracteres que forman la cadena completa.
Escribe este cdigo en un editor como Notepad++ y gurdalo con un nombre de archivo como
ejemplo1.php. A continuacin, sube el fichero al servidor y visualiza el resultado.

<?php
$cad = "cadena"; //Prueba a cambiar el texto cadena por otro
$n = strlen($cad);
echo "La longitud de la cadena es: $n";
?>

FUNCIN SUBSTR
La funcin substr devuelve una subcadena de la cadena original, es decir, una parte de la
cadena original. Esta funcin tiene 3 parmetros:
1. La variable que contiene la cadena.
2. Nmero que representa la posicin (inclusive) en la que comenzar a ser extrada la
subcadena.
3. Nmero que indica la cantidad de caracteres que sern extrados. Este argumento es
opcional. Si se omite se tomar hasta el final de la cadena original.
Tener en cuenta que la numeracin de la posicin de los caracteres empieza por cero. Por
ejemplo para la cadena 'GPS', que tiene 3 caracteres, el carcter en posicin 0 es G, en
posicin 1 es P y en posicin 2 es S. No existe la posicin 3 debido a que se comienza a contar
por el cero.
Escribe este cdigo en un editor como Notepad++ y gurdalo con un nombre de archivo como
ejemplo2.php. A continuacin, sube el fichero al servidor y visualiza el resultado.
<?php
$cad = "cadena";
$sub1 = substr($cad, 2);
$sub2 = substr($cad, 2, 2);
echo "La subcadena nmero uno es la siguiente: $sub1 <br />";
echo "La subcadena nmero dos es la siguiente: $sub2";
?>

OPERADOR DE CONCATENACIN
La concatenacin es el proceso de unir varias porciones de texto en una sola cadena. Este
operador se expresa como un punto '.'
Escribe el siguiente cdigo, sbelo al servidor y visualzalo en tu navegador.
<?php
$cad1 = "aprendera";
$cad2 = "programar";
$cadt = $cad1 . $cad2;
echo "La cadena nmero uno concatenada con la cadena nmero 2 es: $cadt <br />";
// Ahora concatenaremos la cadena ejemplo con la concatenacin de $cad2 y $cad1
echo "Ejemplo: " . ($cad2 . $cad1);
?>

Vous aimerez peut-être aussi