Есть такой код на С++ class A { public: A* t; void Test() { printf("Testing\n"); } }; void _tmain() { A s= A(); s.Test(); s.t->Test(); } Как такое повторить на PHP?
<?php class A { public $c; public function Test() { print "Test"; } public function CreateS() { $this->c=& new A(); } function A() { } } ?> Есть вот такая реальзация, но тогда чтобы это работало нужно каждый раз после объявления класса делать вызов $A->CreateS(); Если поместить код в конструктор: function A(){ $this->CreateS();} но ничего не выводится. Прочему???
Вот мне интересно, ты столкнулся с проблемой, которая другими способами не решается, или пытаешься сравнить php и C++ ?
навскидку - что вам мешает создать объект, потом взять его клона о присвоить его в одно из свойст объекта? З.Ы. не могу даже представить, зачем это может понадобиться...
ААААА Все отожгли понемногу Причем тут С??? Таже беда и с Delphi Нет не сравниваю. А нужно это для того чтобы гы. Есть БД в ней две таблицы(к примеру, прошу не ципляться за слова и названия таблиц) "Классы", причем структур такая что "Классы" содержит ссылку на себяже только другую запись (неспрашивайте зачем, есть такая таблица полность весь прект привести немогу). Надеюсь понятно как наследование в БД делается. Если нет вот пример: Классы(ID,ClsName,TableClass,ParentClass): 1, First, FirstTable, 0 2, Second,SecondTable,1 Отсюда получается что Класс Second наследник First Таким образом мы получаем наследование в БД. А для удобство и быстроты разработки ПО для работы с БД пишем класса для работы с этой таблицой class Cls { public $ID; public $NameCls; public $TableName; public $Cls????? } Так вот и нужно сделать такое наследование
Но си на тебя явно больше повлиял. По-моему, ты хочешь изобрести ORM. Поищи по этой аббревиатуре по форуму. Оно?
Да понимаешь как получается изобретать мне уже ничего не нужно код рабочий есть и на Си и на PHP (в начале темы привел) Просто хочется именно как в Си при создании экземпляра класса, чтобы работало[/list]
Кстати, пример в начале темы - некорректный... там s.t нигде не инициируется, а потом у него вызывается метод. Для статики такое будет работать (со скрипом), но если метод будет виртуальным, вы огребете по самое не хочу... так что мне лично непонятно, что нужно автору.