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マニュアルの「String Functions」セクションにあり、そのページへのリンクも上記のように「/manual/en/関数。エコー.php」

おすすめ記事