ホームページ  >  記事  >  バックエンド開発  >  アダム・ランバートの不法侵入 PHP STRING トラップ原理の説明

アダム・ランバートの不法侵入 PHP STRING トラップ原理の説明

WBOY
WBOYオリジナル
2016-07-29 08:43:251170ブラウズ

文字列は一連の文字です。
文字による文字列へのアクセスと変更
文字列内の文字は、$str[42] のように、角配列括弧を使用して文字列の後に目的の文字の 0 から始まるオフセットを指定することでアクセスおよび変更できます。この目的では、文字列を文字の配列として考えてください。
注: 同じ目的で、$str{42} のように中かっこを使用して文字列にアクセスすることもできます。ただし、この構文は PHP 5.3.0 では非推奨になりました。代わりに、$str[42] などの角括弧を使用してください。
警告
範囲外のオフセットに書き込むと、文字列にスペースが埋め込まれます。非整数型は整数に変換されます。不正なオフセット タイプは E_NOTICE を発行します。負のオフセットは書き込み時に E_NOTICE を発行しますが、空の文字列を読み取ります。割り当てられた文字列の最初の文字のみが使用されます。空の文字列を割り当てると、NUL バイトが割り当てられます。
上記はすべて php マニュアルの中の原文です。
注意が必要な場合、私たちが数組を確認する場合は、両方とも括弧番号 "[]" を使用し、文字列として操作子 "[]" を使用してアクセスすることもできます。注意点としては、文字列を入力すると、操作子「[]」内の内容がint型に変換される場合があります。
echo $str['php'];//結果は 1,オフセット 'php' の整数化が 0 であるため、これは文字列の最初の文字です。
var_dump(isset($str['php']));//結果は bool(true) の原理と同じです。
したがって、isset を使用して、ある設定に問題が存在するかどうかを判断し、この事前判断の下で転送します。来る量が数組であるかどうか、その後、指定されたキーが存在するかどうかを再度判断します
例://必要な場合は、渡される数組が存在するかどうかを判断します'php'このキーのとき、比較安全な法は次のとおりです:

复制コード 代码如下:

function is_set($arr, $key){
if (is_array($arr) && isset($arr[$key])) {
//存在する该值的逻辑
} else{
// $ arr了解しました。これ以降も同様の問題が発生する可能性があるため、注意してください。
以上は、adam lambert の不法侵入に関する PHP STRING の原理説明を介して、adam lambert の不法侵入に関する内容が含まれており、PHP 教則に関心のある友人の助けになることを望みます。

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