PHP syntax doesn't allow usage of _CLASS_NAME_ and _CONSTANT_ in the same
language context.
So, about what conflict are you talking?

$a = new  A::B::C; - class
$a = A::B::C; - constant

What is the difference with current PHP code?

$a = new C;
$a = C;

Dmitry.


> -----Original Message-----
> From: Marcus Boerger [mailto:[EMAIL PROTECTED] 
> Sent: Monday, November 28, 2005 11:23 PM
> To: Dmitry Stogov
> Cc: 'Bob Silva'; 'Christian Schneider'; 'PHP internals'
> Subject: Re: [PHP-DEV] Re: PHP 5.1 (Or How to break tousands 
> of apps out there)
> 
> 
> Hello Dmitry,
> 
>   featurismus: namespaces in namespaces *and* constants. But 
> as i said even without conflicts it causes trouble in your 
> brain. Since the syntax would not clearly differenciate the two.
> 
> regards
> marcus
> 
> Monday, November 28, 2005, 9:10:04 PM, you wrote:
> 
> > Hi Marcus,
> 
> > It worked. :)
> > Even with nested classes.
> 
> > However it didn't care about "subnamespaces". I don't know 
> what do you 
> > mean with it. Nested namespaces? Or complex namespace names like in 
> > Java (java.lang)?
> 
> > Thanks. Dmitry.
> 
> >> -----Original Message-----
> >> From: Marcus Boerger [mailto:[EMAIL PROTECTED]
> >> Sent: Monday, November 28, 2005 10:15 PM
> >> To: Dmitry Stogov
> >> Cc: 'Bob Silva'; 'Christian Schneider'; 'PHP internals'
> >> Subject: Re: [PHP-DEV] Re: PHP 5.1 (Or How to break tousands 
> >> of apps out there)
> >> 
> >> 
> >> Hello Dmitry,
> >> 
> >>   your patch wasn't complete. There are conflicts as soon as
> >> you have subnamespaces or constsants.
> >> 
> >> marcus
> >> 
> >> Monday, November 28, 2005, 9:27:19 AM, you wrote:
> >> 
> >> > Marcus,
> >> 
> >> > You saw my patch that works with "::" and doesn't break any 
> >> > scripts.
> >> 
> >> > Dmitry.
> >> 
> >> >> -----Original Message-----
> >> >> From: Marcus Boerger [mailto:[EMAIL PROTECTED]
> >> >> Sent: Saturday, November 26, 2005 3:42 PM
> >> >> To: Bob Silva
> >> >> Cc: 'Christian Schneider'; 'PHP internals'
> >> >> Subject: Re: [PHP-DEV] Re: PHP 5.1 (Or How to break tousands
> >> >> of apps out there)
> >> >> 
> >> >> 
> >> >> Hello Bob,
> >> >> 
> >> >>   it is only awkward because you want to turn php into 
> c++. We are 
> >> >> a different language here and thus can chose any separator that 
> >> >> works for us. And neither : nor :: work. Instead from 
> keeping us 
> >> >> from working by having to explain this over and over and over 
> >> >> again i suggest you show me a working patch that does not break 
> >> >> trillions of php scripts.
> >> >> 
> >> >> marcus
> >> >> 
> >> >> Saturday, November 26, 2005, 3:36:42 AM, you wrote:
> >> >> 
> >> >> > For what its worth (not much), I'd rather give up namespace
> >> >> constants
> >> >> > and use : rather than enforce whitespace which is 
> just BAD from 
> >> >> > a language perspective. Makes it feel like programming in
> >> bash. The
> >> >> > concept behind namespaces (in PHP at least) is rooted 
> in OOP, so
> >> >> > requiring a class just to have constants in your namespace 
> >> >> isn't too
> >> >> > much to ask for. The parser should always be able to handle 
> >> >> > <namespace>:<class>::<whatever> and not conflict with
> >> other syntax.
> >> >> 
> >> >> > If we are truly stuck with \ so be it, but I think
> >> >> alternatives with
> >> >> > some level of compromise should be considered before \ is 
> >> >> > settled upon. It's just plain awkward IMO.
> >> >> 
> >> >> 
> >> >> > Bob Silva
> >> >> 
> >> >> 
> >> >> >> -----Original Message-----
> >> >> >> From: Christian Schneider [mailto:[EMAIL PROTECTED]
> >> >> >> Sent: Friday, November 25, 2005 4:42 PM
> >> >> >> To: Marcus Boerger
> >> >> >> Cc: PHP internals
> >> >> >> Subject: Re: [PHP-DEV] Re: PHP 5.1 (Or How to break
> >> >> tousands of apps
> >> >> >> out
> >> >> >> there)
> >> >> >> 
> >> >> >> Marcus Boerger wrote:
> >> >> >> >   here again namespaces would be perfect. Given a lib
> >> >> that doesn't
> >> >> >> prefix
> >> >> >> > you'd simply do:
> >> >> >> > namespace LibNameHere { reqire "some_lib_include"; } and be
> >> >> >> > done...wohooo :-)
> >> >> >> 
> >> >> >> Only if newly introduced PHP core classes use a namespace
> >> >> too. You'll
> >> >> >> have to use PHP\Date (or the like) if you want to avoid
> >> >> conflicts in
> >> >> >> existing code. Plus maybe something like "import PHP\Date
> >> >> as Date" or
> >> >> >> something along these lines if you want to avoid 
> PHP\ in newly 
> >> >> >> written code where you know that there is no Date class yet.
> 
> 
> 

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to