On 27.10.2008, at 08:26, Kalle Sommer Nielsen wrote:
2008/10/27 Lukas Kahwe Smith <[EMAIL PROTECTED]>:
On 27.10.2008, at 06:16, Kalle Sommer Nielsen wrote:
2008/10/26 Johannes Schlüter <[EMAIL PROTECTED]>:
On Sun, 2008-10-26 at 14:32 +0100, Kalle Sommer Nielsen wrote:
So, I propose its either being a "supported" feature, or simply
put an
deprecation notice on it (5.3) and remove it HEAD. I personally
vote
for the last option, as I don't think resources should be
constants as
they do not have the constant value even though they do on some
level.
I recently discussed the same issue on IRC, (due to #45982) we
can't get
rid of resources in constants completely as we need that for STDIN,
STDOU, STDERR constants.
Yes I know, but still I think we should either making it a supported
feature or restrict registering resources on define().
Huh, I wasnt even aware that define() supports anything but scalar
values.
At any rate I am very sure I never stumbled over code defining a
constant
with a ressource. Not a very good idea to support ressources,
especially
given the obvious WTF's this causes (as you rightly pointed out).
So I see
that an E_DEPRECATED would make sense. However I am not sure about
removing
this though, which would make the E_DEPRECATED a bit odd (why
deprecate if
we do not remove?).
E_DEPRECATED if we deprecated this feature, but I would be happy with
an E_STRICT if this behaviour will be kept. :)
so lets mark it as E_DEPRECATED in 5.3 and remove in 6.0, given that
its currently not documented (though oddly it still discourages users
to not do something that is not said to work "Only scalar data
(boolean, integer, float and string) can be contained in constants. Do
not define resource constants.")
regards,
Lukas Kahwe Smith
[EMAIL PROTECTED]
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php