PHP が陥る可能性のある落とし穴 1

小云云
リリース: 2023-03-21 17:42:01
オリジナル
1234 人が閲覧しました

この記事では主に、PHP が陥る可能性のある落とし穴について、小さな例を通して皆さんと共有し、皆さんのお役に立つことを願っています。

今日質問されました:

$var = 'test';
if (isset($var['somekey']))
{
    echo 'reach here!!!';
}
ログイン後にコピー

「ここに到達します!!!」と出力されますか? - -もちろん違います。私は何も考えずに答えた。

案の定、罠にはまってしまいました!出力されますよ!罠にはまらなかったら、おめでとうございます。下を向く必要はありません。

それでは、分析してみましょう。 isset が設定されたので、値は何でしょうか?印刷してみましょう:

var_dump($var['somekey']);
//=>output:  string(1) "t"
ログイン後にコピー

$var の最初の文字である 't' です。

変数 $var は文字列なので、C 言語を学習したことがある方なら、それが char 型の配列であることがわかると思います。そのため、$var[0] $var[1] $var[$i] を使用できます。 ...取得するには $var の $i+1 番目の文字。では、なぜ「somekey」が最初の文字を取得したのでしょうか?これは、PHP がここで暗黙的な型変換を行い、ここの文字列を int 型に変換するためです。 intval('somekey') 関数を試したことがある場合は、得られる値が 0 であることがわかると思います。 $var['somekey']最終的には $var[0] になります。最後に「t」を取得しました。

以上がPHP が陥る可能性のある落とし穴 1の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート