[PHP-users 12721] 3項演算子について
Mashiki
php-users@php.gr.jp
Wed, 22 Jan 2003 10:56:12 +0900
Mashikiです。
phpの3項演算子について昔から疑問に感じていることが
あります。以下のスクリプトについて
<?php
$a = $_GET['a'];
echo "<pre>\n";
/* 式1 */
$msg = $a=='a'?'ええええ':
$a=='b'?'びいびいびい':
$a=='c'?'し〜〜〜〜〜':
'どれでもない'
;
echo "式1: $msg\n";
/* 式2 */
$msg = ($a=='a'?'ええええ':
($a=='b'?'びいびいびい':
($a=='c'?'し〜〜〜〜〜':
'どれでもない'
)));
echo "式2: $msg\n";
?>
パラメータに a=a を指定すると
式1: し〜〜〜〜〜
式2: ええええ
パラメータに a=b を指定すると
式1: し〜〜〜〜〜
式2: びいびいびい
パラメータに a=c を指定すると
式1: し〜〜〜〜〜
式2: し〜〜〜〜〜
パラメータに a=x を指定すると
式1: どれでもない
式2: どれでもない
式2は意図どおりに動きます。式1の結果は「?」です。
Cやjavaだと式1のように書いても、式2の結果のように
なると思いますが、phpのこの振る舞いはどのように解釈
したらよいでしょうか?