Robię walidację formularza w php7 i wyczytałem w manualu, że isset już nie jest obsługiwany w php7 i null coalescence operator powinien być używany zamiast isset jednak za bardzo nie wiem jak go wykorzystać w takiej formie, w szczególności dla zagnieżdżonych if-ów. Kod w chwili obecnej, napisany zgodnie z klasycznym podejściem, prezentuje się następująco:
$login1 = (filter_input(INPUT_POST, 'login1', FILTER_VALIDATE_EMAIL));
$login2 = (filter_input(INPUT_POST, 'login2', FILTER_VALIDATE_EMAIL));
$password1 = (filter_input(INPUT_POST, 'password1', FILTER_VALIDATE_STRING));
$password2 = (filter_input(INPUT_POST, 'password2', FILTER_VALIDATE_STRING));
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($login1) && isset($login2) && isset($password1) && isset($password2)) {
$register = new User();
if (!$login1) {
echo '<p>text no</p>';
} elseif (strlen($password1)) && (strlen($password2)) < 8) {
echo '<p>text no</p>';
} elseif ($password1 != $password2) {
echo '<p">text no</p>';
} else {
if ($register->register($login2, $password2)) {
echo '<p>text yes</p>';
} else {
echo '<p>text no</p>';
}
}
}
}
Jak tę siatkę if-ów zamienić na null coalescence operator?