アプリ版:「スタンプのみでお礼する」機能のリリースについて

 三項演算子で

変数「$data」>=10 の場合”10以上”、それ以外なら”10以下”と表示する。

<?php
$data = 15;
$str = ($data >= 10)?"10以上":"10以下";
print $str;
?>
 以上は理解できます。

 しかし以下はほとんど理解できません!?


<?php

if (isset($argv[1])){
$param = $argv[1];
} else {
    $param = 'default';
}

二つは同じ三項演算子で同類ということですが、
 アバウトな質問のような気がしますが、違いを教えていただけますか!
 よろしくお願いします。

A 回答 (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文に展開すると同義になるかと。
    • good
    • 0
この回答へのお礼

 ご回答誠にありがとうございました。
 以下構文で!

<?php
$data = 10;
$str = ($data >= 10)?"10以上":"10未満";
print $str;
?>
 
 以上ですが、最初のご紹介した構文の、$data = 15;を10;に、10以下を10未満に変えました。 
  
 $data = 10;を操作することにより10以上、10未満
と変化します。
 そらが論理的なやり方なのか、わかりませんが、試したら私的には都合が良かったです。
 
 あと 
  if文で展開ですが、定番とのことで、少し勉強してみます。
 

お礼日時:2014/04/27 21:37

>$str = ($data >= 10)?"10以上":"10以下";


質問者は、算数レベルの事理解できている?
10以下はあり得ない。
10未満な

以下と未満の使い分けできるか?

この回答への補足

 STAP細胞論文じゃないけど!以下のサイトから「こぴぺ」で鵜呑みしました。
 
http://www.php-ref.com/basic/02_san_enzan.html
 
公の場に出す場合は!
 ちゃんと見直さないと、STOP細胞に変化しますからね^^・ちょっぴり残念_ _

補足日時:2014/04/25 03:40
    • good
    • 0

>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'] : '';

といった書き方を多用します(ほとんど定石の記法です)。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!