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