• ベストアンサー

echoについて

echoの使い方について教えてください。 echo ($author!='' ? "$author. " : '') PHPのリファレンスにあるechoの内容を見ましたが、上のような使い方については見当たりませんでした。 この記述は、どのように解釈したらいいんでしょうか? またこの記述方法で実行した場合、出力結果は同じになりますか? これと似た構文でC言語にもありますか? よろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • honoka69
  • ベストアンサー率50% (6/12)
回答No.2

三項演算子ってやつです。 if文みたいなもので、 $result = TRUE ? "TRUE" : "FALSE"; ?より前がTRUEなら:より前が実行される。 ?より前がFALSEなら:よりあとが実行される。 echo ($author!='' ? "$author. " : '') 今回は$author != '' となってるので、 $authorに値が入っていれば "$author. " この部分が実行されるので $authorがechoされる(出力される)。 $authorになにも入ってなければ '' この部分んが実行されるので '' がechoされる(=何も出力されない) って意味だと思います。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

これは2つに分解してください 1.echo () つまり、echoで()のなかみを出力する 2.その中身は三項演算子をつかった 条件?true値:false値 ということです 三項演算子は多くの言語で採用されていると思います

関連するQ&A

  • echoは命令なんですか? phpのechoの説

    echoは命令なんですか? phpのechoの説明に 「echo」は文字列などを出力するための命令です と書いてあるんですが、echoはリファレンスには関数ではなく言語構造とかいてあります echoは言語構造であり命令なんですか? 関数も命令ですか?

    • ベストアンサー
    • PHP
  • echoの区切り方(コンマ又はピリオド)?

    echoの正しい記述方法についてご質問します。 echo で出力する文字列にの間に変数を記述する場合、変数は「,」(コンマ)で区切るのでしょうか?それとも「.」(ピリオド)で区切るのでしょうか?または、「,」でも、「.」でも、どちらでも良いのでしょうか?「,」で区切る場合と「.」で区切る場合の使い分けが分かりません。 例1(「,」で区切る): <?php $var = "変数"; echo '$varは「', $var, '」です'; ?> 例2(「.」で区切る) <?php $var = "変数"; echo '$varは「' . $var. '」です'; ?> 「.」で区切った場合も上記のように行を変えればちゃんと出力されます(これって正しい記述?)。 また、上記よりもっと良い記述方法があれば、お教え下さい。 この質問の内容に関して詳細な情報が記載されているサイト等をご存知でしたら、お教え下さい。 よろしくお願いします。

    • 締切済み
    • PHP
  • echoの直後に変数(文字列ではなく)を記述?

    echoの正しい記述方法についてご質問します。 echoの直後に変数(文字列ではなく)を記述する場合の質問です。この場合、echoを使用して「変数です」と出力(「」は、出力しません。)するには、以下の例の内、どの記述が正しい(又は最も良い)のでしょうか? 例1: <?php $var = "変数"; echo $var,'です'; ?> 例2: <?php $var = "変数"; echo ',$var,です'; ?> 例3: <?php $var = "変数"; echo '$var,です'; ?> また、上記よりもっと良い記述方法があれば、お教え下さい。 この質問の内容に関して詳細な情報が記載されているサイト等をご存知でしたら、お教え下さい。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpプログラムにてすぐecho出力が出ない。

    phpにて、ログ解析を解析し、解析結果をCSVに加工して出力するものを 作成しました。 ログの解析には、解析したい単語で正規表現を使用し、 抽出しています。 正規表現は一行につき、多い場合で5つ実行されます。 echoでところどころに変数を出力するようにしています。 phpの<?phpのすぐ下にも startと出力するようにechoを入れています。 ログのボリュームにもよるのですが、 サイズが大きいログの場合、 解析プログラムを実行しても、最初のうちは、ふんともすんとも しないのです。 5000行のログでは、1時間たっても、実行されず、echoの標準出力が発行されず、 100行程度の場合、数秒でechoの標準出力が出力されます。 すこし、経つと、思い出したかのように 標準出力を吐き出します。 phpのプログラムにおいて、 実行する場合に、どのようなソースチェックが行われているのでしょうか?? すこし、わかりづらい質問ですが、 詳しい方、宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • DOSのECHOコマンドで > を表示させたい

    DOSでバッチファイルを組んでいます そこで ECHOコマンドで > を表示させたいのですが 具体的には ECHO > と打っているんですがコマンドの構文が間違っていますと出ます おそらく実行結果をファイルにするときの > になってしまっているのだと思います ECHOで > を表示させる方法は無いでしょうか? 知っている方いればお願いします

  • echoの出力に関して

    シェルが以下の順番で呼ばれる場合に、AとBのechoのみ出力して Cのechoは出力しないといった方法はありますでしょうか? (任意でechoの出力を抑制する方法) set echo off見たいなもの。 shellA->shellB->shellC 実は、なぜかShellCないのechoが出ないようになっているのですが 何故でないのか分からず困っています。

  • phpのECHOが出力されない:wordpress

    A B C "text" というJSONデータのCを画面に出したい時、 echo $obj['A']['B']['C']; もしくは echo $obj->A->B->C; という文をphpの中に書き込んだのですが、 echo ”Halloworld”とかは出るのに、変数になると出ません。 ちなみにfunction.phpでショートコードから呼び出すファイルに記述しています。 何が間違っているのでしょうか。

    • 締切済み
    • PHP
  • echo (float)'1e2foo', PHP

    echo (float)'15foo', PHP_EOL; echo (float)'15.33foo', PHP_EOL; echo (float)'1e2foo', PHP_EOL; echo (float)'foo', PHP_EOL; 以上参考書を転記しました 試しに echo '<pre>'; echo (float)'15', PHP_EOL; echo (float)'15.33', PHP_EOL; echo (float)'1e2', PHP_EOL; echo (float)'', PHP_EOL; echo '</pre>';  とfooを省きました、二つのプログラムの実行結果は 以下ですがと同じです。 15 15.33 100 0   一つ目の質問です。   なぜ、参考書はfooをあえて入れてのでしょうか? 二つ目の質問です。  1e2を1e3にすると結果が1000になります。  1eて何ですか!?    宜しくお願いします。

    • 締切済み
    • PHP
  • PHPにおいて<? PHP ?>の外の出力内容

    PHPにおいて PHPタグ つまり <?php ?> にかこまれた外の箇所ですが<?php ?> の外は、php言語構造のechoやprintといったもので出力されたものと 同等の意味をもつとどこかで読んだ気がします。 どなたか、上記のような内容に準する記述のあるサイトをご存知ありませんか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • dosコマンド echo について(文字色)

    .NET Framework 2.0と同時にインストールされるツールの1つに 「MSBuild」というのがあります。 このツールの詳細については省略させていただきますが、簡単に 述べると、c# や vb.net で記述したソースをコンパイル(ビルド)し .NETプログラムを生成します。 この「MSBuild」を実行すると、ビルドの結果が出力(表示)される のですが、その出力結果が所々文字に色が付いているのです。 (参考:) MSBuildを活用して開発時の作業を自動化する http://codezine.jp/a/article/aid/674.aspx 本文「3. 「1.Simple.bat」を実行して、ビルドを実行する。」の下 にある画像を参照。 それで、質問なのですが、バッチプログラム等、dosコマンド(echo等) ででも、この様な文字に色を付けて出力(表示)って出来るんでしょうか? colorコマンドでは、全ての文字の色が変わってしまって、ある部分 だけに色をつけるという事ができないようだし。 ご存知な方、いらっしゃりませんでしょうか。

専門家に質問してみよう