if 结构中的函数

2022-08-30 19:57:03

我可以把PHP中的函数放在if结构中吗?喜欢这个:

<?php
    if(true){
         function HelloWorld(){
             echo "Hello World!!!";
         }
         HelloWorld();
    }
?>

因为我已经尝试过并且它有效,但我不知道它是否正确。谢谢


答案 1

这是完全合法的 - 它只是定义了if语句块中的函数。也就是说,你为什么要这样做有点神秘。

还值得注意的是,此函数将在全局范围内可用(即:在 if 语句块之外),因为...

PHP中的所有函数和类都具有全局作用域 - 它们可以在函数外部调用,即使它们是在函数内部定义的,反之亦然。

有关详细信息,请参阅 PHP 用户定义函数手册页


答案 2

正如 middaparka 所说,这是完全合法的,但是在使用它方面,你可能想在声明它之前检查一个函数是否存在:

if (!function_exists("foo"))
{
    function foo()
    {
        return "bar";
    }
}

推荐