3v4l.org

run code in 500+ PHP versions simultaneously
<?php $array = ['year' => '', 'month' => 2, 'day' => '2']; $valid_date = FALSE; if (!empty($array['year']) && !empty($array['month']) && !empty($array['day'])) { $valid_date = checkdate($array['month'], $array['day'], $array['year']); } var_dump($valid_date); $valid_date = FALSE; if (array_key_exists('year', $array) && array_key_exists('month', $array) && array_key_exists('day', $array)) { if (@checkdate($array['month'], $array['day'], $array['year'])) { $valid_date = TRUE; } } var_dump($valid_date);
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.31, 8.4.1 - 8.4.22, 8.5.0 - 8.5.7
bool(false) Fatal error: Uncaught TypeError: checkdate(): Argument #3 ($year) must be of type int, string given in /in/p6SKR:13 Stack trace: #0 /in/p6SKR(13): checkdate(2, '2', '') #1 {main} thrown in /in/p6SKR on line 13
Process exited with code 255.
Output for 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33
bool(false) bool(false)

preferences:
70.32 ms | 1587 KiB | 4 Q