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