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

TOP » UsersWiki » nao-pon » blog » 2013-01-09

RSS of nao-pon/blog
2013 1月 9 (水)
 

[PHP] if文の条件式内での代入・演算子優先順位でハマる anchor.png

私は、PHP の if文の条件式の中で代入を行うことが多いです。

例えば、

1
2
3
if ($a = 'hoge') {
    var_dump($a);
}

この結果は

string(4) "hoge"

です。

条件を増やしたくて次のようにしました。上記と同じ結果になることを期待しています。

1
2
3
if ($a = false || $a = 'hoge') {
    var_dump($a);
}

この結果は

bool(true)

となってしまいました。うほ!!

なんということでしょう。

これにハマってしまいました。

正解は

1
2
3
if ($a = false or $a = 'hoge') {
    var_dump($a);
}

で、この結果は正しく

string(4) "hoge"

になりました。

詳しいことはよく分からないけど、PHP の演算子の優先順位によるものらしいです。

演算子の優先順位が "||" > "=" > "or" ということだそうです。

「これからも、気をつけないと」ということで、書き留めておきました。

参考
PHPのif文の条件式での代入ではまった件 - kanonjiの日記


トップ   凍結 差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 277, today: 1, yesterday: 0
初版日時: 2013-01-09 (水) 11:57:41
最終更新: 2013-01-09 (水) 11:57:41 (JST) (4126d) by nao-pon
このページのTopへ
メインメニュー
ログイン

ユーザー名:


パスワード:





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

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

もっと...
サイト情報