为什么无法在 PHP-FPM 池或 php.ini 中禁用 ECHO(disable_functions)?

为什么无法在 PHP-FPM 池或 php.ini 中禁用 ECHO(disable_functions)?

你会发现它echo无法被禁用。当您重新启动服务时,它会被忽略,并且不会引发任何错误php-fpm。可能没有真正的原因会导致您禁用,echo但额外的知识总是受欢迎的。

测试配置可以是:

php_admin_value[disable_functions] = echo,exec,shell_exec,phpinfo

其他功能是“控制”功能,以确保正确读取池。您会发现它echo被忽略了,但其他功能被正确禁用。

关联https://www.php.net/manual/en/ini.core.php

使用该指令只能禁用内部功能。用户定义的函数不受影响。

那么为什么echo不受影响呢?这不是一个内部函数吗?

答案1

ECHO 不受影响的原因是 ECHO 不是函数。

信息发现于https://www.php.net/manual/en/function.echo.php

echo 不是一个函数,而是一个语言结构。它的参数是 echo 关键字后面的表达式列表,以逗号分隔,并且不以括号分隔。与其他一些语言结构不同,echo 没有任何返回值,因此它不能在表达式的上下文中使用。

矛盾的是,ECHO 信息可以在 PHP 手册的“字符串函数”部分中找到,甚至该页面的链接也如上所示“/manual/en/函数.echo.php”

相关内容