• ベストアンサー

$a = ( $b == $c ) ? $d、 この読み方について

$data = ($a == $b && $c != $d) ? $e[ 'name' ] . '<img src="' . $f[ 'name2' ] . '" title="' . $e[ 'name' ] . '" align="bottom" border ="0">': ''; こんにちは。上のコードを読み解こうとしているのですが、少しわからないので投稿させていただきました。 いつも見慣れている演算子は if やwhile などの制御構造に使われているのですが、今回出くわしたのは今まで見たことがないパターンでよくわかりません。 多分( )内は計算しているのだと思いますが、 次の ? の用途がわかりません。 その後は変数を含む文字列を横並びにくっつけている、というのはわかります。 これについて解説しているページ、またはこの用法についてご存知のかたおられましたらご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

$data = ($a == $b && $c != $d) の部分ですね? - $aが$bと等しく、$cが$dと異なっているなら $dataには $e[ 'name' ] . '<img src="' . $f[ 'name2' ] . '" title="' . $e[ 'name' ] . '" align="bottom" border ="0">' - 上記以外なら$dataには、 ''; をそれぞれ代入せよの意でしょう。 $a=(論理式)? $b : $c (論理式)が真なら、$aには$b、偽なら$cを代入せよと言う三項演算だと思われます。

jyuu
質問者

お礼

詳しく解説していただきありがとうございます。おかげさまで理解することができました。感謝いたします。

その他の回答 (1)

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.1

がると申します。 んっと。正しくは $a = ($b == $c) ? $d : $e; ですね。 今回の例ですと、$eにあたる部分は '' (空文字)となっています。 C言語では割合によく見るのですが。「三項演算子」と呼称します。 構成としては 変数a = (条件式) ? 値a : 値b ; となりまして。 もし条件式がtrueなら値aが、falseなら値bが、変数aに入ります。 googleで三項演算子で検索すると色々と見えてくるかと思います。

jyuu
質問者

お礼

ありがとうございます。三項演算子というのははじめて知りました。おかげさまで理解を深めることができました。

関連するQ&A

専門家に質問してみよう