ошибка Warning: Illegal string offset 'active' in

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 21 декабря 2013 в 02:45
Можете обяснить что за ошибка Warning: Illegal string offset 'active' in
и как она лечится? Там в строке на то, куда указывает ошибка содержится:
if($page['data']['active']) {


// $html .= '</strong>';


}


}
Я понимаю что это предупреждение, не не делать же из сайта говносайт zst
#2 21 декабря 2013 в 16:04
Найди до вызова условия, строку где переопределяется массив $page['data']='xxx';// это и вызывает ошибку в условии
И замени на $page['data']['active'], или убери переопределение $page['data']='xxx'.
Или в условии проверяй значение одномерного массива $page['data'], без ключа active ( см. по факту логики кода).
Или перейди на php 5.3
  1.  
  2. //создаем ошибку
  3. $page['data']['active']='данные';//Многомерный ассоциативный массив- определяем значение
  4. $page['data']='xxx';//переопределение массива в одномерный - определяем строковое значение
  5. echo $page ['data'];//получаем значение одномерного массива без ошибки
  6. echo $page['data']['active'].' Illegal string offset - ошибка - неопределенная строка.';//получаем ошибку
Что вызывает ошибку Illegal string offset в PHP 5.4?
Пытаемся обратиться к многомерному ассоциативному массиву $page['data']['active'], получаем ошибку Illegal string offset, потому что, по ключу data расположены строковые значения, а ключа ['active'] в массиве $page не существует.
Так без ошибок:
  1.  
  2. echo '<p>норма---<p>';
  3. $page2['data']['active']='норма';//Многомерный ассоциативный массив- определяем значение
  4. $page2['data']['active']='и так норма';// переопределяем значение
  5. echo $page2['data']['active'];//получаем значение
  6.  
#3 21 декабря 2013 в 19:49
сли там и правда

if($page['data']['active']) {


// $html .= '</strong>';


}
То он поидее ничо не делает?
#4 21 декабря 2013 в 20:22
Сам факт обращения к элементу $page['data']['active'] вызывает ошибку. Неважно условие или нет. Пробуй вывести echo $page['data']['active']; перед условием, и тоже и будет ошибка.
Создай php страницу, код (демо ошибки) приведен мною выше, и посмотри пример.

Используй var_dump($page); и смотри что в массиве.

PS//Если значения данных числовые, то ошибки не возникает.
  1.  
  2. $page33['data']['active']='some';
  3. $page33['data']=111;//определяем числовые данные
  4. //пытаемся получить значение
  5. var_dump($page33);
  6. echo $page33['data']['active'].'нет значения и нет ошибки';//
#5 21 декабря 2013 в 20:31

сли там и правда
if($page['data']['active'])
То он поидее ничо не делает? {

Константин Г.
Условие то проверяется!!!
#6 22 декабря 2013 в 01:12
Warning: Illegal string offset 'active' in C:\OpenServer\domains\joomla.t\www\templates\hyper\html\pagination.php on line 90

Warning: Illegal string offset 'active' in C:\OpenServer\domains\joomla.t\www\templates\hyper\html\pagination.php on line 94

Warning: Illegal string offset 'active' in C:\OpenServer\domains\joomla.t\www\templates\hyper\html\pagination.php on line 90

Warning: Illegal string offset 'active' in C:\OpenServer\domains\joomla.t\www\templates\hyper\html\pagination.php on line 94
array(1) { ["data"]=> int(111) } нет значения и нет ошибки
#7 22 декабря 2013 в 01:13
что-то связано с постраничной навигацией…
#8 22 декабря 2013 в 01:13
что-то связано с постраничной навигацией…
#9 22 декабря 2013 в 02:55
Какие-то проблемы в joomla шаблоне? Константин Г. Search -> joomla templates Illegal string offset
#10 22 декабря 2013 в 08:56


Какие-то проблемы в joomla шаблоне? Константин Г. Search -> joomla templates Illegal string offset

oll
Про joomla никто не говорил. Это вы нагуглили неизвестно что. а то что у меня в адресе сайт joomla.t то это тестовый сайт. нет разницы как назовеш.
#11 22 декабря 2013 в 08:59
А что от joomla cms тоже подходят шаблончики? scratch
#12 22 декабря 2013 в 10:18

Про joomla никто не говорил. Это вы нагуглили неизвестно что. а то что у меня в адресе сайт joomla.t то это тестовый сайт. нет разницы как назовеш.

Константин Г.

Константин Г. Вы не в детском садике.
Это фрагмент кода строки 90-91-92-92-93-94-95 файла templates/hyper/html/pagination.php шаблона Hyper для Joomla 3
  1. foreach( $list['pages'] as $page )
  2. {
  3. стр 90. if($page['data']['active']) {
  4. //$html .= '<strong>';
  5. }
  6. $html .= $page['data'];
  7. стр 94. if($page['data']['active']) {
  8. //$html .= '</strong>';
  9. }
А это Ваши ошибки

Warning: Illegal string offset 'active' in C:\OpenServer\domains\joomla.t\www\templates\hyper\html\pagination.php on line 90

Константин Г.

Warning: Illegal string offset 'active' in C:\OpenServer\domains\joomla.t\www\templates\hyper\html\pagination.php on line 94

Константин Г.
Вместо того чтобы вешать лапшу и язвить, нужно было сказать простое- Спасибо!
  1.  
  2. Решение:
  3. foreach( $list['pages'] as $page )
  4. {
  5. $html .= $page['data'];
  6.  
  7. }
#13 23 декабря 2013 в 06:52
да я непойуму чо с ним делать
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.