подскажите по пхп


joost
164
$posttags = get_the_tags ($post->ID);

foreach( $posttags as $tag )
$tags[] = $tag->term_id;

на

foreach( $posttags as $tag )

warning — используется не массив.


livetv
var_dump($posttags);

joost
если таки не array, то что делать?

Gerga
joost #:
если таки не array, то что делать?

перед использованием foreach проверить $posttags


LEOnidUKG
joost #:
если таки не array, то что делать?

Сделать проверку: https://www.php.net/manual/ru/function.is-array.php


silicoid
$posttags = (array) get_the_tags ($post->ID);

Апд.
такой подход уместен, только при условии, что нет обращения к элементам массива.

в вашем случае надо делать проверку

$posttags =  get_the_tags ($post->ID);
if (is_array( $posttags )){
foreach…
}


LEOnidUKG

$posttags = (array) get_the_tags ($post->ID);

Это просто тоже самое, что:

$posttags = array();
$posttags = get_the_tags ($post->ID);

Поэтому только проверка.


silicoid
LEOnidUKG #:

$posttags = (array) get_the_tags ($post->ID);

Это просто тоже самое, что:

$posttags = array();
$posttags = get_the_tags ($post->ID);

Поэтому только проверка.

Нет, это не то же самое.  (array)|(object)|(int) это преобразование типа без инициализации переменной

то-есть если у вас изначально $x = ‘any_data’;
то array();  даст пустой массив, 
а  (array) $x  даст array[0=>any_data];


dimidrol
Надо ставить symfony 5.2

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *