回答編集履歴
1
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
|
-
|
12
|
+
http://www.php.net/manual/ja/language.operators.precedence.php
|