Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!aioe.org!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail From: Richard Damon Newsgroups: comp.lang.php Subject: Re: Why Can't I "define" a Value for a Subscript? Date: Sun, 28 Aug 2011 20:26:09 -0400 Organization: A noiseless patient Spider Lines: 58 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Mon, 29 Aug 2011 00:26:10 +0000 (UTC) Injection-Info: mx04.eternal-september.org; posting-host="j1pFZldDJZ4VtkJ1t0sbMg"; logging-data="29525"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18CoSQJPbTCxVZ5xuczhQyvq60IimM1FFk=" User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:6.0) Gecko/20110812 Thunderbird/6.0 In-Reply-To: Cancel-Lock: sha1:x0SaBCkSJewM68BAxEq7HklZ15Q= Xref: x330-a1.tempe.blueboxinc.net comp.lang.php:2990 On 8/28/11 4:57 PM, eBob.com wrote: > > "Chuck Anderson" wrote in message > news:j3e62a$p8k$1@dont-email.me... >> eBob.com wrote: >>> I am working with some csv files. To make the program more >>> maintainable and more self-documenting I "define" values to use as >>> subscripts; e.g. ... >>> >>> define('SS2KEY',0); >>> >>> BUT, whereas this produces what I expected ... >>> >>> echo "we have a match - key: $file2cols[0]\n"; >>> >>> ... this does not ... >>> >>> echo "we have a match - key: $file2cols[SS2KEY]\n"; >>> >>> I see the other text but no value is substitited for $file2cols[SS2KEY] >>> >>> I've wasted so much time on this. Why can't I define constants to use >>> as subscripts? >>> >>> Thanks, Bob >> >> Php does not look for constants within double quotes. >> >> http://www.php.net/manual/en/language.types.array.php >> (Look for "Array do's and don'ts" - scroll down a wee bit for examples) >> >> -- >> ***************************** >> Chuck Anderson • Boulder, CO >> http://cycletourist.com >> Turn Off, Tune Out, Drop In >> ***************************** > > OUCH!!!!!!! But thanks! Now if I can only remember this "feature". > > Thanks, Bob To understand why it is this way, just think about this program: define('Hello', 'Goodbye cruel'); echo "Hello World"; Just looking at the echo statement, you should know what is printed, and not need to scan the whole program to make sure nothing is going to change your string. if you see echo "Hello $name"; the $ make it clear that the following will be substituted so there is no surprise (if you know the language rules).