hypweb.net
XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

TOP » UsersWiki » nao-pon » blog » 2013-01-09 の変更点
  
現: 2013-01-09 (水) 11:57:41 nao-pon ソース
Line 1: Line 1:
 +#navi
 +RIGHT:&rsslink(../);
 +#boxdate
 +* [PHP] if文の条件式内での代入・演算子優先順位でハマる [#c8be5bda]
 +RIGHT:&tag(PHP,プログラミング,覚書);
 +
 +私は、PHP の if文の条件式の中で代入を行うことが多いです。
 +
 +例えば、
 +
 +#code(php){{
 +if ($a = 'hoge') {
 +   var_dump($a);
 +}
 +}}
 +
 +この結果は
 +
 + string(4) "hoge"
 +
 +です。
 +
 +条件を増やしたくて次のようにしました。上記と同じ結果になることを期待しています。
 +
 +#code(php){{
 +if ($a = false || $a = 'hoge') {
 +   var_dump($a);
 +}
 +}}
 +
 +この結果は
 +
 + bool(true)
 +
 +となってしまいました。うほ!!
 +
 +なんということでしょう。
 +
 +これにハマってしまいました。
 +
 +正解は
 +
 +#code(php){{
 +if ($a = false or $a = 'hoge') {
 +   var_dump($a);
 +}
 +}}
 +
 +で、この結果は正しく
 +
 + string(4) "hoge"
 +
 +になりました。
 +
 +詳しいことはよく分からないけど、[[PHP の演算子の優先順位:http://www.php.net/manual/ja/language.operators.precedence.php]]によるものらしいです。
 +
 +演算子の優先順位が "||" > "=" > "or" ということだそうです。
 +
 +「これからも、気をつけないと」ということで、書き留めておきました。
 +
 +:参考|
 +[[PHPのif文の条件式での代入ではまった件 - kanonjiの日記:http://d.hatena.ne.jp/kanonji/20090522/1242950364]]
 +
 +RIGHT:&font(90%){&page_comments;};
 +#navi
  

  • nao-pon/blog/2013-01-09 のバックアップ差分(No. All)
    • 現: 2013-01-09 (水) 11:57:41 nao-pon

トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 276, today: 1, yesterday: 0
このページのTopへ
メインメニュー
ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録
最近の更新
オンライン状況
554 人のユーザが現在オンラインです。 (15 人のユーザが UsersWiki を参照しています。)

登録ユーザ: 0
ゲスト: 554

もっと...
サイト情報