- ベストアンサー
三項演算子で違いが判らない
- 変数「$data」が10以上の場合は「10以上」と表示し、それ以外の場合は「10以下」と表示する三項演算子についての質問です。
- 質問者は一つ目のコードは理解できるが、二つ目のコードが理解できないと述べています。
- 質問者は二つのコードが同じ三項演算子であることに気づいており、違いを教えてほしいとしています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>$str = ($data >= 10)?"10以上":"10以下"; こちらは三項演算子。 >if (isset($argv[1])){ > $param = $argv[1]; >} else { > $param = 'default'; >} こちらは三項演算子と「同じ意味」になるように、if文で展開されたもの… ではありませんか? $param = isset($argv[1]) ? $argv[1] : 'default'; をif文に展開すると同義になるかと。
その他の回答 (2)
- ahoo_ok
- ベストアンサー率31% (30/95)
>$str = ($data >= 10)?"10以上":"10以下"; 質問者は、算数レベルの事理解できている? 10以下はあり得ない。 10未満な 以下と未満の使い分けできるか?
補足
STAP細胞論文じゃないけど!以下のサイトから「こぴぺ」で鵜呑みしました。 http://www.php-ref.com/basic/02_san_enzan.html 公の場に出す場合は! ちゃんと見直さないと、STOP細胞に変化しますからね^^・ちょっぴり残念_ _
- agunuz
- ベストアンサー率65% (288/438)
>if (isset($argv[1])){ >$param = $argv[1]; >} else { > $param = 'default'; >} これは単なる if 構文ですよね。三項演算子で書くなら $param = isset($argv[1]) ? $argv[1] : 'default'; です。$paramに$argv[1]が存在したら$argv[1]を、そうでなければ'default'を代入します。POSTデータの代入などでは $name = isset($_POST['name']) ? $_POST['name'] : ''; といった書き方を多用します(ほとんど定石の記法です)。
お礼
ご回答誠にありがとうございました。 以下構文で! <?php $data = 10; $str = ($data >= 10)?"10以上":"10未満"; print $str; ?> 以上ですが、最初のご紹介した構文の、$data = 15;を10;に、10以下を10未満に変えました。 $data = 10;を操作することにより10以上、10未満 と変化します。 そらが論理的なやり方なのか、わかりませんが、試したら私的には都合が良かったです。 あと if文で展開ですが、定番とのことで、少し勉強してみます。