ifを使って複数の変数にデータがあるかどうかの条件式を作りたいのですが、うまくできません。
if(empty($hensu1) or empty($hensu2)){
$test = "";
}
else{
$test = 'テストです';
}
$hensu1か$hensu2のどちらかにデータがある場合のみ、$test = 'テストです'にしたいと思っています。
しかしながら上記だと$hensu1にデータがある場合のみしか$test = 'テストです'になりませんでした。
$hensu2にだけデータがあるときには$test = "";になってしまいます。
どこが原因なのでしょうか?
No.4
- 回答日時:
#3 でも言われていますが, ! empty と isset は判定基準が違います. ちょっと探してみると
http://starzero.hatenablog.com/entry/20101117/12 …
なんかが見つかります.
No.3
- 回答日時:
提示の条件では
>$hensu2にだけデータがあるときには$test = "";になってしまいます。
というのは合致しないと思いますが・・・
まず、emptyの守備範囲を確認
$hensu=null;
if(empty($hensu)) print 1;
$hensu=false;
if(empty($hensu)) print 2;
$hensu=0;
if(empty($hensu)) print 3;
$hensu="";
if(empty($hensu)) print 4;
$hensu="0";
if(empty($hensu)) print 5;
$hensu=array();
if(empty($hensu)) print 6;
unset($hensu);
if(empty($hensu)) print 7;
http://php.net/manual/ja/types.comparisons.php
そのうえで、命題が$hensu1および$hensu2について
どちらか一方だけにしかデータがない状況を確認したいのであればxorで比較するとよいかも
No.1ベストアンサー
- 回答日時:
ちょっと確認したいんだけど, 「しかしながら上記だと$hensu1にデータがある場合のみしか$test = 'テストです'になりませんでした」というのは
$hensu1 にデータがあって $hensu2 にはデータがない
場合でも確認していますか?
なんとなく
if (! empty($hensu1) or ! empty($hensu2)){
$test = 'テストです';
}
else{
$test = "";
}
っぽいんだけど....
ありがとうございます!
おっしゃるとおり、if (! empty($hensu1) or ! empty($hensu2)){ で期待した動きになりました。
しかしながらNo.2さんの
if(isset($hensu1) or isset($hensu2)){ ではダメでした。
私としては
if (! empty($hensu1) or ! empty($hensu2)){
と
if(isset($hensu1) or isset($hensu2)){
は同じ動作をすると思っていたのですが、なぜ違う結果になってしまったのでしょうか。
なんだか頭がこんがらがってしまいました。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい
-
特定のデータの抽出方法を教え...
-
【エクセル】測定時間がバラバ...
-
vba ドロップダウンリストの図...
-
gridでデータ削除後に上へ1件...
-
EXCELVBAでSQLserverからデータ...
-
C# ソケット通信でデータ受信時...
-
VBA 空白セルを削除ではない方...
-
メモ帳(テキストデータ)をExc...
-
プログラミング python pandas ...
-
C# でDataTableの更新を高速化...
-
ACCESSからEXCELに出力する際、...
-
ページ数を求めたい
-
マクロで同じフォルダにある画...
-
配列でデータが入っている要素...
-
外部データの更新がうまくでき...
-
Accessで該当データにフラグを...
-
ビットシフトについて
-
アクセス2000で画像データ...
-
文字の上下反転処理
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
【エクセル】測定時間がバラバ...
-
配列でデータが入っている要素...
-
VBA 円グラフ 特定条件に一致し...
-
メモ帳(テキストデータ)をExc...
-
EXCELVBAでSQLserverからデータ...
-
VBA 空白セルを削除ではない方...
-
S9タイプからXタイプにデータ...
-
ブレーカー落ちで壊れたりしな...
-
Accessで該当データにフラグを...
-
多量のSUMIF式を軽くしたい
-
エクセルで2つの時系列のデー...
-
VBAを使ってOutlookメール本文...
-
特定のデータの抽出方法を教え...
-
この行は既に別のテーブルに属...
-
カンマからスラッシュに
-
VBAでシートからコンボボックス...
-
GridViewの行の一部を複数行にする
-
ユーザーフォームのテキストボ...
-
<VB>String→Object
おすすめ情報