ID:               42256
 User updated by:  mat at bcclimited dot co dot uk
 Reported By:      mat at bcclimited dot co dot uk
 Status:           Closed
 Bug Type:         Documentation problem
 Operating System: Windows, Linux
 PHP Version:      5.2.4RC1
 New Comment:

I still disagree that this is merely a documentation issue, how can 5
claim to be backwards-compatible when classes constructed like this
don't work anymore?

"For ***backwards compatibility***, if PHP 5 cannot find a
__construct() function for a given class, it will search for the
old-style constructor function, by the name of the class. Effectively,
it means that the only case that would have compatibility issues is if
the class had a method named __construct() which was used for different
semantics."


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

[2007-08-16 08:51:57] [EMAIL PROTECTED]

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.

"In PHP 5, function with the name of a class is called as a constructor
only if defined in the same class. In PHP 4, it is called also if
defined in the parent class."

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

[2007-08-10 09:41:51] mat at bcclimited dot co dot uk

I wouldn't say "clearly"... It kind of makes sense the way PHP4 works,
and I'd expect that any features that claim to be backwards-compatible
work in the same way as the old version, else the claim is fallacious.

I assume that the PHP4 interpreter looks at all available functions for
one matching the class name and calls it if it exists, whereas PHP5 only
looks in the functions implemented in that class and does not traverse
up to the parent - making it behave as if the function was not
inherited.

I take it this is a "will not fix"/"not broken" status, and I need to
recode all the classes that are constructed like this? :(

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

[2007-08-10 01:25:42] judas dot iscariote at gmail dot com

Interesting ;) the documentation should also mention that the old PHP4
beahviuor is clearly the wrong thing.

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

[2007-08-09 15:01:28] [EMAIL PROTECTED]

Reclassified.

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

[2007-08-09 13:40:03] mat at bcclimited dot co dot uk

Nuts, typo. Both the `Users` should start:
class Users extends users_base {

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

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/42256

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

Reply via email to