アプリ版:「スタンプのみでお礼する」機能のリリースについて

(1) 過去に http://oshiete1.goo.ne.jp/qa2419133.html で,
こういう書き方を教わりましたが

if ( $_POST["reg"] == "" ) $errFlg = true;

↑は,カッコ{}は省略する書き方ですか?こういう書き方をしていいのですか?


(2) それと,下記のIF文の引数で,変数名に「!」がついているのといないのとで
何が違うのか,日本語にすると,「$errFlg がNULLじゃなかったら」とか,
そういう意味ですか?


if ( !$errFlg ) {

~~~処理~~~

}

if ( $errFlg ) {

~~~処理~~~

}

A 回答 (3件)

マニュアルの「III. 言語リファレンス」に書いてあります。


{} 複数の文をグループ化
! 否定

参考URL:http://www.php.net/download-docs.php
    • good
    • 0
この回答へのお礼

umotaさん,早速ありがとうございました.

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

お礼日時:2007/01/18 23:09

(1)してもいいです。

但し、命令が1文である時に限ります。
(2)結果を否定しています。つまり$errFlgがtrueならfalseをし、falseならtrueとします。
    • good
    • 0
この回答へのお礼

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

勉強になりました.ありがとうございました.

お礼日時:2007/01/18 23:11

(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以外が正、
文字列であれば空文字列以外もしくは!空文字列が正、
となります。その辺が柔軟にできてますのでうまくつかってください
    • good
    • 0
この回答へのお礼

yamabejpさん,ありがとうございました.
(元質問に引用した質問に回答いただいたのもyamabejpさんです)

(1) はそういう書き方でよく,バリエーションもあるということで
よく理解できました.
(2) は,提示いただいたものを実行すると,下記が帰ってきましたが
なぜそうなるのか,理解するのに時間がかかりそうです・・


1
4
5
8
9
12

naktak(#2)さん,yamabejpさんのご解説が
頭では理解できているつもりなのですが・・・
ともかく,まずは御礼申し上げます.

お礼日時:2007/01/18 23:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!