Edit report at https://bugs.php.net/bug.php?id=60355&edit=1

 ID:                 60355
 Updated by:         ni...@php.net
 Reported by:        matty023 at gmail dot com
 Summary:            namespace wide and specific constant
-Status:             Open
+Status:             Not a bug
 Type:               Feature/Change Request
 Package:            *General Issues
 PHP Version:        Irrelevant
 Block user comment: N
 Private report:     N

 New Comment:

There is already a language construct to define constants in a namespace:

    namespace Bar;
    const FOO = 'bar';

Yes, `const` also works outside a class ;)

define() is a function taking a constant name, so it (just like all other 
functions accepting constant/function/class names) needs a fully-qualified 
name. So if you want to define a namespace constant with define() (instead of 
`const`) you have to provide the full name:

    define('Bar\FOO', 'bar');


Previous Comments:
------------------------------------------------------------------------
[2011-11-22 07:54:45] matty023 at gmail dot com

Description:
------------
It would be great if define() wasn't global throughout the whole app and 
contained inside the namespace to prevent collisions.

It could also be feasible to create a new type of constant that is available 
throughout an entire namespace;

define : Defines a named constant
= Global constant throughout execution

const  : Class Constants
= It is possible to define constant values on a per-class basis remaining the 
same and unchangeable. Constants differ from normal variables in that you don't 
use the $ symbol to declare or use them. 


??     : namespace wide global
nsdefine
nsconst
also accessible via \my\namespace\MYCONSTANT
= It is possible to define constant values on a per-namespace basis remaining 
the same and unchangeable. Namespace Constants differ from normal variables in 
that you don't use the $ symbol to declare or use them. 



------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=60355&edit=1

Reply via email to