Как исправить PHP 7.2 Предупреждение: count (): параметр должен быть массивом или объектом, который реализует Countable в ошибках. php? - PullRequest
0 голосов
/ 30 мая 2020

Мой сценарий -

<?php  if (count($errors) > 0) : ?>
  <div class="error">
        <?php foreach ($errors as $error) : ?>
          <p><?php echo $error ?></p>
        <?php endforeach ?>
  </div>
<?php  endif ?>

Я получаю ошибку Warning: count(): Parameter must be an array or an object that implements Countable.

Я использую PHP 7.2 на Apache2.

1 Ответ

1 голос
/ 30 мая 2020

Как говорится в ошибке, Parameter must be an array or an object that implements Countable, $errors должен быть массивом.

В вашем случае он может быть пустым. Поэтому перед использованием count() вы всегда должны проверять, что он реализует интерфейс Countable.

Я предполагаю, что вы пытаетесь выполнить итерацию Array, и для этого я сначала проверяю, что $errors - это массив, используя is_array() .

<?php  if (is_array($errors) && count($errors) ) : ?>
  <div class="error">
        <?php foreach ($errors as $error) : ?>
          <p><?php echo $error ?></p>
        <?php endforeach ?>
  </div>
<?php  endif ?>

Вам также может понадобиться посмотреть is_countable(), ссылка ниже:

PHP Официальная документация:

PHP count ( )

PHP is_countable ()

PHP is_array ()

...