[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ассоциативный массив и объекты
tarantulaaha
Как правильно создать ассоциативный массив объектов и работать с ним??



Спустя 6 минут, 37 секунд (21.06.2012 - 22:12) Игорь_Vasinsky написал(а):
объектов или элементов?

Спустя 7 минут, 48 секунд (21.06.2012 - 22:20) tarantulaaha написал(а):
Цитата (Игорь_Vasinsky @ 21.06.2012 - 19:12)
объектов или элементов?

объектов.Поясню.
есть класс

файл js.php:

class myjs {
var $i;
var $scripts;
public function init(){
$this->i=0;
$this->scripts=array();
$this->scripts["count"]=$this->i;
}
function add($url){
$this->scripts[$this->i]="<script type='text/javascript' src='$url'></script>";
$this->i++;
$this->scripts["count"]=$this->i;
}
function getIndex(){
return $this->scripts["index"];
}
function getAsHTML(){
echo $this->scripts;
}
}


$js=new myjs();
$ducument["JavaScript"]=$js;
$document["JavaScript"]->init(); // тут выдает ошибку


ошибка
Notice: Undefined index:JavaScript in /usr/home/chaban/data/www/myav4ik.org.ua/myphp/classes/js.php on line 30

Fatal error: Call to a member function init() on a non-object in /usr/home/chaban/data/www/myav4ik.org.ua/myphp/classes/js.php on line 30

Спустя 23 минуты, 10 секунд (21.06.2012 - 22:43) johniek_comp написал(а):
tarantulaaha
если потянуло на такие извращение то используй clone что бы не ругалось, и нотис это не ошибка, это предупреждение

Спустя 7 минут, 49 секунд (21.06.2012 - 22:51) Invis1ble написал(а):
tarantulaaha
Цитата
Как правильно создать ассоциативный массив объектов и работать с ним??

так же как и любой другой ассоциативный массив

Спустя 10 часов, 3 минуты, 2 секунды (22.06.2012 - 08:54) tarantulaaha написал(а):
Цитата (johniek_comp @ 21.06.2012 - 19:43)
tarantulaaha
если потянуло на такие извращение то используй clone что бы не ругалось, и нотис это не ошибка, это предупреждение

Fatal error: Call to a member function init() on a non-object in /usr/home/chaban/data/www/myav4ik.org.ua/myphp/classes/js.php on line 30

Спустя 5 минут, 2 секунды (22.06.2012 - 08:59) tarantulaaha написал(а):
Цитата (Invis1ble @ 21.06.2012 - 19:51)
так же как и любой другой ассоциативный массив

Не получается т.к.
при вызове

$document["JavaScript"]->init();

вылетает ошибка.(см. код выше)

Спустя 1 минута, 50 секунд (22.06.2012 - 09:01) Игорь_Vasinsky написал(а):
потому что это не объект, а элемент массива.

$js=new myjs();
$ducument["JavaScript"]=$js->init();


нее?

Спустя 2 минуты, 1 секунда (22.06.2012 - 09:03) tarantulaaha написал(а):
Цитата (Игорь_Vasinsky @ 22.06.2012 - 06:01)
потому что это не объект, а элемент массива.

$js=new myjs();
$ducument["JavaScript"]=$js->init();


нее?

там есть и другие функции.

нужен именно вариант
$document["JavaScript"]->init();

Спустя 44 секунды (22.06.2012 - 09:03) Игорь_Vasinsky написал(а):
так не обращаются с массивами - это не объект, это массив.

Спустя 4 минуты, 13 секунд (22.06.2012 - 09:08) tarantulaaha написал(а):
Цитата (Игорь_Vasinsky @ 22.06.2012 - 06:03)
так не обращаются с массивами - это не объект, это массив.

хм....а как же ООП? получается элемент ассоциативного массива не может быть объектом, а индексного может? т.к. если бы все это сделать так:


$js=new myjs();
$ducument[0]=$js;
$document[0]->init();


то работает прекласно

Спустя 3 минуты, 10 секунд (22.06.2012 - 09:11) Игорь_Vasinsky написал(а):
почему может. как я написал - так может, я поместил объект класса в массив, а ты пытался его инициализировать.

Спустя 9 минут, 13 секунд (22.06.2012 - 09:20) Игорь_Vasinsky написал(а):
на скока я знаю элемент массива может содержать булевые, числовые и строковые значения, он да же может содержать массив, но не как не объект.

Спустя 56 минут, 28 секунд (22.06.2012 - 10:16) lomonosv написал(а):
Внимательно посмотрите на переменные свои
$ducument["JavaScript"]=$js;
$document["JavaScript"]->init(); // тут выдает ошибку

Они помоему разные немного

Спустя 7 минут, 59 секунд (22.06.2012 - 10:24) lomonosv написал(а):
=)

Спустя 4 минуты, 15 секунд (22.06.2012 - 10:29) varvar написал(а):
следи за переменными, чтоб таких банальных ошибок не было, нужно пользоваться средой разработки а не ноутпадом...

Цитата

$ducument["JavaScript"]=$js;
$document["JavaScript"]->init();

Спустя 3 минуты, 44 секунды (22.06.2012 - 10:32) tarantulaaha написал(а):
Цитата (lomonosv @ 22.06.2012 - 07:16)
Внимательно посмотрите на переменные свои
$ducument["JavaScript"]=$js;
$document["JavaScript"]->init(); // тут выдает ошибку

Они помоему разные немного

Прошу пояснения

Спустя 2 минуты, 1 секунда (22.06.2012 - 10:34) Игорь_Vasinsky написал(а):
$ducument["JavaScript"]=$js;
$document["JavaScript"]->init(); // тут выдает ошибку

Спустя 7 минут, 51 секунда (22.06.2012 - 10:42) tarantulaaha написал(а):
Цитата (Игорь_Vasinsky @ 22.06.2012 - 07:34)
$ducument["JavaScript"]=$js;
$document["JavaScript"]->init(); // тут выдает ошибку

епт. вчера в состоянии полного психологического истощения допустил такую ошибку... спасибо большое...

подбиваю итог: все работает! и добавлять элемент в виде объекта МОЖНО.

Спустя 2 минуты, 38 секунд (22.06.2012 - 10:45) varvar написал(а):
Цитата

подбиваю итог: все работает! и добавлять элемент в виде объекта МОЖНО.


конечно можно, объект всегда передается как указатель

Спустя 1 месяц, 10 дней, 18 часов, 55 минут, 36 секунд (3.08.2012 - 05:41) kos написал(а):
$document["JavaScript"]->init(); это функция
$document["JavaScript"]->init; это объект
wink.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.