diff --git a/core/lib/Drupal/Core/Form/FormValidator.php b/core/lib/Drupal/Core/Form/FormValidator.php index 672dcedfb4..0d0d12c944 100644 --- a/core/lib/Drupal/Core/Form/FormValidator.php +++ b/core/lib/Drupal/Core/Form/FormValidator.php @@ -257,8 +257,8 @@ protected function doValidateForm(&$elements, FormStateInterface &$form_state, $ // length if it's a string, and the item count if it's an array. // An unchecked checkbox has a #value of integer 0, different than // string '0', which could be a valid value. - $test_countability = is_array($elements['#value']) || $elements['#value'] instanceOf Countable; - $is_empty_multiple = $test_countability && count($elements['#value']) == 0; + $is_countable = is_array($elements['#value']) || $elements['#value'] instanceof \Countable; + $is_empty_multiple = $is_countable && count($elements['#value']) == 0; $is_empty_string = (is_string($elements['#value']) && Unicode::strlen(trim($elements['#value'])) == 0); $is_empty_value = ($elements['#value'] === 0); $is_empty_null = is_null($elements['#value']); @@ -288,7 +288,7 @@ protected function doValidateForm(&$elements, FormStateInterface &$form_state, $ // #element_validate handlers changed any properties. If $is_empty_value // is defined, then above #required validation code ran, so the other // variables are also known to be defined and we can test them again. - if (isset($is_empty_value) && ($is_empty_multiple || $is_empty_string || $is_empty_value)) { + if (isset($is_empty_value) && ($is_empty_multiple || $is_empty_string || $is_empty_value || $is_empty_null)) { if (isset($elements['#required_error'])) { $form_state->setError($elements, $elements['#required_error']); }