I have upgraded to PHP 7 and started using the null coalesce operator to convert things like
$email = isset($_SESSION['email']) ? $_SESSION['email'] : '';
to
$email = $_SESSION['email'] ?? '';
but I can't figure out how to do this if I am casting as well. For example, the for the old statement
$id = isset($_GET['id']) ? (int) $_GET['id'] : 0;
I would think something like
$id = (int) $_GET['id'] ?? 0;
should work, but it doesn't appear to in the sense that, if $_GET['id']
is not set, $id
resolves to 0
but I get the Notice
Notice: Undefined index: id in test.php on line 2
The (int)
cast gets precedence over the ??
operator, so use brackets:
$id = (int) ($_GET['id'] ?? 0);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With