Doc #52716 [Csd]: Interface difference between 5.2.6 and 5.3.2

From: Date: Wed, 20 Oct 2010 19:24:56 +0000
Subject: Doc #52716 [Csd]: Interface difference between 5.2.6 and 5.3.2
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-5296@lists.php.net to get a copy of this message
Edit report at http://bugs.php.net/bug.php?id=52716&edit=1 ID: 52716 Updated by: jpauli@php.net Reported by: analytik at uglycode dot com Summary: Interface difference between 5.2.6 and 5.3.2 Status: Closed Type: Documentation Problem Package: Documentation problem Operating System: Kubuntu and Debian PHP Version: Irrelevant Assigned To: kalle Block user comment: N New Comment: Kalle, could you clarify your patch ? It seems to say the opposite, or at least I misunderstood it. Even for my language (french), I admit it's hard to translate for the end-user to fully understand the new behavior. Previous Comments: ------------------------------------------------------------------------ [2010-10-20 08:36:31] kalle@php.net This bug has been fixed in the documentation's XML sources. Since the online and downloadable versions of the documentation need some time to get updated, we would like to ask you to be a bit patient. Thank you for the report, and for helping us make our documentation better. ------------------------------------------------------------------------ [2010-10-20 08:36:23] kalle@php.net Automatic comment from SVN on behalf of kalle Revision: http://svn.php.net/viewvc/?view=revision&amp;revision=304533 Log: Fixed bug #52716 (Interface difference between 5.2.6 and 5.3.2) ------------------------------------------------------------------------ [2010-08-27 09:45:50] analytik at uglycode dot com Description: ------------ PHP versions: 5.3.2-1ubuntu4.2 5.2.6-1+lenny9 There isn't mentioned a difference between 5.2 and 5.3 in interface behavior. In 5.2, if defined class/method has default values, interface MUST have default values. In 5.3, interface DOES NOT NEED TO have default values. Test script: --------------- <?php error_reporting(E_ALL | E_STRICT); interface DefaultsInterface { public function foobar($a = false, $b = false, $c = false); } interface ParamsInterface { public function fubar($a, $b, $c); } class WorksFine implements DefaultsInterface { public function foobar($a = true, $b = false, $c = true) {} } class DiesOnFiveTwo implements ParamsInterface { public function fubar($a = true, $b = false, $c = true) {} } $a = new WorksFine(); $b = new DiesOnFiveTwo(); var_dump($a, $b); Expected result: ---------------- I expect the documentation to mention the difference. Actual result: -------------- 5.3 result: object(WorksFine)[1] object(DiesOnFiveTwo)[2] 5.2 result: Fatal error: Declaration of DiesOnFiveTwo::fubar() must be compatible with that of ParamsInterface::fubar() in /var/www/dev.piklio.com/httpdocs/faces.php on line 17 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=52716&edit=1

« previous php.doc.bugs (#5296) next »