• ベストアンサー

【超初歩】 php構文の書き方の作法?

(1) 過去に http://oshiete1.goo.ne.jp/qa2419133.html で, こういう書き方を教わりましたが if ( $_POST["reg"] == "" ) $errFlg = true; ↑は,カッコ{}は省略する書き方ですか?こういう書き方をしていいのですか? (2) それと,下記のIF文の引数で,変数名に「!」がついているのといないのとで 何が違うのか,日本語にすると,「$errFlg がNULLじゃなかったら」とか, そういう意味ですか? if ( !$errFlg ) { ~~~処理~~~ } if ( $errFlg ) { ~~~処理~~~ }

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.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以外が正、 文字列であれば空文字列以外もしくは!空文字列が正、 となります。その辺が柔軟にできてますのでうまくつかってください

litton101
質問者

お礼

yamabejpさん,ありがとうございました. (元質問に引用した質問に回答いただいたのもyamabejpさんです) (1) はそういう書き方でよく,バリエーションもあるということで よく理解できました. (2) は,提示いただいたものを実行すると,下記が帰ってきましたが なぜそうなるのか,理解するのに時間がかかりそうです・・ 1 4 5 8 9 12 naktak(#2)さん,yamabejpさんのご解説が 頭では理解できているつもりなのですが・・・ ともかく,まずは御礼申し上げます.

その他の回答 (2)

回答No.2

(1)してもいいです。但し、命令が1文である時に限ります。 (2)結果を否定しています。つまり$errFlgがtrueならfalseをし、falseならtrueとします。

litton101
質問者

お礼

naktakさん,ありがとうございました. (1) はそういう制約があるのですね. (2) はややっこしいですが,ようやく理解できました. 勉強になりました.ありがとうございました.

  • umota
  • ベストアンサー率46% (150/324)
回答No.1

マニュアルの「III. 言語リファレンス」に書いてあります。 {} 複数の文をグループ化 ! 否定

参考URL:
http://www.php.net/download-docs.php
litton101
質問者

お礼

umotaさん,早速ありがとうございました. 意味もさることながら,ありがたいのはダウンロードできる HTMLヘルプ形式のマニュアルです. こんなすごいものがあったのですね. 今後,オフラインのときなどゆっくり楽しみたいと思います.