|
Posted by julian_m on 01/20/06 01:43
Jerry Stuckle wrote:
> julian_m wrote:
> > A short piece of code which i'm having problems with:
> >
> > class ClsX{
> >
> > var $F_name;
> > var $F_array_of_obj= array();
> >
> > function ClsX(&$obj, $name){
> > //Here I add an object reference to an array. Note that all objects
> > inside $F_array_of_obj will be of X class or null values
> > $this->F_array_of_obj[] = $obj;
> > $this->F_name = $name;
> > $this->ListParents();
> > }
> >
> >
> > function ListParents(){
> > foreach ($this->F_array_of_obj as $obj) {
> > echo "Te name of the parent is: ". $obj->F_name;
> > }
> > }
> > }//class
> >
> >
> > $clsX1 = new ClsX("","name1");
> >
> > $clsX2= new ClsX($clsX1, "name2");
> >
> > I thought that this code would output
> >
> > "the name of the parent is name1"
> >
> > but it actually prints
> >
> > ""the name of the parent is"
> >
> > so the problem is that I can't acces to de object's data inside the
> > array.
> > Any hints?
> >
> > regards - jm
> >
>
>
> Do you have error reporting enabled? Which version of PHP?
>
> On 5.0.3 I get:
>
> Fatal error: Cannot pass parameter 1 by reference in H:\temp\test.php on
> line 25
>
> This is referencing the line:
>
> $clsX1 = new ClsX("","name1")
>
> Which is valid - "" isn't a variable, so you can't reference it.
>
Well, actually I've solved the problem that I had
for ($i = 1; $i <= count($this->F_array_of_obj); $i++) {
$object = $this->F_array_of_obj[($i-1)];
$object->WhatEverObjectFunction();
}
Note that I come from a Delphi background, where all object call should
be preceded by a typecast. I mean:
TYPEOFOBJ($object)->WhatEverObjectFunction();
In this way, I'm saying "i'm sure that $object has a function named
WhatEverObjectFunction()"
BTW, What happens if $object doesn't has WhatEverObjectFunction()?
regards - jm
Navigation:
[Reply to this message]
|