Bug #66926 [Fbk->Asn]: Missing Information in translation
| From: | wako057 at gmail dot com | Date: | Fri, 17 Apr 2015 08:41:35 +0000 |
| Subject: | Bug #66926 [Fbk->Asn]: Missing Information in translation | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-12184@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=66926&edit=1
ID: 66926
User updated by: wako057 at gmail dot com
Reported by: wako057 at gmail dot com
Summary: Missing Information in translation
-Status: Feedback
+Status: Assigned
Type: Bug
Package: Documentation problem
Operating System: Debian
PHP Version: Irrelevant
Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
Hello,
The qualification is maybe not the correct one, it can be a parser probleme.
My native language is French.
Assuming english is not my native one maybe im wrong, but I think both doc are inexact:
Doc:
For backwards compatibility, if PHP 5 cannot find a __construct() function for a given class, and
the class did not inherit one from a parent 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.
So <<if PHP 5 cannot find>>
The problem describe here is php raised an error depending on which method the parser find first,
not if it is present or not.
Regards.
Previous Comments:
------------------------------------------------------------------------
[2015-04-17 00:35:43] cmb@php.net
The reported behavior is to be expected, see the man page on
"Constructors and Destructors"[1].
You have filed this as "Missing Information in translation", so we
have to assume that there is a documentation translation problem.
It is not clear, however, which translation (i.e. language) is
affected. Can you please clarify?
[1] <http://php.net/manual/en/language.oop5.decon.php>
------------------------------------------------------------------------
[2014-03-18 16:39:53] wako057 at gmail dot com
Description:
------------
I've tested this issue on php 5.3.28 and php 5.5.10
When the parser found in class a method called as the class, insensitive to the case, it generate a
Strict Standard error.
But if it found the __construct first, at this moment no error is raised.
With namespace the case doesn't happened at all.
Test script:
---------------
<?php
class Foo {
public function foo() {
echo 'ahaha';
}
function __construct() {
echo 'hihi';
}
}
Generate a: PHP Strict Standards: Redefining already defined constructor for class Foo
BUT
<?php
class Foo {
function __construct() {
echo 'hihi';
}
public function foo() {
echo 'ahaha';
}
}
Don't
<?php
namespace Bar;
class Foo {
public function foo() {
echo 'ahaha';
}
function __construct() {
echo 'hihi';
}
}
new Foo();
Neither
Expected result:
----------------
When a __construct is present, no error should be raised
Actual result:
--------------
Strict Standards: Redefining already defined constructor for class Foo in /var/www/tt.php on line 7
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=66926&edit=1