无法重新声明自定义方法

时间:2018-10-08 11:47:46

标签: php

随机很少会收到有此问题的用户的报告:

Fatal error: Cannot redeclare my_thing() (previously declared in /foo/functions.php:9) in /foo/functions.php on line 21

这是该文件中的功能:

function my_thing( $subclass = null ) {
    global $my_thing;

    $args = func_get_args();
    $subclass = array_shift( $args );

    if ( is_null( $subclass ) ) {
        return $my_thing;
    }

    return call_user_func_array( array( $my_thing, $subclass ), $args );

}

此块的第一行是functions.php中的#9行,最后一个括号是#21行。

那么如何将my_thing()声明为在第21行的两次 ?即使functions.php被两次包含(无论出于何种原因),该行也应该是#9而不是#21。

functions.php文件位于引导文件中的require_once

sidenote :这是一个包装器方法,因此我可以像my_thing('subclass')->get_it()

那样轻松地调用类方法

0 个答案:

没有答案