Re: define (true/false)

From: Date: Thu, 28 Jul 2005 13:38:46 +0000
Subject: Re: define (true/false)
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-219507@lists.php.net to get a copy of this message
John Nichel wrote:
Jay Blanchard wrote:
[snip]
if($bars == 3) { define('BAR', 1); } then: if(BAR) {
That's an incorrect use for constants. Use variables for that =]
WHY? [/snip] Because the constant can be variable in this case. Consider (this is old school, and we all know that I am the definition of old school) the definition of the words themselves...variable and constant. You may want to use a constant to determine a variable; $myVar = CONSTANT + 3; But you would never want to use a variable to determine a constant because the variable is not likely to be the same (that is why we call them variables) on any iteration. Using constants in expressions is OK, for instance if(BAR == $foo){ ...stuff... } But modifying a constant is a no-no.
I may be misunderstanding you here, but I don't see why you would not want to use a variable to define a constant. I do it from time to time, most common would be in a config document where I'll check if the page is being accessed via http or https, and define a constant based on that. I know I could use a variable for this, but I like using the constant for it's global scope in that case.
now that was exactly my reasoning ... but I very much appriciate the input of the more experienced/older/classically-trained (as apposed to my completely -self-taught-not-backed-up-with-any-solid-computer-science-theory-skills) guys out there (hey Jay it's a compliment ;-)


« previous php.general (#219507) next »