PHP

PHP

PHP: Hypertext Preprocessor

PHP es un lenguaje de scripting de propósito general popular que es especialmente adecuado para el desarrollo web.

domingo, 5 de octubre de 2014

OPERADORES

OPERADORES


Precedencia de operadores

 La precedencia de un operador indica qué tan "estrechamente" se unen dos expresiones juntas.  
          
          Por ejemplo, en la expresión 1 + 5 * 3, la respuesta es 16 y no 18 porque el operador de multiplicación ("*") tiene una precedencia mayor que el operador de adición ("+"). Los paréntesis pueden ser usados para forzar la precedencia, si es necesario. Por ejemplo: (1 + 5) * 3 se evalúa como 18.
          Cuando los operadores tienen igual precedencia su asociatividad decide cómo se agrupan. Por ejemplo "-" tiene asociatividad a izquierda, así 1 - 2 - 3 se agrupa como (1 - 2) - 3 y se evalúa a -4. "=", por otra parte, tiene asociatividad a derecha, así $a = $b = $c se agrupa como $a = ($b = $c).

         Los operadores de igual precedencia que no son asociativos no pueden usarse unos junto a otros, por ejemplo, 1 < 2 > 1 es ilegal en PHP. La expresión 1 <= 1 == 1, por otro lado, es legal, ya que el operador == tiene menos precedencia que el operador <=.
         El uso de paréntesis, incluso cuando no es estrictamente necesario, a menudo puede aumentar la legibilidad del código haciendo grupos explícitamente en lugar de confiar en la precedencia y asociatividad implícitas del operador.


OPERADORES ARITMÉTICOS

         El operador de división ("/") devuelve un valor flotante a menos que los dos operandos sean integers (o strings que se conviertan a integers) y los números sean divisibles, en cuyo caso será devuelto un valor integer.

        Los operandos del módulo se convierten en integers (por extracción de la parte decimal) antes del procesamiento.

        El resultado del operador módulo % tiene el mismo signo que el dividendo — es decir, el resultado de $a % $b tendrá el mismo signo que $a.



OPERADORES LOGICOS


Los operadores lógicos, nos permiten trabajar en la condición de alguna estructura del PHP para hacerla más específica, siempre y cuando se traten dos o más condiciones. Se pueden incluir por ejemplo, en la estructura if-else o los bucles. Así, podemos ahorrar mucho código fuente.



Operadores de asignación

        El operador básico de asignación es "=". Se podría inclinar a pensar primero que es como un "igual a". No lo es. Realmente significa que el operando de la izquierda se establece con el valor de la expresión de la derecha (es decir, "se define como").
         El valor de una expresión de asignación es el valor asignado. Es decir, el valor de "$a = 3" es de 3. Esto permite hacer algunas cosas intrincadas:


<?php

$a 
= ($b 4) + 5// ahora $a es igual a 9 y $b se ha establecido en 4.

?>

        Para arrays, asignar un valor a una clave con nombre se realiza utilizando el operador "=>". La precedencia de este operador es la misma que otros operadores de asignación.
     Además del operador básico de asignación, existen "operadores combinados" para todos los de aritmética binaria, unión de arrays y operadores de strings que permiten usar un valor en una expresión y entonces establecer su valor como el resultado de esa expresión. Por ejemplo:


<?php

$a 
3;
$a += 5// establece $a en 8, como si se hubiera dicho: $a = $a + 5;
$b "Hola ";
$b .= "ahí!"// establece $b en "Hola ahí!", al igual que $b = $b . "ahí!";

?>

    Observe que la asignación copia la variable original en la nueva (asignación por valor), por lo que los cambios en una no afectarán a la otra. Esto también puede tener relevancia si se necesita copiar algo como un gran array dentro de un bucle estrecho.

        
Asignación por referencia

        La asignación por referencia también está soportada, utilizando la sintaxis "$var = &$othervar;". Asignación por referencia significa que ambas variables terminan apuntando a los mismos datos y nada es copiado en ninguna parte.

Ejemplo #1 Asignación por referencia

<?php
$a 
3;
$b = &$a// $b es una referencia para $a

