人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPを扱える方に質問です。

<?php
$test = '0';
if ($test== '') error('存在しません。(1)');
(!$test == '') or error('存在しません。(2)');

function error($str) {
echo $str;
}
?>

上記のコードを実行すると、何故か「存在しません。(2)」が表示されてしまいます。
何故表示されるのでしょうか?お教えください。

●質問者: miya1414
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:echo PHP STR test コード
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● studioes
●35ポイント

(!$test == '') or error('存在しません。(2)');

この式を読むと

($test変数の否定と''は一致するか?)と(error('存在しません。(2)')の戻り値)の論理和、と言うことになります。

つまり、常にerror('存在しません。(2)')は実行されます。

◎質問者からの返答

申し訳ありません。

質問のコードが間違っていました。

お手数ですが、

http://q.hatena.ne.jp/1176565650

こちらにご解答願えないでしょうか?


2 ● pismo
●35ポイント

''と’0’は意味が違います。

''はNULLですが、'0'は0という文字が代入されています。

なので「存在しません。(2)」で正しいです。

◎質問者からの返答

申し訳ありません。

質問のコードが間違っていました。

お手数ですが、

http://q.hatena.ne.jp/1176565650

こちらにご解答願えないでしょうか?

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