Derick Rethans wrote:
> On Fri, 1 Jul 2005, Jochem Maas wrote:
>
>
>>echo constant('CNST');
>>
>>when:
>>
>>echo CNST;
>>
>>only triggers an E_NOTICE.
>>(assuming, in both cases that CNST is not defined).
>>
>>IMHO it should at most trigger an E_NOTICE.
>
>
> Did you compare the output of the two statements?
I did.
> echo constant('CNST');
> shows nothing (except the warning)
>
> echo CNST;
> shows "CNST" (and a notice).
>
> This makes perfect sense to me to differentiate between them like this.
ok - agreed that the echo behaviour is logical - but I wasn't actually
pertaining to the echo behaviour (and what was being echo'ed wasn't relevant to my
original question).
my point is that using a constant directly in your code when that constant doesn't exist
only causes an E_NOTICE but passing a string to constant() when a constant of the given
name doesn't exist causes an E_WARNING.
I would either expect both to cause the same level of error OR that trying to
use an undefined constant directly in code would cause a lower level of error.
but if you say the error output behaviour is expected/correct/desired then I'm
happy to except it (and adjust my expectations accordingly)
- if you (anyone) could explain why (because I don't grok the logic behind
this behaviour) I would be very grateful, maybe it will bring me one step closer
to being able to call myself a real programmer. :-/
anyway thanks for taking the time to reply,
I gather that you, Derick (amongst others!), have a plate full of PHP work
in the form of unicode and date related stuff (which I am very much looking
forward to!) - i.e. you are busy-busy, time is short, etc etc.
kind rgds,
Jochem