現在以下のようなプログラムが組まれているのですが、条件1と条件2内にそれぞれ同じ条件aと条件bの分岐(具体的にはスマホとPCでの表示内容の変更)をしたい場合、どのようなif分を書けばいいのでしょうか?
if(条件1){
条件1実行;
} elseif(条件2){
条件2実行;
}
else break;
======
イメージとしては
・条件1
・・条件a(スマホのとき)
・・条件b(pcのとき)
・条件2
・・条件a(スマホのとき)
・・条件b(pcのとき)
========
(追記)
上記だとうまく回らず、以下の構文を試しています。
スマホとそれ以外で最初分岐させたあと、再度分岐させる以下の構文はおかしいとこありますでしょうか?
うまく動かず困ってます...
foreach(){ if (スマホの時) { if(条件1){ } elseif (条件2){ } else break; } else { if(条件3){ } elseif (条件4) { } else break; } }
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
そもそもの構造がメンテしにくいです。
まず PC とスマホでテンプレートを分け、それぞれのテンプレートの中で条件 1,2 の分岐を実現させるのがキレイです。
投稿2019/02/26 00:10
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
nskydivingさんのを使うとして、自分なら
$is_smt = ua_smt(); if(条件1){ //条件1共通 if ($is_smt) { //条件1のスマホ } else { //条件1のPC } } else if(条件2){ //条件2共通 if ($is_smt) { //条件2のスマホ } else { //条件2のPC } }
みたいな感じで
投稿2019/02/25 23:58
編集2019/02/26 00:50総合スコア7458
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/26 00:31
2019/02/26 00:46
2019/02/26 00:47 編集
2019/02/26 20:34
0
単純に入れ子にするのではダメなんですか?
PHP
1if (条件1) { 2 if (スマホかどうか) { 3 スマホの表示内容 4 } else { 5 PCの表示内容 6 } 7elseif (条件2) { 8 if (スマホかどうか) { 9 スマホの表示内容 10 } else { 11 PCの表示内容 12 } 13}
投稿2019/02/25 23:51
総合スコア2534
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/26 20:34
2019/02/26 23:55
2019/02/27 00:07
2019/02/27 00:14
2019/02/27 00:25
0
ベストアンサー
以下の記事に書いてあるようなやり方ではどうでしょうか?
ユーザーエージェントでスマホとPCを判別し、処理を変化させるPHPネタ
PHP
1function ua_smt (){ 2 //ユーザーエージェントを取得 3 $ua = $_SERVER['HTTP_USER_AGENT']; 4 //スマホと判定する文字リスト 5 $ua_list = array('iPhone','iPad','iPod','Android'); 6 7 foreach ($ua_list as $ua_smt) { 8 //ユーザーエージェントに文字リストの単語を含む場合はTRUE、それ以外はFALSE 9 if (strpos($ua, $ua_smt) !== false) { 10 return true; 11 } 12 } 13 14 return false; 15} 16 17$arr = array(1, 2, 3, 4); 18foreach ($arr as &$value) { 19 if (ua_smt() == true) { 20 if($value == 1){ 21 // 条件1 22 } 23 else if ($value == 2){ 24 // 条件2 25 } 26 else { 27 break; 28 } 29 } 30 else { 31 if($value == 3){ 32 // 条件3 33 } 34 elseif ($value == 4) { 35 // 条件4 36 } 37 else { 38 break; 39 } 40 } 41}
投稿2019/02/25 22:55
編集2019/02/26 22:35総合スコア6500
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/02/25 23:18
2019/02/26 20:34
2019/02/26 22:39
2019/02/27 00:06
2019/02/27 00:17
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。