[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получить имя объекта или ссылку на объект из класса
anonimizer_me
Всем день добрый smile.gif
Возникла проблема.
Нужно получить имя объекта из класса. Или ссылку.
Тоесть

Код
class foo{
  function getNameObject(){
return что-то
}
}

$blabla = new foo();

$str = $blabla->getNameObject();

// $str == 'blabla';


вот так



Спустя 53 минуты, 7 секунд (19.03.2008 - 18:21) vasa_c написал(а):
У объекта нет имени.

Спустя 49 минут, 34 секунды (19.03.2008 - 19:10) LoneCat написал(а):
У объекта действительно нет имени, ссылку можно получить через $this внутри самого объекта, однако если ты к нему обращаешся - то очевидно ссылка-то уже есть smile.gif

Спустя 15 часов, 9 минут, 3 секунды (20.03.2008 - 10:19) anonimizer_me написал(а):
Цитата(LoneCat @ 19.3.2008, 22:10) [snapback]35292[/snapback]
У объекта действительно нет имени, ссылку можно получить через $this внутри самого объекта, однако если ты к нему обращаешся - то очевидно ссылка-то уже есть smile.gif
ph34r.gif
Тогда как получить ссылку на объект?
Мне надо так

class foo(){
public: $fff;
function getLink(){ как-то возвращает ссылку; }
}

$obj = new foo();

$SsilkaObject = $obj->getLink()

Надо чтобы $SsilkaObject был не копией объекта $obj , а его зеркалом так сказать.
Тоесть $SsilkaObject->fff = '123'; приведёт к изменению свойства fff у $obj

Надо именно таким способом
ТО что можно сделать так $SsilkaObject = &$obj это я знаю ) Но мне не подходит

Спустя 1 час, 8 минут, 10 секунд (20.03.2008 - 11:27) LoneCat написал(а):
Насколько мне известно $SsilkaObject (брр, у меня-бы язык не повернулся так переменную обозвать smile.gif ничего странно что она после этого не пашет smile.gif) и будет зеркалом $obj, чтобы создать копию, живущую свой отдельной жизнью - нужно указать $SsilkaObject = clone $obj;

Спустя 2 часа, 39 минут, 58 секунд (20.03.2008 - 14:07) vasa_c написал(а):
Вы не поверите: $SsilkeObject = $obj
Если конечно, вы не используете давно умерший php4.

Спустя 36 минут, 4 секунды (20.03.2008 - 14:43) LoneCat написал(а):
Цитата(vasa_c @ 20.3.2008, 14:07) [snapback]35345[/snapback]
Вы не поверите: $SsilkeObject = $obj
Если конечно, вы не используете давно умерший php4.

Он не давно умерший, хоть и на смертном одре, поддержку оного продлили на пол-года smile.gif

Спустя 5 часов, 25 минут, 21 секунда (20.03.2008 - 20:09) anonimizer_me написал(а):
Люди, вы чё такие
Вы читайте что я пишу
Я пишу что код вроде $ssilkaObject = $obj; мне не подходит
мне надо метод в классе который бы возвращал ссылку на объект. Именно ссылку, а не копию.

Спустя 1 час, 14 минут, 12 секунд (20.03.2008 - 21:23) givotnoe87 написал(а):
Это и будет еще одна ссылка на объект. Если вы измените свойство объекта $obj, то и у $ssilkaObject это свойство изменится. Копия объекта создается с помощью конструкции clone. Просто не ясно, фокус проблемы на получении еще одной ссылки на объект, или в написании метода, который ету ссылку возвращает? Если нужен именно метод вотъ:

public function getObj() {
return $this;
}

вроде канает smile.gif

Спустя 12 часов, 59 минут, 45 секунд (21.03.2008 - 10:23) anonimizer_me написал(а):
О! Спасиб тееб чувак ) Я чё-то даже и не подумал sad.gif

Если интересно, то вот для чего всё это было

Цитата
сделал систему меток
тоесть типа как в Delphi или Си label:
тот тут так
$WLS_Label->label('имя метки');

Вот.. вызываются все фунции со списка, который создаётся так

$WLS_Label->addFunctionToLabel('имя метки', createfunction(тра та та))

Так вот
Поддерживаются плагины
Плагин это просто файл с классом
Для всех этих классов доступна система меток
Надо чтобы из класса, к примеру при __construct() уже добавлялась функция на метку, которая в движке где-то. К примеру в конце кода метка 'getStat' которая запускает функции ведения статистики

Так вот
Из класса в том же конструкт можно было б сделать так
$WLS->Label->addFunctionToLabel('имя метки', createfunction(array(&$ojbect, tratat()), $param))
Быстрый ответ:

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