#php #count
#php #count
Вопрос:
Вот фрагмент моего кода в файле public_html/wp-content/themes/arabv3/CustomMetaBox/CMB2.php , начиная со строки 565
// if it's an array of one, extract it
elseif ( is_array( $this->prop( 'object_types' ) ) amp;amp; count( $this->prop( 'object_types' ) === 1 ) ) {
$cpts = $this->prop( 'object_types' );
$type = is_string( end( $cpts ) )
? end( $cpts )
: false;
}
Когда я запускаю код, я получаю следующую ошибку:
PHP Предупреждение: count(): Параметр должен быть массивом или объектом, который реализует Countable в
Комментарии:
1. очевидно, что свойство, на которое
count()
действует, не является массивом или countable, ссылающимся на$this->prop('object_types')
. Он действует на логическое значение, посколькуcount()
содержит сравнение внутри2. У вас опечатка. Измените
count($this->prop('object_types') === 1 )
наcount($this->prop('object_types')) === 1
.
Ответ №1:
Ваша версия PHP? если это 7.2, то функция count выдает ошибку при подсчете stdclass .
Пример:
$count_value = stdClass Object( [asset_id] => 234 [parent_asset_id] => '');
echo count($count_value);
// это выдает ошибку в случае версии php 7.2
вы можете преобразовать тип в массив или создать этот стандартный класс в виде массива .
вы можете проверить php doc :-