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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с классом в цикле?? 
V
    Опции темы
AlexW
Дата 22.12.2007, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Есть некий класс MyClass, при передачи ему значений  str1 и str2, он отдает соответствущии им два масива ID и TITLE 

Пытаюсь передавать значения str1 и str2 d цикле и писать выход в массивы соглано номеру пары str1-str2, но у меня в этом исходном массиве только ID и TITLE  которые соответствуют первой паре str1-str2.

Я только начинаю работать с классами.. может что неправельно сделал?

Код

for($i=0;$i<count($acconts);$i++)
{
$MyClass = new MyClass($debug=0);
    $accs=explode(" ",$acconts[$i]);
    echo trim($accs[0]);
    $MyClass->str1 = trim($accs[0]);
    $MyClass->str2 = trim($accs[1]);
    $MyClass->id = 0;
    if ($MY_LIST = $MyClass->request_list())
        {
            foreach ($MY_LIST['ITEM'] as $_MY_DATA)
            {
                $id = $_MY_DATA['id'];
                $title = $_MY_DATA['title'];
                $my[title][$i][]=$title;
                $my[id][$i][]=$id;
                                    } 
        }
}

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


Шустрый
*


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

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



ну хоть подскажите в каком направлении искать..?

в гугле мало инфы по вопросу объявления классов в цикле...


PM MAIL   Вверх
Mal Hack
Дата 22.12.2007, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

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



Создаем один класс, вызываем в цикле его метод N раз.
То, что пытаетесь сделать вы вам вряд ли нужно, такие вещи нужно делать при реальной работе с N объектами динамического содержания, что в PHP не имеет никакого смысла, за исключением может быть 0.001% задач.
PM ICQ   Вверх
AlexW
Дата 22.12.2007, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



мне это очень нужно... это не учебный код
$MyClass = new MyClass($debug=0); - вынес за цикл но все равно исходный массив формируеться значения из первого ключа $acconts -$acconts[1]

Код

Array
(
    [title] => Array
        (
            [0] => Array
                (
                    [0] => Pe
                    [1] => Tr
                    [2] => Ul
                    [3] => Me
                )

            [1] => Array
                (
                    [0] => Pe
                    [1] => Tr
                    [2] => Ul
                    [3] => Me
                )

        )

    [id] => Array
        (
            [0] => Array
                (
                    [0] => 72
                    [1] => 75
                    [2] => 81
                    [3] => 41
                )

            [1] => Array
                (
                    [0] => 72
                    [1] => 75
                    [2] => 81
                    [3] => 41
                )

        )

)


Добавлено @ 17:53
есть ли в пхп стандартная функция деструктора класса?

Это сообщение отредактировал(а) AlexW - 22.12.2007, 17:58
PM MAIL   Вверх
Mal Hack
Дата 22.12.2007, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

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



Так, как делаете вы, не делают, это НЕ правильно. Ваша идея равносильна тому, что счищать листву с грабель после каждого возвратно-поступательного движения...
Я вам сказал как это надо сделать с технологической точки зрения.
Деструктор есть __destruct(), для PHP >= 5.0.
А new каждый раз у вас срабатывать не будет, т.к. объект уже есть.
Описали бы вы задачу более полно...
PM ICQ   Вверх
AlexW
Дата 22.12.2007, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



извиняюсь что непонятно объяняю.. но в классах не силен..

у меня даже без цикла и такой вариант неработает...

Код

$MyClass = new MyClass($debug=0);

    $MyClass->str1 = 'string11';
    $MyClass->str2 = 'string12';
    $MyClass->id = 0;
    $MY_LIST = $MyClass->request_list();

            foreach ($MY_LIST['ITEM'] as $_MY_DATA)
            {
                $id = $_MY_DATA['id'];
                $title = $_MY_DATA['title'];
                echo $title.' - '.$id.'<br>';
            } 


    $MyClass->str1 = 'string21';
    $MyClass->str2 = 'string22';
    $MyClass->id = 0;
    $MY_LIST = $MyClass->request_list();

            foreach ($MY_LIST['ITEM'] as $_MY_DATA)
            {
                $id = $_MY_DATA['id'];
                $title = $_MY_DATA['title'];
                echo $title.' - '.$id.'<br>';
            } 



