¿Qué es mejor: array_filter o foreach?

Operador Spaceship

Imagina que tenemos una lista de elementos y queremos saber si alguno de ellos es un email válido. La lista podría ser algo así: Para solucionar el problema seguramente recurrirías a un foreach: Pero tenemos otra opción que muchos programadores no conocen (o no han usado nunca), se trata de la función array_filter. Usando esta … Leer más

Llamar a una función con una variable en PHP

Operador Spaceship

Si a una variable que contiene el nombre de una función le añadimos un paréntesis estaremos llamando a la función:

function hola()
{
    echo "Hola!\n";
}
 
$nombreFuncion = 'hola';
 
$nombreFuncion(); // Esto funciona
'hola'(); // ¡Y esto también!

Seguro que la primera forma ya la conocías ¿pero sabías que podías hacerlo con una cadena?

Un ejemplo para entender el operador !== (no idéntico) en PHP

El operador ‘!=’ confunde los ceros con false. En casos como este debemos usar ‘!==’:

function numero($valor)
{
    if (is_numeric($valor)) {
        return $valor;
    }
    return false;
}
 
$elNumero = "0";
 
var_dump(numero($elNumero));
 
if (numero($elNumero)!==false) {
    echo "Usando === nos dice que es un número.\n";
}
 
if (numero($elNumero)!=false) {
    echo "Usando == nos dice que es un número.\n";
}
  • Con $elNumero = 1; funciona correctamente.
  • Con $elNumero = 0; el operador ‘!=» da un resultado erróneo.

La razón es que ‘!=’ confunde el número 0 con false.