「PHP」の真偽判断でつまづいてしまいました。


$var = ’example’ //テキトな文字列
if ($var) {式A}//ケースA1 {式A}が処理される
if ($var) {式A}//ケースA2 {式A}が処理されない
if (!$var) {式B}//ケースB1 {式B}が処理される
if (!$var) {式B}//ケースB2 {式B}が処理されない
現状、私のところではケースB1が結果として現れていますが、ケースB2になるべきじゃないのかと戸惑ってます。


※やはり「isset()」「empty()」を使わないとだめなんだろうか・・うまく判断することが出来たような・・・
※$var = ’’ //webページ上のフォームで未入力だった時 の真偽判断についても解説があるとうれしいです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/07/18 12:29:17
  • 終了:--

回答(3件)

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982005/07/18 12:35:01

ポイント5pt

> if (trim($mailto)==””){$error=”宛先が未入力です。”;}


というふうに trimを かけたら いかがでしょうか?

id:router

$varの先頭と末尾に空白文字もタブも改行コードも含まれていません。

念のためかけてみましたが、結果に変化は見られませんでした。

2005/07/18 12:48:31
id:hatete88 No.2

hatete88回答回数266ベストアンサー獲得回数02005/07/18 12:36:18

http://ns1.php.gr.jp/pipermail/php-users/2004-January/020472.htm...

[PHP-users 19946]Re: 暗号メモ帖を作ろうとしています、真偽 判定出来ない

id:router

URL先から答えらしきものが見つけられませんでした。

特に暗号化をしているわけではないですし、する気も無いです。

どの辺りが答えなのか、書いてもらえると助かります。

2005/07/18 12:52:42
id:ito-yu No.3

ito-yu回答回数323ベストアンサー獲得回数142005/07/18 12:53:11

ポイント55pt

まず、質問自体が混乱しているようですね。


if($var){ echo ’OK’; }else{ echo ’NG’; }


くらいにしておき、OKかNGのどちらが表示されるか、というところに焦点を絞りましょう。


$varに正しく文字列’example’が代入されており、if文で$varが正しく評価されていれば、URLの通り、真偽値に変換され評価されます。

礼にあげているのはソースのコピペでは内ですよね。;が抜けてるし。ということは、あなたが実際に評価したい文字列に問題が有るのではないでしょうか。

if文の直前で、その変数を表示してみてください。

echo htmlspecialchars($var);

id:router

ご回答ありがとうございます。

URL先のFALSEとなる条件を元に、条件分岐を修正することが出来ました。

例は文字通り例です。短くしようとして、かえってわかりにくくなってしまったようで、すいません。

2005/07/18 13:10:15

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません