여기에 내가 과거에했던 것은다른 네임 스페이스 PHP에서 상수 정의하기
//file: bar.php
defined('MYC') or define('MYC', 'val1');
//file: bootstrap.php
define('MYC', 'val2');
bootstrap.php를 먼저 포함시켜 MYC = 'val2'
를 설정합니다.
이제 bar.php는 \ Foo \ Bar 네임 스페이스에 있습니다. 즉,
//file: bar.php
namespace Foo\Bar;
defined('MYC') or define('MYC', 'val1');
//file: bootstrap.php
//following doesn't work
//const \Foo\Bar\MYC = 'val2';
//?? what do I do here ??
define() 함수는 전역 상수를 정의하기 때문에 네임 스페이스에 관계없이 코드가 계속 작동해야합니다.이 상수는 모든 네임 스페이스에서 볼 수 있습니다. –
고마워, 내가 실험 해 봤는데, 네임 스페이스 Foo \ Bar;에서 조건부'const MYC = 'val1';을 할 수 없다는 것도 알았어. 그래서 shitty_long_namespaced_global_constant_names와 함께 살아야 할 것 같아. ( – Sudhi
define()는 네임 스페이스를 인식하지 못하기 때문에 현재 네임 스페이스에 상수를 만들려면'define (__NAMESPACE__. '\ CONST_IN_NAME_SPACE')'을해야합니다. 그렇지 않으면'const'를 사용할 수 있습니다 – GordonM