ID:               32427
 Updated by:       [EMAIL PROTECTED]
 Reported By:      jason at amp-design dot net
-Status:           Assigned
+Status:           Closed
 Bug Type:         Zend Engine 2 problem
 Operating System: Cent OS 3
 PHP Version:      5CVS-2005-03-23 (dev)
 Assigned To:      andi
 New Comment:

Fixed in CVS HEAD.


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

[2005-04-18 17:31:31] jason at amp-design dot net

It appears in the later CVS versions of PHP that this bug seems to have
gone. It appears to be fixed (maybe someone double check, and close it)

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

[2005-03-30 18:51:12] [EMAIL PROTECTED]

Assigning to Andi, as he's the author of this change:
http://cvs.php.net/diff.php/ZendEngine2/zend_compile.c?php=69434a7f33b2b7d3cc6152f95b1a307f&r1=1.596&r2=1.597&ty=u

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

[2005-03-23 13:27:27] jason at amp-design dot net

Description:
------------
In the 5.1.0 branch (this morning's build), there seems to be a problem
with interfaces and static methods.

If a method is declared as static, it raises an error.

Upon removing the public static keywords from the interface, I get an
error because the class implementing this interface has a different
signature / declaraton from the interface, Thus meaning static members
are a no-no with interfaces.

This was tested on this morning's snapshot build of 5.1.0. I assume
that this is a bug and not some daft change in behavoiour you want to
push into the 5.1.x branch of PHP as it would break a lot of existing
PHP5 code.

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

interface Example {
        public static function sillyError();
}

class ExampleImpl implements Example {
        public static function sillyError() {
                echo 'I am a silly error';
        }
}

ExampleImpl::sillyError();

?>

Expected result:
----------------
I am a silly error

Actual result:
--------------
Fatal error: Access type for interface method Example::sillyError()
must be omitted in /data/web/tools/iq_framework/test.php on line 4


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


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

Reply via email to