• ベストアンサー

関数の返り値について。

thelmaの回答

  • thelma
  • ベストアンサー率66% (20/30)
回答No.4

「htmlを戻り値として返す必要があるのか、ないのか?」 をはっきりさせて頂けますか? 他の回答者の方にとっても、どうも曖昧なようなので。 関数の中で出力させて良いのでしたら、他の方が回答されているように、随時print(またはecho)すれば済むかと思います。 スクリプト中でHTMLをたくさん書くのが大変なら、Smartyのようなテンプレートエンジンを使うと良いと思います。 (Smartyについては、参考URLにあるサイトや書籍を参照してください) 戻り値として一連のHTML文字列を返す必要があるのであれば、たとえば#2で回答したように、適当な変数を定義して文字列を追加していく方法が採れると思います。 他に思いつくのは、別ファイルや定数などに、HTML文字列を記述しておいて、その中で動的に出力を生成する部分に適当なマークを入れておきます。 そして、HTML生成の処理で、マークを置換して文字列にあてはめるような方法でしょうか。 例えば、 define("HTML_SOURCE", "<html><body>#foo#</body></html>"); ... $returnHTML = str_replace("#foo#", "hello", HTML_SOURCE); return $returnHTML; というように。

参考URL:
http://smarty.php.net/,http://www.geocities.jp/rui_hirokawa/php/php-book2/

