Bug #51826 [Opn]: maybe a wrong oop logic.

From: Date: Fri, 14 May 2010 15:42:36 +0000
Subject: Bug #51826 [Opn]: maybe a wrong oop logic.
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-150478@lists.php.net to get a copy of this message
Edit report at http://bugs.php.net/bug.php?id=51826&edit=1

 ID:               51826
 User updated by:  1000235409 at smail dot shnu dot edu dot cn
 Reported by:      1000235409 at smail dot shnu dot edu dot cn
 Summary:          maybe a wrong oop logic.
 Status:           Open
 Type:             Bug
 Package:          Class/Object related
 Operating System: WINDOWS
 PHP Version:      5.3SVN-2010-05-14 (SVN)

 New Comment:

I have adapted those code(see it below) into delphi(object pascal, on 
Delphi2010), however, nothing wrong at all. so i think it should be a
wrong oop 
logic in php5(5.2 included also, since i've tested then...)

Type
  TAbstractParam = Class(TInterfacedObject)
    Procedure getType(); Virtual; Abstract;
  End;

  IParam = Interface
    Procedure getType();
  End;

  TPrimativeParam = Class(TAbstractParam, IParam)
    Procedure getType();
  End;
//Other code omitted...


Previous Comments:
------------------------------------------------------------------------
[2010-05-14 17:15:02] 1000235409 at smail dot shnu dot edu dot cn

Description:
------------
A fatal error generates when a class extends from an abstract class and
implements 
from an interface both with a same named abstract (all methods defined
inside 
interfaces are abstract) method inside.

Test script:
---------------
<?php
abstract class TAbstractParam {
  public abstract function getType(); //getType
}

interface IParam {
  public function getType(); //getType again.
}

class TPrimativeParam extends TAbstractParam implements IParam {
  public function getType() {return 'VARCHAR'; } //another getType, the
fatal error goes here.
}

Expected result:
----------------
[just nothing...]


Actual result:
--------------
Fatal error: Can't inherit abstract function IParam::getType()
(previously 
declared abstract in TAbstractParam) in E:\foo.php on line 10


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=51826&edit=1


Thread (7 messages)

« previous php.bugs (#150478) next »