object parent?
25 отговора
632 прегледа
Заключена
object parent?
zdr...
imam slednia case:
ta vaprosa mi e: kak/dali moga da imam dostap v A() do properties na objecta ot class B, bez da go predavam kato parameter na constructora A? t.e.:
Just a genius
imam slednia case:
class A
{
function A($a1, $a2)
{
$this->a1=$a1;
$this->a2=$a2;
}
}
class B
{
function B($b1)
{
$this->b1=$b1;
$this->items='';
}
function add($c1, $c2)
{
$this->items[]=new A($c1, $c2);
}
}
ta vaprosa mi e: kak/dali moga da imam dostap v A() do properties na objecta ot class B, bez da go predavam kato parameter na constructora A? t.e.:
class A
{
function A($a1, $a2)
{
$this->a1=$a1;
$this->a2=$a2.(???$parent???->b1);
}
}
Re: object parent?
това са различни класове.
къв парент кви 5 лева ?
E tuk ni6to niama :[линк]
къв парент кви 5 лева ?
E tuk ni6to niama :[линк]
Re: object parent?
напиши по-свястно примера и въпроса
и все пак, ако имаш:
class A {
...
}
class B extends A {
...
}
във клас Б можеш да викаш неща от клас А посредством parent::method_na_A() примерно
и все пак, ако имаш:
class A {
...
}
class B extends A {
...
}
във клас Б можеш да викаш неща от клас А посредством parent::method_na_A() примерно
Re: object parent?
heheh
parent e, shtot se poluchava taka che imam class B, v koito imam masiv s elementi ot class A... t.e vizualno si go predstavi po slednia nachin:
c:\
+dir 1
+dir 2
kadeto c:\ e "parent" class-a (B), a dir1 i dir2 sa mu children ot class A...
znam che ne e tochno parent v istinskia smisal, ama...
demek da prodalja s primera - predstavi si che iskam ot constructora, koito sazdava "dir1" da razbera kolko e svobodnoto myasto na "c:\" (koeto se yavyava property na "c:\")
Just a genius
parent e, shtot se poluchava taka che imam class B, v koito imam masiv s elementi ot class A... t.e vizualno si go predstavi po slednia nachin:
c:\
+dir 1
+dir 2
kadeto c:\ e "parent" class-a (B), a dir1 i dir2 sa mu children ot class A...
znam che ne e tochno parent v istinskia smisal, ama...
demek da prodalja s primera - predstavi si che iskam ot constructora, koito sazdava "dir1" da razbera kolko e svobodnoto myasto na "c:\" (koeto se yavyava property na "c:\")
Re: object parent?
ne, tva go videh v manula-a, ama moya sluchai ne e takav...
Just a genius
Re: object parent?
дефакто нямаш никаква връзка между класовете. ти искаш да вземеш проперти от истанция на клас Б или да имаш релация , тоест какво точно искаш да направиш с това
$this->a2=$a2.(???$parent???->b1);
--
Ела в мафията
$this->a2=$a2.(???$parent???->b1);
--
Ела в мафията
Re: object parent?
znachi da poyasnya pak s primera s direktoriite:
imam class Drive
$c=new Drive("c:\")
takaaa...
interesuva me tva chervenoto kak stava bez da predavam $this->freespace kato attribut na Dir();
p.s. V deistvitelnost rabotata ne e za direktorii, ama misla che taka e lesno da se shvane kva e ideata...
Just a genius
imam class Drive
$c=new Drive("c:\")
class Dir
{
function Dir($name)
{
$this->name=$name;
$this->freespace=???
(tuka trebe da zema freespace-to ot t.nar. ot men "parent" element,
koito e object ot class Drive, i koito vika new Dir() )
}
}
class Drive
{
function Drive($letter)
{
$this->letter=$letter;
$this->directories=array();
$this->freespace=get_free_space();
}
function addDir($name)
{
$this->directories[]=new Dir($name);
}
}
$c=new Drive("c:\");
$c->addDir("Temp");
$c->addDir("Windows");
...
takaaa...
interesuva me tva chervenoto kak stava bez da predavam $this->freespace kato attribut na Dir();
p.s. V deistvitelnost rabotata ne e za direktorii, ama misla che taka e lesno da se shvane kva e ideata...
Re: object parent?
абе нещо пак май не се разбираме
ако примерът е този, който пишеш, то защо не направиш в AddDir
$this->directories[]=new Dir($name);
$this->freespace -= "големината" на директорията (от инстанцирания обект, т.е. в класа имаш $size)
freespace-а не ти е property на директорията, а на drive-а

ако примерът е този, който пишеш, то защо не направиш в AddDir
$this->directories[]=new Dir($name);
$this->freespace -= "големината" на директорията (от инстанцирания обект, т.е. в класа имаш $size)
freespace-а не ти е property на директорията, а на drive-а
Re: object parent?
abe sega ne se hvashtai za primera bukvalno... situaciata e savsem razlichna, prosto se opitvam choveshki da obyasnya tova koeto mi trebe...
prosto priemi che Dir-objecta trebe da znae freespace-a na Drive-objecta, koito go e sazdal
Just a genius
prosto priemi che Dir-objecta trebe da znae freespace-a na Drive-objecta, koito go e sazdal
Re: object parent?
За да е по-ясно съм взел вместо "А" - "Student" и вместо "В" - "University". Идеята, е че унито знае, колко кои студенти са записани, но и студента знае, в кои университет учи.
Ето и примерен код:
А и за "обектни" въпроси, дори за пхп май е по-добре (за сега) да питаш в Програмисти, Java или .NET
Не насилвайте нещата - вземете по-голям чук.
Ето и примерен код:
class Student
{
var $studiesAt;
function Student()
{}
function Student(&$university) {
$this->studiesAt = $university;
}
function setUniversity(&$university) {
$this->studiesAt = $university;
}
}
class University
{
var $students = array();
var $num_buildings;
function University($num) {
$this->num_buildings = $num;
}
function getNumBuildings()
{
return $this->num_buildings;
}
function add($student) {
$student->setUniversity($this);
$students[] = $student;
}
}
$university = new University(5);
$stud1 = new Student;
$university->add($stud1);
//Kolko sgradi ima v universiteta, koito u4a?
$n = $stud1->studiesAt->getNumBuildings();
А и за "обектни" въпроси, дори за пхп май е по-добре (за сега) да питаш в Програмисти, Java или .NET
Не насилвайте нещата - вземете по-голям чук.
Re: object parent?
tva dobre, ama vij che vse pak predavash neobhodimata informacia kato parameter v setUniversity()...
pri men sluchaya e takav che trebe da predam 20-tina razlichni properties, i mi se struva che ako ima po-avtomatichen nachin, shte e po-dobre nyakak si...
Just a genius
pri men sluchaya e takav che trebe da predam 20-tina razlichni properties, i mi se struva che ako ima po-avtomatichen nachin, shte e po-dobre nyakak si...
Re: object parent?
За да приключим въпроса типично по бългаски ще кажа, че няма как да стане
. В един пълноценен ООП език (всъщност дали не ставаше и в пхп5?) това може да се постигне ако А ти е вътрешен клас на Б. Но в случая просто нямаш връзка между двата класа. Б има инстанции на а, но това е абсолютно същото ако те не бяха в Б, а създадени отвън.
Мисля си, че щом ти трябва достъп до толкова пропертита от Б в А, най-вероятно трябва да си препишеш обектния модел. Всъщност дали ти трябват обекти?
--
Ела в мафията
Мисля си, че щом ти трябва достъп до толкова пропертита от Б в А, най-вероятно трябва да си препишеш обектния модел. Всъщност дали ти трябват обекти?
--
Ела в мафията
Re: object parent?
abe tryabvat mi po nekolko prichini... i zasega dobre stava...
taka kato gledam sha naprava 1 method na "golemia" class deto predava instancia na "malkia"... taka sha si resha problemite yavno...
Just a genius
taka kato gledam sha naprava 1 method na "golemia" class deto predava instancia na "malkia"... taka sha si resha problemite yavno...
Re: object parent?
хехехе . представям ти го визуално:
сега ти си представи че имам 5 лева в мен и 10 лева в банката
като си бръкна в джоба как ще си видя банковото извлечение
E tuk ni6to niama :[линк]
сега ти си представи че имам 5 лева в мен и 10 лева в банката
като си бръкна в джоба как ще си видя банковото извлечение
E tuk ni6to niama :[линк]
Финален резултат от дискусията
1. Момъка има идея (само той си я знае) какво иска но не може да го обясни
2. Отговарящите имат идея какво трябва да се направи, но не разбират въпроса (защото за да зададеш коректен и конкретен въпрос трябва да знаеш поне 50% от отговора)
3. ООП - то е хубаво нещо , НО трябва да се спазват принципи !!!!
E tuk ni6to niama :[линк]
2. Отговарящите имат идея какво трябва да се направи, но не разбират въпроса (защото за да зададеш коректен и конкретен въпрос трябва да знаеш поне 50% от отговора)
3. ООП - то е хубаво нещо , НО трябва да се спазват принципи !!!!
E tuk ni6to niama :[линк]
Re: object parent?
а бе май и ти не знаеш какъв ти е случая ама аз започвам да се досещам :-))))
Чети какво са ти написали !!!
E tuk ni6to niama :[линк]
Чети какво са ти написали !!!
E tuk ni6to niama :[линк]
Re: object parent?
mnogo prosto, trebe bankovoto izvlechenie da ti se namira veche tam (tva e koeto mi trebe na mene)...
Just a genius
Re: object parent?
като си бъркам в джоба по-надълбоко най често напипвам нещо друго там ....
с което отгаварям на двата ти въпроса
E tuk ni6to niama :[линк]
с което отгаварям на двата ти въпроса
E tuk ni6to niama :[линк]
Re: object parent?
параблема е очевиден :)
ами да ти кажа, най-добре май май ще е да запечаташ добавянето на нови елементи към този масив в един метод, при който освен създаването на нова инстанция на обекта се присвоява и property _parent. По разните GoF принципи говорят за Factory, където се създава абстракция за създаване на нови обекти...
Потърси - [линк] - линка, който винаги давам като се отвори приказка за OOP :).
ами да ти кажа, най-добре май май ще е да запечаташ добавянето на нови елементи към този масив в един метод, при който освен създаването на нова инстанция на обекта се присвоява и property _parent. По разните GoF принципи говорят за Factory, където се създава абстракция за създаване на нови обекти...
Потърси - [линк] - линка, който винаги давам като се отвори приказка за OOP :).