PHP:检查是否存在并在一行中声明函数

PHP:检查是否存在并在一行中声明函数,php,function,Php,Function,是否有一种方法可以检查函数是否已经存在,如果不存在,则在同一行中声明它,而不使用if 我知道这是可能的 if (!function_exists('func')) function func() {} 但出于学术上的原因,我很好奇是否有不同的方法可以做到这一点。也许是类似于 function_exists('func') or function func() {} 或 但实际上有效吗 似乎您实际上可以使用第一种语法声明匿名函数: function_exists('func') or func

是否有一种方法可以检查函数是否已经存在,如果不存在,则在同一行中声明它,而不使用
if

我知道这是可能的

if (!function_exists('func')) function func() {}
但出于学术上的原因,我很好奇是否有不同的方法可以做到这一点。也许是类似于

function_exists('func') or function func() {}

但实际上有效吗

似乎您实际上可以使用第一种语法声明匿名函数:

function_exists('func') or function() {}
但这不好,因为函数没有名称

也可以将函数赋值给变量

function_exists('func') or $func = function() {};

但该函数不在全局范围内,因此不能这样做

我能想到的唯一其他方法是在include中声明
func()

function_exists('func') or include('func.php');
当然,如果它包含在一个include中,那么像这样做就可以做得更简单

include_once('func.php');

考虑到所有PHP函数都是全局声明的,我不明白为什么必须检查函数是否已经存在(或者为什么必须在不使用
if
语句的情况下检查)

当然,除非您在其他一些php文件中声明了它,假设您正在构建一个web应用程序,那么当前页面上没有包含该文件

但是有一个a,但是根据您的逻辑,您仍然必须使用某种
if
语句

if (!function_exists('my_function')) {
    //delcare function...
}

回答你的问题:没有。除了你所描述的,没有其他方法可以做到这一点,因为没有理由用其他方法来做。

如果(!function_存在('func'))function func(){},那么可以做
@不要再这样了,我不是…如果你把它包装在函数调用中,看起来是可以做到的,但如果它只是在

if (!function_exists('my_function')) {
    //delcare function...
}