On Sun, Nov 29, 2020 at 11:20 PM Michael Voříšek - ČVUT FEL <
voris...@fel.cvut.cz> wrote:

> How can a php function can be checked from extension if that function is
> disabled or not?
>
> In php7.x, I used:
>
> #ifdef HAVE_CONFIG_H
> #include "config.h"
> #endif
>
> #include <stdbool.h>
> #include "php.h"
>
> bool is_php_function_disabled(const char *func_name) {
> zend_internal_function *func;
> if ((func = zend_hash_str_find_ptr(CG(function_table), func_name,
> strlen(func_name)))) {
> if (func->handler == ZEND_FN(display_disabled_function)) {
> return true;
> }
> }
>
> return false;
> }
>
> But it does not work for php8:
>
> In file included from /usr/local/include/php/main/php.h:35,
> from .../ext/libs.c:6:
> .../ext/libs.c: In function 'is_php_function_disabled':
> /usr/local/include/php/Zend/zend_API.h:68:23: error:
> 'zif_display_disabled_function' undeclared (first use in this function)
> 68 | #define ZEND_FN(name) zif_##name
> | ^~~~
> .../ext/libs.c:237:30: note: in expansion of macro 'ZEND_FN'
> 237 | if (func->handler == ZEND_FN(display_disabled_function)) {
>
> Thanks for help in advance.
>

In PHP 8, the question is ill-posed. A disabled function is
indistinguishable from a function that does not exist. (You can of course
check the value of the ini setting, but there should be no good reason to
do so.)

Nikita

Reply via email to