Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> fatal erroror 
:(
    Опции темы
supervladislav
Дата 5.9.2011, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



скажите с чем может быть связана ошибка если в массиве 4 сверху.
Fatal error: [] operator not supported for strings i
Код

[] operator not supported for strings in /home/userdop1/data/www/game1/includes/Core.class.php on line 269
 
Код

 public function greate_opponents(){
        $cfg=0;
         if(isset($this->user_id) and isset($this->bot_id)){
        $this->_opponents[].=$this->user_id;
        $this->_opponents[].=$this->bot_id;
        }
        $this->parameters_of_skills($this->bot_id);   
        if(isset($this->user_friend)){           
        $this->_opponents[].=$this->user_friend;}
        
        
        $this->parameters_of_skills($this->user_id);
        if(isset($this->user_friend)){
        $this->_opponents[].=$this->user_friend;}
        
        
        if(count($this->_opponents)>0){
        foreach($this->_opponents as $value){
         $cfg++;
         if(isset($this->_opponents[$cfg])){
           continue;
         }else {  unset($this->_opponents[$cfg]); }
        }
      }}

PM MAIL   Вверх
s0lman
Дата 5.9.2011, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: 9
Всего: 29



Цитата(supervladislav @  5.9.2011,  20:08 Найти цитируемый пост)
_opponents[].=

Очевидно, недопустимая операция.


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
supervladislav
Дата 5.9.2011, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



Я и точнокой и без точки делал 
PM MAIL   Вверх
Sentox
Дата 5.9.2011, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



array_push($this->_opponents, $this->user_id);

Добавлено через 6 минут и 23 секунды
Скажите пожалуйста, а блок else когда нибудь исполнится в Вашем контексте
Код

 if(isset($this->_opponents[$cfg])){
           continue;
         }else {  unset($this->_opponents[$cfg]); }
        }

PM MAIL   Вверх
enoff
Дата 5.9.2011, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



Sentox, 
Цитата(supervladislav @  5.9.2011,  20:08 Найти цитируемый пост)
[] operator not supported for strings

думаете array_push работает со строками? smile

Код
 if(isset($this->_opponents[$cfg])){
           continue;
         }else {  unset($this->_opponents[$cfg]); }
        }

разрабатываемая игра походу в жанре фентези, сценарий прям с исходников пошел писать автор  smile 
Цитата(supervladislav @  5.9.2011,  20:08 Найти цитируемый пост)
скажите с чем может быть связана ошибка если в массиве 4 сверху.

интерпретатор говорит, что не массив это.
PM MAIL ICQ Skype GTalk   Вверх
supervladislav
Дата 5.9.2011, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



Sentox, да  просто мне было не понятно откуда в процессе присвоения в массив записывается  пусто
PM MAIL   Вверх
Sentox
Дата 5.9.2011, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



Цитата

думаете array_push работает со строками? smile


И не собираюсь утверждать smile
в моём примере что угодно в массив добавиться с последующим номером ключа. array_push принимает массив и складывает в него хоть объекты smile 
Это в примере supervladislav ошибка интерпритатора (конкатенация, которая свойственна строкам (string) с присваиванием в массив очередного элемента). Интерпритатор принял это как парадокс smile

Добавлено через 5 минут и 26 секунд
Цитата(supervladislav @ 5.9.2011,  21:56)
Sentox, да  просто мне было не понятно откуда в процессе присвоения в массив записывается  пусто

Лучше продебажить и найти ошибку чем "костыли" и "фиксы" строить.
Вполне резонно что массив $this->_opponents просто не очищается перед следующим использованием. Вы подумайте вот над чем, стоит ли использовать этот массив как доступный во всём классе или лучше всё таки делать локально в методе, можно избежать многих неприятностей. 

Это сообщение отредактировал(а) Sentox - 5.9.2011, 22:00
PM MAIL   Вверх
enoff
Дата 5.9.2011, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



Sentox, не согласен.

Цитата

[] operator not supported for strings

сообщение именно про конструкцию [] применительно к переменной, а не про конкатенацию (она как раз должна выполниться: пусто + переменная справа).

Т.е. $this->_opponents все-таки строка, а не массив.

Добавлено @ 22:14
Код

$arr = array();
$arr[] .= 'test';
var_dump($arr); //array(1) { [0]=> string(4) "test" } 


Код

$arr = 'this is string';
$arr[]. = 'test'; // Fatal error: Cannot use [] for reading in /var/www/test/index.php on line 5 

и маленький тест в подтверждение  smile 

up.
ууупсс... сообщение не то.. smile 

Это сообщение отредактировал(а) enoff - 5.9.2011, 22:16
PM MAIL ICQ Skype GTalk   Вверх
Sentox
Дата 5.9.2011, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



Да, действительно, верно, я такой пример вижу впервые (в плане такую форму присвоения, больше доверяю array_push())
А вот и подоспел мой совет supervladislav, локализируйте  $this->_opponents и было бы видно что она не про инициализирована первоначально или имеет вообще другое отношение к классу нежели было задумано первоначально. Чем меньше глубина использования переменной  тем легче да и быстрее выявлять ошибки. Не только ошибки но и читаемость кода поднимается в разы.

Это сообщение отредактировал(а) Sentox - 5.9.2011, 22:24
PM MAIL   Вверх
enoff
Дата 5.9.2011, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



Цитата(Sentox @  5.9.2011,  22:23 Найти цитируемый пост)
больше доверяю array_push()

в чем недоверие к $arr[] = 'last element'; ?
ну $arr[] .= 'last element'; - сугубо стиль автора и тоже первый раз вижу  smile 


supervladislav, если ковыряние в коде не устраивает, то хотя бы сделайте var_dump($this->_opponents); а потом уже все равно в глубь кода лезть и пост выше принять к сведению.
PM MAIL ICQ Skype GTalk   Вверх
supervladislav
Дата 5.9.2011, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



вот я всегда так делал ибо присвоение в противном случае не происходило )))может так грамотно вопрос надо было задать мне. 
PM MAIL   Вверх
enoff
Дата 5.9.2011, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



Хотите сказать, что у вас
Код

$arr = array();
$arr[] = 'element'; //всегда не работает
$arr[] .= 'element'; //всегда работает?

?
PM MAIL ICQ Skype GTalk   Вверх
supervladislav
Дата 6.9.2011, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



Я так всегда делаю )))незнаю просто с самого начало пошло ,а в чём раздница

Добавлено @ 01:09
enoff, а если второй аргумент не создан ,или неопределён .
Честно говоря не понимаю зачем такие вещи усложнять не уточняю , можно просто присвоением.

Это сообщение отредактировал(а) supervladislav - 6.9.2011, 01:49
PM MAIL   Вверх
MoLeX
Дата 6.9.2011, 05:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(supervladislav @  6.9.2011,  00:54 Найти цитируемый пост)
Я так всегда делаю )))незнаю просто с самого начало пошло ,а в чём раздница

в том что в доках это я не где не обнаружил. и через N версий разработчики могут придумать фишку с использование точки


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Sentox
Дата 6.9.2011, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



Интересно, получается это просчёт самих разработчиков PHP. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0603 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.