PHP 4.0 Bug #7835 Updated: define() doesn't work in a class-variable-predeclaration-function-call

From: Date: Thu, 16 Nov 2000 02:37:46 +0000
Subject: PHP 4.0 Bug #7835 Updated: define() doesn't work in a class-variable-predeclaration-function-call
Groups: php.dev 
Request: Send a blank email to php-dev+get-38290@lists.php.net to get a copy of this message
ID: 7835 Updated by: torben Reported By: rl@wlp.de Status: Closed Bug Type: Scripting Engine problem Assigned To: Comments: Not a bug; check the manual: http://www.php.net/manual/language.oop.php Note: In PHP 4, only constant initializers for var variables are allowed. Use constructors for non-constant initializers. The problem isn't with the defined constants; it's with the array() being used in the 'var $test = array(...' line. As noted, do this in the constructor inst Previous Comments: --------------------------------------------------------------------------- [2000-11-15 21:06:18] rl@wlp.de <?php # define_does_NOT_work.php -- # # testing defines in php4 within predeclaratrion # function calls # # tested on - # Apache/1.3.14 (Unix) mod_ssl/2.7.1 OpenSSL/0.9.6 # PHP/4.0.3pl1 # # Author: Richard Leopold <rl@wlp.de> # ############################################################ ## define('__KEY__','this is the KEY'); define('__VALUE__','this is the VALUE'); class TEST { var $test = array( __KEY__ => __VALUE__ ); function start() { $this->test = array( __KEY__ => __VALUE__ ); } function test_define(){ print "Looking for define-keyed array-value: test[". __KEY__."] = ". $this->test[__KEY__]; } } $test = new TEST; print("<b>Hello, this server is a </b><br><em>". $SERVER_SOFTWARE. "</em><br><br>I think there is a BUG in PHP4:</b>". "<br>n"); print("<b>A define doesn't work in a class-variable ". "predeclaration array-function call ". "with a __defined__ Parameter .... </b><br>n"); $test->test_define(); print("<br><br>". "<b>But when I initialize the class-variable in a ". "start-function "); $test->start(); print(", then it works:</b><br>n"); $test->test_define(); print("<br><br>". "<b>regards - Richard </b>"); ?> --------------------------------------------------------------------------- Full Bug description available at: http://bugs.php.net/?id=7835

« previous php.dev (#38290) next »