Doh, typo:

// this next line would generate a parse error
// print("c:a1: " . $c->echo($a)->method1() . "<br />\n");

should read

// this next line would generate a parse error
// print("c:a1: " . $c->echoMethod($a)->method1() . "<br />\n");


On Thursday, April 4, 2002, at 05:25  PM, Steve Cayford wrote:

>
> On Thursday, April 4, 2002, at 04:21  PM, Erik Price wrote:
>
>> I looked in the manual, but didn't see anything about this.  I've read 
>> that PHP isn't a true object-oriented language, but rather simulates 
>> elements of object-oriented programming.  Can I write a class that 
>> performs operations and manipulates objects?  Can objects be placed 
>> into arrays etc?
>>
>> Erik
>>
> The real hindrance I've come up against is that you can't do chained 
> method calls, otherwise objects perform pretty well as expected. Keep 
> in mind the difference between passing by reference and by copy, 
> though, or you'll find yourself updating a copy of an object somewhere 
> instead of the original.
>
> -Steve
>
> Here's some code I was just playing around with:
>
> <?php
>
> class classA {
>     function method1() {
>         return 1;
>     }
>     function method2() {
>         return 2;
>     }
> }
>
> class classB {
>     function method1($num = 0) {
>         return $num + 10;
>     }
>     function method2($num = 0) {
>         return $num+20;
>     }
> }
>
> class classC {
>     function echoMethod($object) {
>         return $object;
>     }
> }
>
> class classD {
>     function otherMethod1($object) {
>         return $object->method1();
>     }
>     function otherMethod2($object) {
>         return $object->method2();
>     }
> }
>
> $a = new classA;
> $b = new classB;
> $c = new classC;
> $d = new classD;
>
> print("a1: " . $a->method1() . "<br />\n");
> print("a2: " . $a->method2() . "<br />\n");
> print("b1: " . $b->method1($a->method1()) . "<br />\n");
> print("b2: " . $b->method2($a->method2()) . "<br />\n");
> print("d1: " . $d->otherMethod1($b) . "<br />\n");
> print("d2: " . $d->otherMethod2($c->echoMethod($a)) . "<br />\n");
>
> // this next line would generate a parse error
> // print("c:a1: " . $c->echo($a)->method1() . "<br />\n");
>
> // this outputs:
> // a1: 1
> // a2: 2
> // b1: 11
> // b2: 22
> // d1: 10
> // d2: 2
>
> ?>
>
>>
>>
>>
>>
>> ----
>>
>> Erik Price
>> Web Developer Temp
>> Media Lab, H.H. Brown
>> [EMAIL PROTECTED]
>>
>>
>> -- PHP General Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>
>
> -- PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>


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

Reply via email to