関連するQ&A

  • C言語 関数の戻り値について

    C言語で関数を作る場合に最後にreturnで戻り値を設定しますよね? 自分はあまりそれがわかりません。 関数で出た答えを返すって言うのはわかるんですが、 returnが無くても大丈夫だったりreturnはあってもその後に戻り値を設定していなかったり。 何故returnがなくても動作するのでしょうか? 何故returnまであるのに戻り値は設定されていないのか? 教えてください。

  • 配列を関数の戻り値に使う

    こんばんわ。 PHP5で配列を関数の戻り値として返す方法がわからず今回投稿させていただきました。 配列は1次元で 1,2,3 の値が a という配列に格納されています。 呼び出された関数(testメソッド)で a配列を返し、bで受けようとするのですが、bの値には NULL となっています。 返す際に return $a; としており、 $b=$obj-〉test(); で、aをbで受けようと考えております。 配列を返す場合は普通にretuneで返すだけではダメなのでしょうか。 解決方法がお分りの方がいらっしゃいましたらご教授のほうおねがいします。

    • ベストアンサー
    • PHP
  • 関数から戻り値を得る方法について

    知り合いの方から関数の戻り値をえるときにreturn以外に例えば File(&i,&k);←関数呼び出し int File(int **j, double *k)←関数 {      ~      ~ } とやると(double *k)は関数からの出力として、呼び出しているFile(&i,&k)の(&k)に返されると聞きました。しかも、戻り値はint File()のintに依存しないと言われて試してみたのですが、どうもうまくいきません。 正しいやり方知っている方いましたら、教えて下さい。あと複数戻り値を返したいときはどうすればいいんでしょうか?

  • 複数関数からの戻り値returnの指定

    いつもお世話になります。 ActionScrip3に関する質問です。 処理1が終わった段階で戻り値をreturnするという処理を 作成したく下記のように作りました。 流れとしては、関数func1の中に複数の処理があると仮定して、その一連の処理を完了させた 時点でevent.complete(処理完了)によりfunc2に移動し、func2から戻り値の値を 指定したいと考えております。 下記の処理を行ってもfunc1の中でreturnを指定していないので「関数は戻り値をかえしません」 というエラーになってしまいますが、下記の処理以外でも結構ですので、 「一定の処理完了後に戻り値(return)を発生」させる手段をご教授いただけないでしょうか? お手数ではありますが、何卒宜しくお願いいたします。 var bln:Boolean; bln = func1(); function func1():Boolean {  // ここに複数の処理があると仮定する  // 終了後イベント  addEventListener(event.COMPLETE, finish);    function finish() {   return false;  } }

    • ベストアンサー
    • Flash
  • main関数の戻り値

    C言語のmain関数の戻り値はint型ですよね。 私もそういう決まりだと思って守ってきました。 しかし、「mainが戻り値を返すって、どこに返すの?」ということが、私は理解できていません。 私が調べたところでは、「ホスト実行環境」という言葉がこの問題に関係あるようですが、この言葉の意味はよくわからないですし、似た言葉で「ホスト環境」ということばがあるのですが意味も関係もわかりません。 これらは、OSとは違うと思うんですが、自信はありません。 それでも、ない知識を振り絞っていろいろ考えてみると、次のようなことらしいのですが、正しいでしょうか。 ・OSはプログラムの実行に先立ちホスト実行環境を作る。 ・静的記憶域のオブジェクトを初期化するのはホスト実行環境である。 ・関数が、main関数を呼ぶことは可能である。(以下では、main関数が関数から呼ばれる場合は除く。) ・main関数を呼ぶのは、ホスト実行環境が行なう。 ・main関数の中のreturnによってプログラムが終了するのと、exit関数でプログラムが終了することに違いはない。 ・main関数の戻り値は、ホスト実行環境に返される。 ・returnによってホスト実行環境に返される値は、int型である限りなんでもよい。 ・exitによってホスト実行環境に返される値は、int型である限りなんでもよい。 ・必ずexitで値が返されるならば、main関数の中にreturnはなくてもよい。 main関数からの戻り値をどうしようと構わないんだと思うんですが、皆さんの経験の中で、実例としてこういうふうに使われる、というのは何かないのでしょうか。 (ホスト実行環境に値が返される、といっても無視するのでは意味はないと思うのです。 その値の使用例としては、 0が返ってくると「プログラムは正常終了しました。」と表示するとか、0以外の値が返されると別のプログラムが走るとか、 そういうことだと思うんですが。)

  • main関数の戻り値について

    c言語において、main関数の戻り値は何を意味しているのですか。 また、void型にすれば、main関数の戻り値を書かなくても問題無いでしょうか。 また、関数はreturn文を書かなくても、最後まで処理を実行すると終了するらしいですが、void型にすれば、main関数でreturn文を書かなくても問題無いでしょうか。

  • 関数戻り値が連想配列の場合

    こんにちわ。 PHP5について質問です。 あるユーザ関数の戻り値が連想配列である場合、 ユーザ関数の実行~戻値の特定のキーの値を取得 までを1行で取得する方法があれば教えてください。 例) function hoge() {  return array("fuga" => "1", "moge" => "2"); } ここで"moge"の値を一発で参照したいと考えています。 通常では、 $result = hoge(); print $result["moge"]; のようにしていますが、これを一行で実現できる方法はありますでしょうか。

    • ベストアンサー
    • PHP
  • プログラミングのreturnというのは関数なんです

    プログラミングのreturnというのは関数なんですか? この画像で。 戻り値?

    • ベストアンサー
    • PHP
  • C言語 exitで終了した関数の戻り値

    引数が負の整数であればエラーを表示し終了、0以上の整数であればそのまま戻り値とする関数 int example(int a) { if( a < 0 ) { printf("Error!\n");   exit(1); } return(a); } があったとします。 ここでたとえば  int s1,s2; に対して、 s1 = example(3); とすれば、 s1 = 3 となりますが、 s2 = example(-5); とすれば、 s2 には何が代入されているのでしょうか? 例に書いた関数はしょーもないものですが、 もう少し難しい関数を使って変数に値を入れて、その値で後でfor文などを使って仕分けていくようにしたいのですが、エラー時に代入されるものがわからなくて困っています。 エラー時のみに目印となる値、たとえば -1 などを戻り値とすることはできません。 おねがいします。

  • Excelの関数で

    お願いします。 Index関数とMatch関数を使用して表の中の値を求めようとしましたが、 検索行が複数あるため、うまくいきません。 検索する列は1列(a,b,c)ですが、検索行(あ、い、う~)が複数になっています。 更に空白もあります。 こんな感じ↓です。 ---------------------   あ  い   う   え      お   か ---------------------    a  10  20  30 b  40  50  60 c  70  80  90 --------------------- こういった場合にはどんな関数を使って一致する値を求めたら良いのでしょうか? 大変困っております。よろしくお願いします。