src/includes/classes/Core/Utils/PhpHas.php
public function callableFunc(string $function): bool
    {
        $function = mb_strtolower($function);

        if (isset(static::$cache[__FUNCTION__][$function])) {
            return static::$cache[__FUNCTION__][$function];
        }
        if (!isset(static::$cache[__FUNCTION__.'s_disabled'])) {
            static::$cache[__FUNCTION__.'s_disabled'] = []; // Initialize.
            $_functions_disabled                      = &static::$cache[__FUNCTION__.'s_disabled'];

            if (($_ini_disable_functions = (string) ini_get('disable_functions'))) {
                $_ini_disable_functions = mb_strtolower($_ini_disable_functions);
                $_functions_disabled    = array_merge($_functions_disabled, preg_split('/[\s;,]+/u', $_ini_disable_functions, -1, PREG_SPLIT_NO_EMPTY));
            }
            if (($_ini_suhosin_blacklist_functions = (string) ini_get('suhosin.executor.func.blacklist'))) {
                $_ini_suhosin_blacklist_functions = mb_strtolower($_ini_suhosin_blacklist_functions);
                $_functions_disabled              = array_merge($_functions_disabled, preg_split('/[\s;,]+/u', $_ini_suhosin_blacklist_functions, -1, PREG_SPLIT_NO_EMPTY));
            }
            if (($_ini_opcache_restrict_api = (string) ini_get('opcache.restrict_api')) && mb_stripos(__FILE__, $_ini_opcache_restrict_api) !== 0) {
                $_functions_disabled = array_merge($_functions_disabled, ['opcache_compile_file', 'opcache_get_configuration', 'opcache_get_status', 'opcache_invalidate', 'opcache_is_script_cached', 'opcache_reset']);
            }
            if (filter_var(@ini_get('suhosin.executor.disable_eval'), FILTER_VALIDATE_BOOLEAN)) {
                $_functions_disabled[] = 'eval'; // The `eval()` construct is disabled also.
            }
        } // We now have a full list of all disabled functions.

        static::$cache[__FUNCTION__][$function] = null; // Initialize.
        $has                                    = &static::$cache[__FUNCTION__][$function];
        $functions_disabled                     = &static::$cache[__FUNCTION__.'s_disabled'];

        if ($functions_disabled && in_array($function, $functions_disabled, true)) {
            return $has = false; // Not possible; e.g., `eval()`.
        } elseif ((!function_exists($function) || !is_callable($function)) && !in_array($function, $this::CONSTRUCTS, true)) {
            return $has = false; // Not possible.
        }
        return $has = true;
    }
public function callableFunc(string $function): bool
    {
        $function = mb_strtolower($function);

        if (isset(static::$cache[__FUNCTION__][$function])) {
            return static::$cache[__FUNCTION__][$function];
        }
        if (!isset(static::$cache[__FUNCTION__.'s_disabled'])) {
            static::$cache[__FUNCTION__.'s_disabled'] = []; // Initialize.
            $_functions_disabled                      = &static::$cache[__FUNCTION__.'s_disabled'];

            if (($_ini_disable_functions = (string) ini_get('disable_functions'))) {
                $_ini_disable_functions = mb_strtolower($_ini_disable_functions);
                $_functions_disabled    = array_merge($_functions_disabled, preg_split('/[\s;,]+/u', $_ini_disable_functions, -1, PREG_SPLIT_NO_EMPTY));
            }
            if (($_ini_suhosin_blacklist_functions = (string) ini_get('suhosin.executor.func.blacklist'))) {
                $_ini_suhosin_blacklist_functions = mb_strtolower($_ini_suhosin_blacklist_functions);
                $_functions_disabled              = array_merge($_functions_disabled, preg_split('/[\s;,]+/u', $_ini_suhosin_blacklist_functions, -1, PREG_SPLIT_NO_EMPTY));
            }
            if (($_ini_opcache_restrict_api = (string) ini_get('opcache.restrict_api')) && mb_stripos(__FILE__, $_ini_opcache_restrict_api) !== 0) {
                $_functions_disabled = array_merge($_functions_disabled, ['opcache_compile_file', 'opcache_get_configuration', 'opcache_get_status', 'opcache_invalidate', 'opcache_is_script_cached', 'opcache_reset']);
            }
            if (filter_var(@ini_get('suhosin.executor.disable_eval'), FILTER_VALIDATE_BOOLEAN)) {
                $_functions_disabled[] = 'eval'; // The `eval()` construct is disabled also.
            }
        } // We now have a full list of all disabled functions.

        static::$cache[__FUNCTION__][$function] = null; // Initialize.
        $has                                    = &static::$cache[__FUNCTION__][$function];
        $functions_disabled                     = &static::$cache[__FUNCTION__.'s_disabled'];

        if ($functions_disabled && in_array($function, $functions_disabled, true)) {
            return $has = false; // Not possible; e.g., `eval()`.
        } elseif ((!function_exists($function) || !is_callable($function)) && !in_array($function, $this::CONSTRUCTS, true)) {
            return $has = false; // Not possible.
        }
        return $has = true;
    }
Is function callable?

@since 150424 Initial release.

@param string $function A PHP function.

@return bool True if the function is callable.

@internal This checks (among other things) if the function exists and that it's callable.
It also checks INI `disable_functions` & `suhosin.executor.func.blacklist`.
In addition, it also checks `suhosin.executor.disable_eval`.