Bug #11047 Updated: Cannot put require() or include() within a class definition
| From: | miguel222 at mindless dot com | Date: | Wed, 23 May 2001 17:19:58 +0000 |
| Subject: | Bug #11047 Updated: Cannot put require() or include() within a class definition | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-56510@lists.php.net to get a copy of this message | ||
ID: 11047
User Update by: miguel222@mindless.com
Status: Closed
Bug Type: Feature/Change Request
Operating system: RH Linux 7.0
PHP Version: 4.0.4pl1
Description: Cannot put require() or include() within a class definition
how odd.. I didn't see your "there is no real preprocessor" note earlier.
Alright. in that case, perhaps the documentation for require should be changed to say that require
*is* subject to containing control structures.
Previous Comments:
---------------------------------------------------------------------------
[2001-05-23 15:13:37] miguel222@mindless.com
This seems like an easy enough addition, and it makes building large libraries of homologous classes
MUCH easier. Of course, there is a work-around: I can inherit numerous intermediate classes to
simulate multiple inheritance, but that could theoretically become a VERY large overhead, if you
have many "base" classes to inherit. Doing so also makes it difficult to read the
resulting code.
---------------------------------------------------------------------------
[2001-05-23 14:39:40] cynic@php.net
That's how it is, and how it'll be in foreseeable future.
---------------------------------------------------------------------------
[2001-05-23 13:19:35] miguel222@mindless.com
how odd.. I didn't see your "there is no real preprocessor" note earlier.
Alright. in that case, perhaps the documentation for require should be changed to say that require
*is* subject to containing control structures.
---------------------------------------------------------------------------
[2001-05-23 09:44:01] cynic@php.net
Well, the truth is that there's no real preprocessor in PHP. The fact that it's impossible
to use include*() or require*() in class definitions is by design, and is very unlikely (read
"guaranteed not to") to change during the life of 4.x.
---------------------------------------------------------------------------
[2001-05-23 05:36:18] miguel222@mindless.com
class foo {
function foo() {
}
require "foo_functions.php";
}
~~~~
The above code returns the following parse error:
Parse error: parse error, expecting
T_OLD_FUNCTION' or T_FUNCTION' or
T_VAR' or '}'' in foo.class.php on line 5
---------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view the rest of the comments,
please view the bug report online.
Full Bug description available at: http://bugs.php.net/?id=11047