- ベストアンサー
【超初歩】 php構文の書き方の作法?
(1) 過去に http://oshiete1.goo.ne.jp/qa2419133.html で, こういう書き方を教わりましたが if ( $_POST["reg"] == "" ) $errFlg = true; ↑は,カッコ{}は省略する書き方ですか?こういう書き方をしていいのですか? (2) それと,下記のIF文の引数で,変数名に「!」がついているのといないのとで 何が違うのか,日本語にすると,「$errFlg がNULLじゃなかったら」とか, そういう意味ですか? if ( !$errFlg ) { ~~~処理~~~ } if ( $errFlg ) { ~~~処理~~~ }
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
(1)については if(条件) 直後に処理; if(条件) 改行してもOK(ただしセミコロンで区切られる次の行のみ有効); if(条件){ グループの処理; } のいずれかがつかえます。使い分けは単に好みによりますが できればグループとして使うようにすると、はまりにくいです (2)にかんしては <?PHP if(true) print "1<br>"; if(false) print "2<br>"; if(!true) print "3<br>"; if(!false) print "4<br>"; if(1) print "5<br>"; if(0) print "6<br>"; if(!1) print "7<br>"; if(!0) print "8<br>"; if("test") print "9<br>"; if("") print "10<br>"; if(!"test") print "11<br>"; if(!"") print "12<br>"; ?> とするとわかるように バリアント値であればtrueか!false(not false)は正、 数値であれば0以外もしくは!0以外が正、 文字列であれば空文字列以外もしくは!空文字列が正、 となります。その辺が柔軟にできてますのでうまくつかってください
その他の回答 (2)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
(1)してもいいです。但し、命令が1文である時に限ります。 (2)結果を否定しています。つまり$errFlgがtrueならfalseをし、falseならtrueとします。
お礼
naktakさん,ありがとうございました. (1) はそういう制約があるのですね. (2) はややっこしいですが,ようやく理解できました. 勉強になりました.ありがとうございました.
- umota
- ベストアンサー率46% (150/324)
マニュアルの「III. 言語リファレンス」に書いてあります。 {} 複数の文をグループ化 ! 否定
お礼
umotaさん,早速ありがとうございました. 意味もさることながら,ありがたいのはダウンロードできる HTMLヘルプ形式のマニュアルです. こんなすごいものがあったのですね. 今後,オフラインのときなどゆっくり楽しみたいと思います.
お礼
yamabejpさん,ありがとうございました. (元質問に引用した質問に回答いただいたのもyamabejpさんです) (1) はそういう書き方でよく,バリエーションもあるということで よく理解できました. (2) は,提示いただいたものを実行すると,下記が帰ってきましたが なぜそうなるのか,理解するのに時間がかかりそうです・・ 1 4 5 8 9 12 naktak(#2)さん,yamabejpさんのご解説が 頭では理解できているつもりなのですが・・・ ともかく,まずは御礼申し上げます.