ホームページ  >  記事  >  バックエンド開発  >  PHP STRINGトラップ原理の説明_PHPチュートリアル

PHP STRINGトラップ原理の説明_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:35:25824ブラウズ

文字列は一連の文字です。
文字による文字列へのアクセスと変更
文字列内の文字は、$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 不存在数組 または数組$arr 不存在key $key の逻辑
}
}

如果上の関数数が追加されていない is_array の判断、当传递一文字列来時、结想結果就不是我们预的那样了解しました。これは、その後も同様の問題が発生することを避けるためのものです。


http://www.bkjia.com/PHPjc/322206.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/322206.html技術記事文字列は一連の文字です。文字による文字列アクセスと変更 文字列内の文字は、希望のゼロベースのオフセットを指定することでアクセスおよび変更できます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。