回答編集履歴

2

スニペットがJavaScriptになってたので修正

2017/09/21 06:30

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- ```JavaScript
7
+ ```PHP
8
8
 
9
9
  // この書き方は規約でアウト扱いの可能性もあり
10
10
 
@@ -16,7 +16,11 @@
16
16
 
17
17
  }
18
18
 
19
+ ```
19
20
 
21
+
22
+
23
+ ```PHP
20
24
 
21
25
  // その場合はこっち
22
26
 
@@ -62,7 +66,7 @@
62
66
 
63
67
 
64
68
 
65
- ```JavaScript
69
+ ```PHP
66
70
 
67
71
  function PCorPhone($ua){
68
72
 
@@ -86,7 +90,7 @@
86
90
 
87
91
 
88
92
 
89
- ```JavaScript
93
+ ```PHP
90
94
 
91
95
  function isPC($ua){
92
96
 

1

蛇足追加

2017/09/21 06:30

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -39,3 +39,71 @@
39
39
  所謂ガード説という対応です。
40
40
 
41
41
  さっさとreturn返して逃げれば一時変数も使わずに済んで万々歳ですね。
42
+
43
+
44
+
45
+ ---
46
+
47
+
48
+
49
+ おまけ
50
+
51
+
52
+
53
+ PCorPhoneという関数を見て、他の人はどういう値を返す関数と想像するでしょうか?
54
+
55
+ まぁ大多数は文字列の`"PC"か"Phone"`なんだろうと想像するでしょうね。
56
+
57
+ ところが、実行すると返ってくるのが`"designPC.css"`なわけですよ。
58
+
59
+
60
+
61
+ なので下のようなアプローチが良いでしょうね。
62
+
63
+
64
+
65
+ ```JavaScript
66
+
67
+ function PCorPhone($ua){
68
+
69
+ if (mb_strpos($ua, 'Window') === false) {
70
+
71
+ return 'Phone';
72
+
73
+ }
74
+
75
+ return 'PC';
76
+
77
+ }
78
+
79
+
80
+
81
+ $device = PCorPhone($ua);
82
+
83
+ $css = "design{$device}.css";
84
+
85
+ ```
86
+
87
+
88
+
89
+ ```JavaScript
90
+
91
+ function isPC($ua){
92
+
93
+ if (mb_strpos($ua, 'Window') === false) {
94
+
95
+ return false;
96
+
97
+ }
98
+
99
+ return true;
100
+
101
+ }
102
+
103
+
104
+
105
+ $device = isPC($ua) ? 'PC' : 'Phone';
106
+
107
+ $css = "design{$device}.css";
108
+
109
+ ```