print "$a\n"// muestra 3
print "$b\n"// muestra 3

$a 4// cambia $a

print "$a\n"// muestra 4
print "$b\n"// muestra 4 también, dado que $b es una referencia para $a, la cual ha
              // sido cambiada
?>



Operadores de control de errores

      PHP soporta un operador de control de errores: el signo de arroba (@). Cuando se antepone a una expresión en PHP, cualquier mensaje de error que pueden ser generados por esa expresión será ignorado.

       Si se ha establecido una función controladora de errores personalizada con set_error_handler() entonces todavía será llamada, pero este controlador de errores personalizado puede (y debe) llamar a error_reporting() el cual devolverá 0 cuando la llamada que provocó el error fue precedida por el signo @.
      Si la propiedad track_errors está activada, cualquier mensaje de error generado por la expresión será guardada en la variable $php_errormsg. Esta variable se sobrescribe en cada error, así que se debe comprobar antes si se desea utilizar.


<?php
/* Error intencional de archivo */
$my_file = @file ('non_existent_file') or
    die (
"La apertura de archivo ha fallado: el error fue '$php_errormsg'");

// esto funciona con cualquier expresión, no solo con funciones:
$value = @$cache[$key];
// no producirá una anotación si el índice $key no existe.

?>


Operadores de ejecución

       PHP soporta un operador de ejecución: las comillas invertidas (``). ¡Note que estas no son las comillas sencillas! PHP intentará ejecutar el contenido entre las comillas invertidas como si se tratara de un comando del shell; la salida será retornada (es decir, no será simplemente volcada como salida; puede ser asignada a una variable). El uso del operador de comillas invertidas es idéntico al de shell_exec().


<?php
$output 
= `ls -al`;
echo 
"<pre>$output</pre>";
?>


Operadores de incremento/decremento

        PHP soporta operadores estilo C de pre- y post-incremento y decremento.

Nota: Los operadores de incremento/decremento solamente afectan a números y strings. Los arrays, objects y resources no se ven afectados. Decrementar valores NULL tampoco tiene efecto, pero incrementarlos entonces resulta en 1.
  
Ejemplos:

<?php
echo "<h3>Postincremento</h3>";
$a 5;
echo 
"Debe ser 5: " $a++ . "<br />\n";
echo 
"Debe ser 6: " $a "<br />\n";

echo 
"<h3>Preincremento</h3>";
$a 5;
echo 
"Debe ser 6: " . ++$a "<br />\n";
echo 
"Debe ser 6: " $a "<br />\n";

echo 
"<h3>Postdecremento</h3>";
$a 5;
echo 
"Debe ser 5: " $a-- . "<br />\n";
echo 
"Debe ser 4: " $a "<br />\n";

echo 
"<h3>Predecremento</h3>";
$a 5;
echo 
"Debe ser 4: " . --$a "<br />\n";
echo 
"Debe ser 4: " $a "<br />\n";
?>



Operadores para strings

          Existen dos operadores para datos tipo string. El primero es el operador de concatenación ('.'), el cual retorna el resultado de concatenar sus argumentos derecho e izquierdo. El segundo es el operador de asignación sobre concatenación ('.='), el cual añade el argumento del lado derecho al argumento en el lado izquierdo.

<?php
$a 
"Hello ";
$b $a "World!"// ahora $b contiene "Hello World!"

$a "Hello ";
$a .= "World!";     // ahora $a contiene "Hello World!"
?>


OPERADORES PARA ARRAYS:

      El operador + devuelve el array del lado derecho añadido al array del lado izquierdo; para las claves que existan en ambos arrays, serán utilizados los elementos del array de la izquierda y serán ignorados los elementos correspondientes del array de la derecha.

<?php
$a 
= array("a" => "apple""b" => "banana");
$b = array("a" => "pear""b" => "strawberry""c" => "cherry");

$c $a $b// Unión de $a y $b
echo "Union of \$a and \$b: \n";
var_dump($c);

$c $b $a// Unión de $b y $a
echo "Union of \$b and \$a: \n";
var_dump($c);
?>



0 comentarios:

Publicar un comentario

@ Raiza Venare / Venezuela. Con la tecnología de Blogger.