Re: Enhanced __CLASS__ constant
| From: | Guilherme Blanco | Date: | Thu, 22 Jan 2009 13:10:59 +0000 |
| Subject: | Re: Enhanced __CLASS__ constant | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-42775@lists.php.net to get a copy of this message | ||
Why not just enhance get_class() function to accept the object itself
(not only the instance)?
This means:
- No new keyword
- No magic Foo::__MIRACLEHERE__
- No 50 pages documentation to help user
Regards,
On Thu, Jan 22, 2009 at 5:24 AM, Stan Vassilev | FM
<sv_forums@fmethod.com> wrote:
>
>
>> Especially in namespaced code it should be very useful to have
>> "something" returning fully qualified name as string. It can be operator,
>> but I think introducing new keyword is bad way, or it can be realized using
>> well known magic constant in new context:
>>
>> Example:
>>
>> function factory($class)
>> {
>> return new $class;
>> }
>>
>> $obj = factory('MyClass'); // returns object MyClass
>> $obj = factory(MyClass::__CLASS__); // returns again object MyClass, code
>> is little bit more selfexplaining
>
>
> Hi,
>
> I've discovered this omission earlier and I have proposed two solutions:
>
> 1) $x = nameof Foo;
>
> -or-
>
> 2) $x = Foo::__NAME__; // very similar to yours, Foo::__CLASS__ may even be
> better
>
> Since passing identifier references as strings is relatively pervasive in a
> lot of the PHP code out there, I hope this is resolved for 5.3, before we
> figure out we need it the hard way after we've littered our code with tons
> of manually written out explicit references.
>
> One problem with your proposal / my second proposal is, it works for
> classes, but doesn't address namespaced 1) functions 2) constants.
>
> A new keyword would address this, but then, who wants a new keyword,
> right...
>
> Regards,
> Stan Vassilev
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
--
Guilherme Blanco - Web Developer
CBC - Certified Bindows Consultant
Cell Phone: +55 (16) 9215-8480
MSN: guilhermeblanco@hotmail.com
URL: http://blog.bisna.com
São Paulo - SP/Brazil