回答編集履歴

1

2015/02/17 02:37

投稿

mickey_m
mickey_m

スコア188

test CHANGED
@@ -1,33 +1,12 @@
1
1
  ? と : は優先順位が同等なので、PHPは左から右へ各ビットを解析していきます。
2
-
3
- ```lang-<ここに言語を入力>
4
-
5
2
  echo ($print_test == 'value1' ? 'value1' : $print_test == 'value2') ? 'value2' : 'value3';
6
3
 
7
- ```
8
-
9
-
10
-
11
- まず、```lang-<ここに言語を入力>
12
-
13
- $print_test == 'value1'
14
-
15
- ```はTrueと返ってきます。
16
-
17
- なので最初の上位ノードの値は'value1'です。2つ目の三項は次の様に評価されます。
4
+ まず、$print_test == 'value1'はTrueと返ってきます。なので最初の上位ノードの値は'value1'です。2つ目の三項は次の様に評価されます。
18
-
19
-
20
5
 
21
6
  最初の三項演算子の結果('value1')と'value2' : 'value3'を比較して、'value1'はtrue(空文字でない)なので、'value2'が最終的な結果となります。
22
7
 
23
-
24
-
25
8
  PHPマニュアルの比較演算子のページに、三項演算子についての説明がありましたので、参照して下さい。
26
-
27
- [http://www.php.net/manual/ja/language.operators.comparison.php#language.operators.comparison.ternary](http://www.php.net/manual/ja/language.operators.comparison.php#language.operators.comparison.ternary)
28
-
29
-
9
+ http://www.php.net/manual/ja/language.operators.comparison.php#language.operators.comparison.ternary
30
10
 
31
11
  演算子の優先順位のページも参考になると思いますので、こちらも参照して下さい。
32
-
33
- [http://www.php.net/manual/ja/language.operators.precedence.php](http://www.php.net/manual/ja/language.operators.precedence.php)
12
+ http://www.php.net/manual/ja/language.operators.precedence.php