ホームページ >バックエンド開発 >PHPチュートリアル >PHP は変数名のピリオドをどのように処理しますか?また、それを回避するにはどうすればよいですか?

PHP は変数名のピリオドをどのように処理しますか?また、それを回避するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-10 18:58:11284ブラウズ

How Does PHP Handle Periods in Variable Names, and How Can I Work Around It?

PHP のドット変換: 理解と回避策

名前にピリオドが含まれるリクエスト フィールドまたは Cookie を渡すと、PHP はそれらを自動的にアンダースコアに置き換えます。この動作は障害となる可能性があるため、防止することをお勧めします。

PHP の説明

PHP.net によると、ドットは PHP では有効な文字ではありません。変数名。意図しない連結の問題を防ぐために、PHP は変数名のドットを自動的にアンダースコアに変換します。

影響を受ける追加の文字

ドットに加えて、PHP は次の文字もアンダースコアに変換します。 :

  • スペース(chr(32))
  • 開き角括弧 (chr(91))
  • さまざまな非 ASCII 文字 (chr(128) - chr(159))

回避策

はできないためPHP がこの変換を実行できないようにするには、回避策を使用してアンダースコアをドットに戻すことができます。考えられる方法の 1 つは、str_replace 関数を使用することです。

$request_uri = str_replace('_', '.', $_SERVER['REQUEST_URI']);

これにより、リクエスト URI 内のすべてのアンダースコアがドットに置き換えられます。他の名前と値のペア ($_GET、$_POST、$_COOKIE など) にも同じアプローチを適用できます。

以上がPHP は変数名のピリオドをどのように処理しますか?また、それを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。