#27440 [Asn->Csd]: declare classes before usage
| From: | nlopess@php.net | Date: | Mon, 24 May 2004 14:07:43 +0000 |
| Subject: | #27440 [Asn->Csd]: declare classes before usage | ||
| References: | 1 | Groups: | php.doc |
| Request: | Send a blank email to phpdoc+get-969360885@lists.php.net to get a copy of this message | ||
ID: 27440
Updated by: nlopess@php.net
Reported By: holliwell at gmx dot net
-Status: Assigned
+Status: Closed
Bug Type: Documentation problem
Operating System: linux 2.4.20 RH8
PHP Version: 5CVS-2004-02-29 (dev)
Assigned To: nlopess
New Comment:
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.
Previous Comments:
------------------------------------------------------------------------
[2004-04-19 17:36:31] nlopess@php.net
that information was true when I've wroten this appendice.
When I update the appendice, I'll fix this bug.
------------------------------------------------------------------------
[2004-04-19 17:13:50] betz@php.net
Nuno, it seems you have following in mind:
http://de3.php.net/manual/de/migration5.incompatible.php
<qoute>
The following example was valid in PHP 4, although it will
produce a fatal error in PHP 5.
Beispiel B-3. Classes must be declared before used
<?php
$test = new fubar();
$test->barfu();
class fubar {
function barfu() {
echo 'fubar';
}
}
?>
</qoute>
No fatal error is produced, it is just the same thing as
in PHP 4. It may be bad practice, but it is still possible
without any error, not even a warning rinning E_STRICT
enabled.
At least declare before usage is good practice, but in
some cases not mandatory. So the docs are wrong.
Regards
Friedhelm
------------------------------------------------------------------------
[2004-04-19 17:02:57] nlopess@php.net
This is already stated in the migration chapter a long time ago.
------------------------------------------------------------------------
[2004-03-09 19:58:55] holliwell at gmx dot net
Iliaa, I did not get your point, sorry!
1.) In php5 its possible to do $c = new someclass , before
someclass is defined, _without_ throwing an error.
2.) Wich error are you talking about:
<qoute>
since at the time the error is generated
</qoute>
3.) be gentle ;-) and do not mark this bogus, at least a doc bug.
Or change README.PHP4-TO-PHP5-THIN-CHANGES to reflect
the current behaviour (which is not throwing an error in this
case.)
4.) AFAIK at some stage of php5 using a class before declaring
was throwing an fatal error. This was changed because of bc.
So why should it be not possible in E_STRICT mode to throw a
warning?
Kind regards
Friedhelm
------------------------------------------------------------------------
[2004-03-09 19:10:10] iliaa@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
In this case raising E_STRICT is not possible since at the
time the error is generated the parser does not know if the
class will be declared at a later point. This is just one
of the PHP 5 <-> 4 incompatibilities that will need to be
documented.
------------------------------------------------------------------------
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/27440
--
Edit this bug report at http://bugs.php.net/?id=27440&edit=1