Re: zend-parser.y problems

From: Date: Sat, 09 Sep 2000 03:14:42 +0000
Subject: Re: zend-parser.y problems
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-32750@lists.php.net to get a copy of this message
Consider the following chunk of code an amendment to my last message: > #The following causes a "expecting `T_CONSTANT_ENCAPSED_STRING'" error: > require_once(SOME_CONSTANT."somefile"); > > #These will not cause that error: # To be more clear, I mean that these do not behave the same as require_once # does when a constant is passed as part of the string > include_once(SOME_CONSTANT."somefile"); > require(SOME_CONSTANT."somefile"); include(SOME_CONSTANT."somefile"); On Fri, 8 Sep 2000 john@webmeta.com wrote: > Hey folks- > > > Basically, the following code will cause an error: > > #!./php -q > <? > > define("SOME_CONSTANT", "./"); > > #The following causes a "expecting `T_CONSTANT_ENCAPSED_STRING'" error: > require_once(SOME_CONSTANT."somefile"); > > #These will not cause that error: > include_once(SOME_CONSTANT."somefile"); > require(SOME_CONSTANT."somefile"); > require_once(SOME_CONSTANT."somefile"); > > ?> > > > So after searching through the Zend code a bit, specifically zend-parser.y:716, > I found this inconsistency: > > 1.82 (andi 02-Jul-00): | T_INCLUDE expr { > do_include_or_eval(ZEND_INCLUDE, &$$, &$2 CLS_CC); } > 1.67 (andi 10-Mar-00): | T_INCLUDE_ONCE expr { > do_include_or_eval(ZEND_INCLUDE_ONCE, &$$, &$2 CLS_CC); } > 1.10 (zeev 22-Apr-99): | T_EVAL '(' expr ')' { > do_include_or_eval(ZEND_EVAL, &$$, &$3 CLS_CC); } > 1.85 (zeev 09-Aug-00): | T_REQUIRE expr { > do_include_or_eval(ZEND_REQUIRE, &$$, &$2 CLS_CC); } > 1.85 (zeev 09-Aug-00): | T_REQUIRE_ONCE use_filename { > do_include_or_eval(ZEND_REQUIRE_ONCE, &$$, &$2 CLS_CC); } > > By changing line 720 from this: > | T_REQUIRE_ONCE use_filename { do_include_or_eval(ZEND_REQUIRE_ONCE, &$$, &$2 > CLS_CC); } > to this: > | T_REQUIRE_ONCE expr { do_include_or_eval(ZEND_REQUIRE_ONCE, &$$, &$2 CLS_CC); } > the problem (as it exists in my scope) is fixed. > > > Zeev, Andi, can either of you shed some light on this code? I don't know the > Zend internals well enough to understand the intended functionality of > use_filename vs expr. > > Thanks > John > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >

« previous php.dev (#32750) next »