タグ

2014年3月19日のブックマーク (3件)

  • PHPでの空値の扱い〜issetとemptyを比較する - tatakauashiの日記

    PHPでは、NULLやundefinedや空文字(''のこと)や0や'0'が空値扱いされたりされなかったりする。 他の言語ではこれらを Java if (hoge == null || hoge.equals("")) { // 空文字かどうか ..... if (hoge == 0) { // 0かどうか ..... if (!hoge) { // falseかどうか ..... と書いた場合は全て違うわけだが(その前にJavaの場合は変数の型が決まっているので、上記を全て満たすhogeは記述できないが)、PHPでは、これが記述できてしまう。更に、その時の条件による挙動があいまいに感じる。 そこで、PHPでは上記のような等号/不等号による判断をなるべく避けて、isset()/empty()を使うのが良いのではないだろうか。 isset() あるかどうか empty() 無いかどうか よっ

    PHPでの空値の扱い〜issetとemptyを比較する - tatakauashiの日記
  • $_GET, $_POSTなどを受け取る際の処理 - Qiita

    【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。 予備知識 PHPはフォームから送信された値などをコード実行開始に自動的に変数として使えるようにしてくれる非常に便利なプログラミング言語です.しかし,それをそのまま用いるとエラーが発生したり,脆弱性になってしまったりするケースがたくさんあります.使う前には適当なチェック処理が必要です. どういった変数が対象になるか 以下に挙げられた変数は,ユーザーが勝手に値や構造を書き換えたり,送信をそもそも行わずにアクセスしたりすることが可能な信用できない変数だと思ってください.例え,ラジオボタンで選択肢を限定していたり,隠し要素として埋め込んでいたりしたとしても,これに該当してしまいます.

    $_GET, $_POSTなどを受け取る際の処理 - Qiita
  • 私の正規表現におけるポリシー - Qiita

    echo '[a]\[b]'; # => [a]\[b] echo '[a]\\[b]'; # => [a]\[b] echo '[a]\\\[b]'; # => [a]\\[b] echo '[a]\\\\[b]'; # => [a]\\[b] echo '\\'; # => \ echo '\'; # パースエラー 慣れないうちは省略せずに全てエスケープすることをおすすめします。ちなみにこれはPHPに限っての挙動であり、 C や Java ではこのような挙動にはならず、 必ずエスケープしなければなりません 。 ダブルクオート内で処理されるシーケンス 一部マニュアルに記載がないものもあります。 記述 実際の表示 意味 備考

    私の正規表現におけるポリシー - Qiita