и первое и второе выводят одно и тоже хотя даные входные не эдентичны.. мне кажеться все дело в методе как его обнулить? ну основная причина конешно моя безграмотность.)
PM MAIL   Вверх
Mal Hack
Дата 22.12.2007, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

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



ОПИШИТЕ СВОЮ ЗАДАЧУ БОЛЕЕ КОНКРЕТНО !!!!

На пальцах, что сделать с точки зрения физики хотите, реальности... То, что вы пытаетесь сделать программным кодом понять слишком тяжело ;)


Это сообщение отредактировал(а) Mal Hack - 22.12.2007, 19:35
PM ICQ   Вверх
AlexW
Дата 22.12.2007, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



извиняюсь)

сначала обявляю класс
$MyClass = new MyClass($debug=0);

задаю параметры метода - 'string11' 'string12' и вызываю его $MyClass->request_list()
он отдает массив $MY_LIST['ITEM'], я в цикле перебераю его значения и вывожу на экран
Код

    $MyClass->str1 = 'string11';
    $MyClass->str2 = 'string12';
    $MyClass->id = 0;
    $MY_LIST = $MyClass->request_list();

            foreach ($MY_LIST['ITEM'] as $_MY_DATA)
            {
                echo $_MY_DATA['title'].' - '.$_MY_DATA['id'].'<br>';
            } 

выводит:
a - 1
b - 2
c - 3
d - 4
это соотвествует  'string11' 'string12'

далее задаю новые параметры метода -  'string21' 'string22' и вызываю его $MyClass->request_list()
Код

    $MyClass->str1 = 'string21';
    $MyClass->str2 = 'string22';
    $MyClass->id = 0;
    $MY_LIST = $MyClass->request_list();
            foreach ($MY_LIST['ITEM'] as $_MY_DATA)
            {
                echo $_MY_DATA['title'].' - '.$_MY_DATA['id'].'<br>';
            } 

выводит опять:
a - 1
b - 2
c - 3
d - 4
это соотвествует  'string11' 'string12', хотя должно было вывести 
e - 5
d - 6
e - 7
f - 8
соответствующии значениям 'string21' 'string22', которые я и задавал там  
    $MyClass->str1 = 'string21';
    $MyClass->str2 = 'string22';
PM MAIL   Вверх
AlexW
Дата 22.12.2007, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Mal Hack @ 22.12.2007,  19:06)
ОПИШИТЕ СВОЮ ЗАДАЧУ БОЛЕЕ КОНКРЕТНО !!!!

На пальцах, что сделать с точки зрения физики хотите, реальности... То, что вы пытаетесь сделать программным кодом понять слишком тяжело ;)

Ну еще раз попытаюсь...
есть метод, то есть функция в классе, в которую необходимо передать значения логин и пароль, а она в свою очередь отдает инфу по этому юзеру
Тока дело вот в чем - я последовательно передаю ей 2 раза разные логин и пароль, по первой паре логин-пароль она отдает инфу соответствующую этому юзеру, а во втором вызове передаю данные второго пользователя но она отдает данные первого юзера..

так надеюсь понятно)

УПД: уфффф....  smile 

дело было в том, что скрипт при втором конекте конектился с сессией от 1 юзера и саит воспринимал его как 1 юзера и отдавал соответственно данные этого юзера.
помогло:
Код

$_SESSION=array();
$HTTP_SESSION_VARS=array();
$_POST=array();


Mal Hack, сенкс, что заставил задуматься в ином направлении)

Это сообщение отредактировал(а) AlexW - 22.12.2007, 20:04
PM MAIL   Вверх
Mal Hack
Дата 22.12.2007, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

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



Как хранятся данные пользователя и как они получаются..
$MyClass->request_list();
PM ICQ   Вверх
Glip
Дата 22.12.2007, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



AlexW, допустим. а вас не наводит на мысль что один и тот же результат при ожидаемом разном говорит об ошибке внутри класса?
а внутренности MyClass можно посмотреть?



Это сообщение отредактировал(а) Glip - 22.12.2007, 20:03


--------------------
user posted image
PM MAIL   Вверх
AlexW
Дата 22.12.2007, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Glip @ 22.12.2007,  20:02)
AlexW, допустим. а вас не наводит на мысль что один и тот же результат при ожидаемом разном говорит об ошибке внутри класса?
а внутренности MyClass можно посмотреть?

спасибо за помошь, но уже все решил, смотрите на пост выше.
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.0878 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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