PHP Array Comparando Variáveis Escalares Combinadas num IF Único

$expected_email = "myself@email.com";
$expected_birthdate = "25/12/0001";

$received_email = "not matching email";
$received_birthdate = "not matching date";

if ([$received_email, $received_birthdate] != [$expected_email, $expected_birthdate]) {
    echo 'Expected combination Email/Birthdate does not match';
}

Olha só que legal, nunca tinha pensado em montar um IF como esses comparando uma lista de variáveis escalares com uma outra lista também de variáveis escalares.

Basicamente isto é uma comparação de arrays e o match se dá pela comparação de forma posicional, ou seja, índice 0 com índice 0 e índice 1 com índice 1.

Caso precise comparar inclusive os tipos de dados basta adicionar mais um igual a operador.

if ([$received_email, $received_birthdate] !== [$expected_email, $expected_birthdate]) {
    echo 'Expected combination Email/Birthdate does not match';
}

Qual a vantagem desse código sobre um código convencional? Não sei dizer muito bem qual seria…

if ($received_email != $expected_email || $received_birthdate != $expected_birthdate) {
    echo 'Expected combination Email/Birthdate does not match';
}

O mais importante é que funciona conforme o projetado.

Happy PHP!

Deixe um comentário