Днес надстроих до PHP 5.4 и получавам някои странни предупреждения:
Warning: Illegal string offset 'quote1' in file.php on line 110
Warning: Illegal string offset 'quote1_title' in file.php on line 111
Тези редове са тази част от кода:
for($i = 0; $i < 3; $i++) {
$tmp_url = $meta['quote'. ($i+1)];
$tmp_title = $meta['quote' . ($i+1) .'_title'];
if(!empty($tmp_url) || !empty($tmp_title)) {
$quotes[$src_cnt] = array();
$quotes[$src_cnt]['url'] = $tmp_url;
$quotes[$src_cnt]['title'] = $tmp_title;
$src_cnt++;
}
}
Така че редът $tmp_url
и $tmp_title
.
Защо получавам това странно предупреждение и какво е решението?
Актуализация:
Този код се използва като плъгин за Wordpress. $meta включва:
$meta = get_post_meta($post->ID,'_quote_source',TRUE);
Така че подозирам, че когато полетата за кавички са празни, се появява това предупреждение. Има ли някакъв начин да поправя това, когато полетата са празни?
quote1_title
иquote1
не съществуват във вашия $meta масив. Можете ли да ни покажете вашето $meta съдържание. - person Adrian   schedule 28.04.2013var_dump($meta)
? Вероятно не е масив. - person Marc B   schedule 28.04.2013$meta = get_post_meta($post->ID,'_quote_source',TRUE);
- person Henrik Petterson   schedule 28.04.2013$meta
е низ, а не масив) и съветът на Марк (var_dump()
) е начинът да разберете със сигурност. Фактът, че кодът принадлежи на неразкрита приставка за Wordpress, не променя това, защото приставките за Wordpress също са PHP код. - person Álvaro González   schedule 28.04.2013var_dump($meta)
на страница, където няма нищо написано в полетата за кавички, се показваNULL
. Това е моментът, в който получавам предупреждението. Въпреки това, на страници, където полетата за котировки са попълнени, работи добре. Как да разреша това? - person Henrik Petterson   schedule 28.04.2013