Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Cannot use string offset as an array
 
 автор: kran   (08.02.2006 в 14:07)   письмо автору
 
 

Здравствуйте!

При отработке скрипта вылазит ошибка:

Fatal error: Cannot use string offset as an array

$item = $item[2][$i]; // строка с ошибкой

Что она значит и что сней делать?

Помогите :-))

   
 
 автор: XPraptor   (08.02.2006 в 14:11)   письмо автору
 
   для: kran   (08.02.2006 в 14:07)
 

Она говорит, что нет такого элемента в массиве (именно с таким ключем).
У тебя не верное значение принимает переменная $i либо действительно ничего не присвоено этому ключу массива.

   
 
 автор: isset   (08.02.2006 в 14:13)   письмо автору
 
   для: XPraptor   (08.02.2006 в 14:11)
 

неа, просто у него $item не массив

   
 
 автор: XPraptor   (08.02.2006 в 14:23)   письмо автору
 
   для: isset   (08.02.2006 в 14:13)
 

PHP не различает массив и не массив.
Если ты присвоил переменной значение с новым ключем, то она становится массивом а первое значение по умолчанию ид [0].

   
 
 автор: isset   (08.02.2006 в 14:24)   письмо автору
 
   для: XPraptor   (08.02.2006 в 14:23)
 

Еще как различает

$str = "str";
echo $str[0][1];

   
 
 автор: XPraptor   (08.02.2006 в 15:18)   письмо автору
 
   для: isset   (08.02.2006 в 14:24)
 

Ты не то написал что-то, откуда сразу двумерный массив взялся? Вот напиши и посмотри и запомни на будущее: PHP не различает массив не массив - всё массив когда это удобно.

$str="str";
echo $str[0];
echo $str[1];
echo $str[2];

   
 
 автор: Trianon   (08.02.2006 в 15:36)   письмо автору
 
   для: XPraptor   (08.02.2006 в 15:18)
 

Вообще-то такой способ доступа к символам строки считается нерекомендованным к применению.

http://www.php.net/manual/ru/language.types.string.php#language.types.string.substr

   
 
 автор: isset   (08.02.2006 в 16:27)   письмо автору
 
   для: XPraptor   (08.02.2006 в 15:18)
 

PHP жестко различает массив и строку, не надо.
$a = "string"; является строкой, никак не array и [n] является смещение символа.
$a = array(); является array, никак не строкой и [n] индекс элемента массива.


Откуда двумерный, см. первой пост:

$item = $item[2][$i]; // строка с ошибкой


В данном случае предполагается что $item это массив, но она оказалась строкой - поэтому PHP и ругается.

   
 
 автор: kran   (08.02.2006 в 14:25)   письмо автору
 
   для: isset   (08.02.2006 в 14:13)
 

Всем спасибо разобрался :-))
Пошел попил чаю... пришел... посмотрел свежим взглядом... действительно не массив :-))
Все исправил.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования