4 cosas que no sabías de PHP

Publicado en Desarrollo a medida hace 1 año y 11 meses. Leído 1110 veces.

Cada lenguaje de programación tiene sus particularidades( o principios de diseño ) que te hacen amarlo u odiarlo. PHP no es una excepción tiene curiosidades que nos hace adorarlo y otras veces tirarnos de los pelos. Aquí te dejo cuatro de ellas:

1. Carácteres extendidos ASCII para identificadores.

¿ De qué manera escribes 'año' cuando programas ? ¿ Anio ? ¿ Anno ?. Tienes que saber que PHP soporta carácteres extendidos ASCII del 127 hasta el 255( 0X27F - 0XFF en hexadecimal ). Esto quiere decir que no te tienes que romperte la cabeza con la forma de escribir año porque puedes escribir variables, constantes y nombres de funciones con eñes y, por supuesto que también, con carácteres acentuados. Pruébalo

2. PHP ignora cualquier espacio en blanco delante de una cadena en una comparación numérica.

Así es, cuando está implicado un número en uno de los terminos de comparación no tiene en cuenta los espacios en blanco. Con espacio en blanco me refiero a: saltos de líneas, tabuladores y, por supuesto, espacios. Mira los ejemplos o pruébalo para que veas que lo que te digo es cierto. El último ejemplo no se cumple porque con comillas no se procesan las cadenas de escapes.

3. Los índices de los arrays numéricos no establecen el orden.

Si mi memoria no me falla, en C cuando escribías algo como myArray[2] era como escribir *(myArray + 2). Esto es, toma el valor de la segunda zona de memoria a partir de la posición de memoria de myArray. Esto obligaba a que los índices estuvieran siempre ordenados. Esto no ocurre así en PHP, ya que todos los arrays( indexados numéricamente o arrays asociativos ) son en verdad lo mismo: arrays asociativos. Por tanto, el orden de los índices no está establecido de manera fija, sino que el orden se define externamente. Como puedes probar en los ejemplos, los índices no están relacionados con el orden y, por lo mismo, no hace falta que estén correlativos( aunque eso seguro que ya lo sabías ).

4. Tienes multitud de opciones para evitar las condicionales.

Las condicionales son algo básico, pero incrementan un nivel de complejidad. Es por ello que a veces conviene buscar alternativas para hacer nuestro código más legible. Hay muchas opciones, me iré por las menos conocidas:

  • operador ternario simplificado: toma el valor de la variable de la condicional($a en este caso) si se valida a true, sino la de la expresión($b). Hay que tener cuidado si usamos isset, empty, ... en la condicional porque en ese caso el resultado de estas será lo que se tome y no el de la variable.
$a = 10;
$b = 3;
$esto_es_a = ($a)?: $b;
  • null coalescing: uno de los nuevos operadores de PHP 7 y que nos permite devolver el primer valor de una variable, o expresión, que esté definida( o isset-ada ) de entre todas las de la misma sentencia.
$esto_es_mundo = $a?? $b?? 'mundo'?? $c;
  • Nave espacial o spaceship: otro de los nuevos operadores de PHP7 y que hace comparaciones lexicográficas, muy útil para ordenaciones. Pruébalo
$numbers = [10,9,8,7,6,5,4,3,2,1];
 usort($numbers, function($num1, $num2) {
return $num1 <=> $num2;
});
print_r($numbers ); // [1,2,3,4,5,6,7,8,9,10]
  • max() y min(): funciones que devuelven respectivamente el máximo y el mínimo de un conjunto de valores o de un array. Pongamos, por ejemplo, que estamos paginando:
//Página actual no será nunca menor que 1
$pag_actual = max($_GET['page'], 1);

o también:

//Página actual no será nunca mayor que el número máximo de página
$pag_actual = min($_GET['page'], $max_pagina);

0 comentarios

Deja un comentario

Puedes usar Markdown para formatear tu comentario.

Este sitio utiliza cookies propias y de terceros para mejorar tu experiencia con el sitio web. Al continuar con la navegación consideramos que acepta su uso.