• 締切済み

一般的なechoとprintの実装方法

お世話になります、php初心者です。 phpでhtmlを出力する際の代表的な2つの関数(echo, print)がありますが、 以下の2点の実装方法のうち、一般的な実装方法はどちらでしょうか。 A index.phpで必要とするhtmlを全て変数に詰めて(必要とする関数を全て実行)、一気にはき出す B index.phpで必要するとhtmlを、逐次はき出す 答えて頂けると幸いです。

  • PHP
  • 回答数3
  • ありがとう数14

みんなの回答

noname#244856
noname#244856
回答No.3

echoもprintもべた書きせずに http://codepad.org/Dsa2OLLA <?php date_default_timezone_set('Asia/Tokyo'); $date = date('Y-m-d'); $arr = range('a', 'e'); header('Content-Type: text/html; charset=utf-8'); ?> <!DOCTYPE html> <html> <head> <title>Test</title> </head> <body> <h1>今日の日付は<?=$date?>です</h1> <table> <caption>表</caption> <tr><th>キー</th><th>値</th></tr> <?php foreach ($arr as $k => $v): ?> <tr><td><?=$k?></td><td><?=$v?></td></tr> <?php endforeach; ?> </table> </body> </html> のようにして制御構造の別構文( http://php.net/manual/ja/control-structures.alternative-syntax.php ) やecho短縮構文 ( http://php.net/manual/ja/function.echo.php ) を活用したほうが見やすくなると思います。

回答No.2

アルゴリズム次第ではないですか? A. フォームデータを受け取って、各データ処理をしながらHTMLデータを順次生成しているが エラーが発生したらそこまでの出力を取り消して、エラー専用のページを出力する→A方式 B. フォームデータがないとか、エラー処理はないとか エラーがあっても画面構成に変更がない場合→B方式 C. データによって可変する部分をチェックしてから HTMLを正常時とエラー時で分けて定義しておき、どちらを使うかをエラーの有無で切り替えて 順次出力する→事前チェック方式 D. データによって可変する部分だけを先に全部作っておき テンプレートとなるHTMLを読み込んで、可変部分を置き換えながら出力→ テンプレート方式 (エラー時はエラー専用テンプレート) 等々、いろいろやり方はあるでしょうけど どういう構成にするのかで、変わるのではないでしょうかね。 #ちなみに、タイトルからecho とprintのどちらを使えばよいのか、という話題なのかと思いましたが #関係ないんですね。。。

atlas112
質問者

お礼

ご回答ありがとうございます。 エラー時などの設計はまだ概要設計段階なので、ほとんど詰まっていません。ご参考にさせて頂きます。 タイトル、改めて読むと変ですね;; すいませんでした。

  • aspl21
  • ベストアンサー率25% (25/97)
回答No.1

どっちでもいいと言えばどっちでもいい。 ただし、Aは変数のバッファ数が大きくなるので、あまりよくない設計だとは思う。(だが、htmlはそれほど大きくないのでOKとする考え方もある)Bの方がデバックはしやすそうな気がする。 ※こんなことよりも、全体の設計の方が問題である。

atlas112
質問者

お礼

ご回答ありがとうございます。 「全体の設計が問題」というご指摘も頂けました。 ご参考にさせて頂きます。

関連するQ&A

  • echoとprintの使用について

    恥ずかしながらPHPの勉強を始めたばかりのものです。まずはPHP使いを夢見ています。今はHTMLを出力してる所です。 そこで気になったことがあります。 同じ(1つの)PHPファイルに echo と print を混ぜて使うことはあるものですか? やっぱりどっちかに統一させた方がいいんでしょうか? また、変数を使って表示させる場合が出た時は、printの方がいいんでしょうか? 最後になります。echoを使ってですが、文字と文字を繋げて使う接続詞?には、「,」と「.」をどちらも使えたんですが、echoに限ってはどっちも同じものなんでしょうか?違いはありますか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • "print"と"echo"の違いを教えてください

    PHPを始めた初心者なのですが、"print"と"echo"の使い道の違いがよく解りません。 調べてはみましたが、"print"は『文字列を出力する』、"echo"は『1つ以上の文字列を出力する』と書いてあり、意味が良く解りませんでした。 どなたか、ご存知でしたらご指導宜しくお願い致します。

    • 締切済み
    • PHP
  • phpでechoというのはなんですか?

    phpでechoというのはPythonでいうprintと同じものですか? あと、echoってどういう意味ですか?printはなんとなく出力するとわかりますが なんでechoなんでしょうか?

    • ベストアンサー
    • PHP
  • echoについて

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

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

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

    • 締切済み
    • PHP
  • phpプログラムにてすぐecho出力が出ない。

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

    • ベストアンサー
    • PHP
  • echoは命令なんですか? phpのechoの説

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

    • ベストアンサー
    • PHP
  • echoの直後に変数(文字列ではなく)を記述?

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

    • ベストアンサー
    • PHP
  • print_r以外の出力方法

    print_r以外の出力方法 print_rでは変数を指定しますが、 現在そのページで保持している変数(スコープの違い、配列など一切構わず)をすべて出力、もしくは確認できる関数はあるのでしょうか?

    • ベストアンサー
    • PHP
  • printの出力結果を変数に代入するには?

    PHP初心者です。 print関数で出力した文字を変数に代入するにはどうしたら良いのでしょうか?

    • 締切済み
    • PHP

専門家に質問してみよう