
ifを使って複数の変数にデータがあるかどうかの条件式を作りたいのですが、うまくできません。
if(empty($hensu1) or empty($hensu2)){
$test = "";
}
else{
$test = 'テストです';
}
$hensu1か$hensu2のどちらかにデータがある場合のみ、$test = 'テストです'にしたいと思っています。
しかしながら上記だと$hensu1にデータがある場合のみしか$test = 'テストです'になりませんでした。
$hensu2にだけデータがあるときには$test = "";になってしまいます。
どこが原因なのでしょうか?
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)){
は同じ動作をすると思っていたのですが、なぜ違う結果になってしまったのでしょうか。
なんだか頭がこんがらがってしまいました。。
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で比較するとよいかも
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) VScodeでpythonプログラムの関数を実行したい 2 2022/07/13 19:24
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- JavaScript [再掲]指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードについて 1 2023/05/10 15:09
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- PHP 「if (!empty($_POST) ){ /」と「ポイント2★」の関連性? 1 2022/07/11 03:59
- Excel(エクセル) Excelで、別シートの表のステータスに伴った動的な自動転記をしたいです。 2 2023/06/14 15:56
- ドライブ・ストレージ HDDのチェック方法 6 2022/05/04 09:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい
-
matlabでの標高断面図の作成
-
特定のデータの抽出方法を教え...
-
cakePHPでバルクインサートする...
-
クレジットカードの磁気データ...
-
VBA セルに入っている値数挿入...
-
TBWに達するまで後5GBの時に100...
-
標準ブラウザ情報の取得
-
VBでデータ量を指定してPingす...
-
リングバッファって何ですか
-
多量のSUMIF式を軽くしたい
-
エクセルで2つの時系列のデー...
-
SASの時間比較
-
マクロを使って「円」を消すのは
-
圧縮プログラミング
-
Fortran カンマを含む数値デー...
-
モジュラス103の算出方法について
-
SpreadのデータをCSVに出力する...
-
VBA 空白セルを削除ではない方...
-
フォートランでの相互相関関数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
【エクセル】測定時間がバラバ...
-
配列でデータが入っている要素...
-
VBA 空白セルを削除ではない方...
-
メモ帳(テキストデータ)をExc...
-
EXCELVBAでSQLserverからデータ...
-
多量のSUMIF式を軽くしたい
-
この行は既に別のテーブルに属...
-
CString型の文字列連結について
-
ACCESSからEXCELに出力する際、...
-
ユーザーフォームのテキストボ...
-
エクセルで2つの時系列のデー...
-
C# でDataTableの更新を高速化...
-
特定のデータの抽出方法を教え...
-
C# ソケット通信でデータ受信時...
-
二分探索の平均探索回数
-
Excel VBAでのオートフィルター...
-
ブレーカー落ちで壊れたりしな...
-
Accessで該当データにフラグを...
-
VBAを使ってOutlookメール本文...
おすすめ情報