ID:               27623
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Bogus
 Bug Type:         Class/Object related
 Operating System: debian linux
 PHP Version:      5CVS-2004-03-17 (dev)
 New Comment:

Maybe it is but PHP is still a weak typed language and other people
make good use of that fact. They have E_STRICT off because turning it
on makes PHP a bit more type strict.


Previous Comments:
------------------------------------------------------------------------

[2004-03-17 07:56:24] [EMAIL PROTECTED]

That does not make sence in my eys. As an example, if you have a
interface "car" which declares "four wheels" and an implementation of
"car" just declares "three wheels" the car shouldn't even start
driving. But now it does, I think that is stupid.

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

[2004-03-17 06:27:08] [EMAIL PROTECTED]

No, we had a discussion on this on the internals@ list. This only
throws an E_STRICT type error.

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

[2004-03-17 06:04:07] [EMAIL PROTECTED]

Actually I do not get the point why that does not throw a fatal error,
in my opinion the script should terminate on such an error, shouldn't
it?

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

[2004-03-17 05:53:24] [EMAIL PROTECTED]

This is correct behavior now, turn on E_STRICT and E_ALL and you'll see
it.

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

[2004-03-17 05:46:43] [EMAIL PROTECTED]

Description:
------------
A implementation of a class whith a method which is not declared as in
the interface should throw an error, which it does in php5b4 but not in
the current HEAD.

Reproduce code:
---------------
<?php



    interface Person {

        function doSth($sWhat,$sWhere);

    }

     

    class Member implements Person {

        function doSth($sWhat) {

            echo "Person does ".$sWhat."\n";

        }

    }

    

    $Member = new Member;

    $Member->doSth('nothing');



?> 

Expected result:
----------------
Fatal error: Declaration of Member::doSth() must be the same as
Person::doSth()

Actual result:
--------------
Person does nothing


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


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

Reply via email to