here's an example of what i said:
<?php

class obj {
    Var $a = 1;

    function byVal() {
        byVal($this);
    }

    function byRef() {
        byRef($this);
    }
}

function byVal($obj) {
    echo $obj->a += 1;
}

function byRef(&$obj) {
    echo $obj->a += 1;
}

///////////////////////////////////////////
$a = &new obj();

$a->byVal();
echo "<br>";

echo $a->a;

echo "<br>";

$a->byRef();
echo "<br>";

echo $a->a;

?>

Regards Michael

"Michael Virnstein" <[EMAIL PROTECTED]> schrieb im Newsbeitrag
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
>
> "Sascha Mantscheff" <[EMAIL PROTECTED]> schrieb im Newsbeitrag
> 02051311162204.02523@pico">news:02051311162204.02523@pico...
>
>
> > When I pass an object as a parameter to a function as "$this", this is
an
> > object reference (according to the docs).
>
> it depends on the function. if you call it by value, not by reference,
> then the function will contain a copy of the original not a pointer.
> Doesn't matter if you call the function with $this or some other
reference.
> $this is a self-reference to the object. you can only use it inside the
> object itself.
> but as soon as you send it to a function as "by value"-parameter, a copy
of
> the
> object will be used inside the function. if you call the function "by
> reference"
> you'll hold a pointer inside the function
>
> > I store this reference in a local variable called $someObject.
$someObject
> > now contains an object pointer.
>
> Ok, let's say the parameter is send to the functions "by reference". Then
> you are
> right, it'll point to the original object, but:
>
> function (&$objRef) {
>     $blah = $objRef;
> }
> -> $blah will hold a copy!
>
> function (&$objRef) {
>     $blah = &$objRef;
> }
> -> $blah will hold a reference!
>
> > I pass $someObject to another function. Is this a reference to the
> original
> > $this, or is it a copy of the object?
>
> Read what i wrote above and answer it yourself.
>
> Regards Michael.
>
> > All function calls are by value, not by reference (without the "&" name
> > modifier).
> >
> >
> > s.m.
>
>



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to