Reply to Re: Is it a php bug?

Your name:

Reply:


Posted by ZeldorBlat on 07/07/07 15:50

On Jul 7, 11:36 am, Yarco <yarc...@gmail.com> wrote:
> PHP Code:
> <?php
> abstract class testA
> {
> protected $v;
>
> public function doSet($v)
> {
> return $this->v = $v;
> }
>
> }
>
> abstract class testB extends testA
> {
> public function doSet($v)
> {
> parent::doSet($v);
> }
>
> }
>
> class testC extends testB
> {
>
> }
>
> class testD extends testA
> {
>
> }
>
> $c = new testC;
> $d = new testD;
>
> print "testC result: ".$c->doSet("CCCCCCCCCCCC")."\n";
> print "testD result: ".$d->doSet("DDDDDDDDDDDD")."\n";
>
> ?>
>
> Running Result:
> testC result:
> testD result: DDDDDDDDDDD
>
> Expect Result:
> testC result: CCCCCCCCCCC
> testD result: DDDDDDDDDDD
>
> PHP version(Windows):
> PHP 5.2.3 (cli) (built: May 31 2007 09:37:22)
> Copyright (c) 1997-2007 The PHP Group
> Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

No, it's a bug in your code. The doSet() method in testB doesn't
return the value, it only calls the parent function. If you changed
it to:

return parent::doSet($v);

then you'll get the result you were expecting.

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация