在PHP中,常量是全局的,因此它们没有作用域。根据PHP Manual:
与超全局一样,常数的范围也是全局的。您可以在脚本中的任何位置访问常量,而无需考虑范围。
如果您使用的是PHP类,则有一个例外。然后可以将常量绑定到该类。
class My_Class
{
const BLAH = \'This is a Constant\';
{
print My_Class::BLAH
至于函数,它们和常量一样,也是全局的。根据
PHP Manual:
PHP中的所有函数和类都具有全局作用域,即使它们是在函数内部定义的,也可以在函数外部调用,反之亦然。
例如,如果我有:
function my_func() {
function my_other_func() {
// Code
}
// More Code
}
我可以打电话
my_other_func()
即使在
my_func()
.
您可以使用PHP类再次绕过此问题:
class My_Class
{
public function echo_hello_world() {
$this->echo_hello();
$this->echo_world();
}
private function echo_hello() {
echo \'Hello \';
}
private function echo_world() {
echo \'World!\';
}
}
$testObj = new My_Class();
$testObj->echo_hello_world();
然而,如果类的杀伤力过大,那么最好的办法就是通过在当前使用的名称前添加一些独特的内容来命名所有内容。通常我会附加我为插件/主题定义的textdomain
my_function()
成为
textdomain_my_function()
.