ホームページ >バックエンド開発 >PHPチュートリアル >PHP 開発に切り替えるときによくある落とし穴_PHP チュートリアル
1. strrchr関数
W3Schoolサイトの注意事項は以下の通りです:
strrchr() 関数は、別の文字列内で最後に出現した文字列を検索し、その位置から文字列の末尾までのすべての文字を返します。
成功した場合は false を返し、そうでない場合は false を返します。
実際には、この関数は文字列ではなく特定の文字を検索します。公式ドキュメントを参照してください
。コード例:
$a = 'abcdef.txt'; $b = '.php'; echo strrchr($a, $b);は次のとおりです: .txt
言い換えると、$b が文字列の場合、最初の文字のみが使用され、後続の他の文字は無視されます
注: PHP は strstr 関数を提供します。自分で実装するのは非常に簡単ですが、strrstr 関数を提供しないのはいかがでしょうか
2、nullと空、0、3つの値の比較
PHPでは、==はまず型変換を行ってから比較しますが、===は型が異なる場合は直接不等値を返しますので、以下の例を参照してください。
$a = null; $b = ''; $c = 0; echo ($a == $b)?1:0; // 输出1 echo ($a === $b)?1:0; // 输出0 echo ($a == $c)?1:0; // 输出1 echo ($a === $c)?1:0; // 输出0 echo ($b == $c)?1:0; // 输出1 echo ($b === $c)?1:0; // 输出0以前は js または C# コードしか書いたことのない私のようなプログラマーにとって、これら 3 つの値に n 回騙されました (n は 3 より大きいです)
3. foreach での参照割り当て、公式ドキュメントを参照してください
コードのセットを見てみましょう:
上記のコードの出力は次のとおりです:
1,2,3,1,2,2 最後の出力は 3 ではなく 2 です。これは、コード内で $item が破棄されていないためです。理由は次のとおりです。
1回目のループでは$itemに3の参照が代入され、2回目のループでは$itemが参照なので配列の要素3が1になります。
4. isset と empty
の関係と違い、isset document empty document
empty は、次の 8 つの状況で true を返します:
null、空の文字列 ""、文字列 0 "0"、空の配列、ブール値 false、数値 0、浮動小数点数 0.0、クラス内で var で定義されていますが、値は割り当てられていません
isset は、変数が設定されていて NULL ではないかどうかをチェックしますが、空の 8 つのケースでは、null のみが false を返し、他の 7 つのケースは true を返します
要約すると、empty で説明される 7 つの非 null 状況を除き、他の場合では、if(empty(variable)) は if(!isset(variable)) と同等です