• ベストアンサー

ヒアドキュメントでオブジェクトの呼び出し

こんにちわ。 PHP Version 4.4.9で勉強をしているのですが、 ヒアドキュメント内で作成したオブジェクトを呼び出すと syntax error, unexpected とエラーになります。 調べてみらるとヒアドキュメント内でメンバ変数を呼び出すことはできるみたいなのですが、オブジェクトを呼び出すことはできないのですか? SQLで取得したデータを表で表示しようとしています。 =============ソース==================================== $com_cls = new com_cls(); //dateフォーマットの変更クラス foreach($sql_hyo_arr as $key => $val){ $sql_hyo .= <<<EOF <tr> <td rowspan="2" class="text_01">{$com_cls->printdata($val['month'])}</td> <td rowspan="2" class="text_01">{$com_cls->printdata($val['day'])}</td> <td rowspan="2" class="text_01">{$com_cls->printdata($week)}</td> EOF; } =============ここまで=================================== ヒアドキュメントの外で先にオブジェクトを実行すればいいのは、わかっていますが、このままできる方法がないのか知りたいです。 どうか、ご教授をお願いします。

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

  • ベストアンサー
  • nick9090
  • ベストアンサー率26% (102/378)
回答No.4

そもそもヒアドキュメント内ではメソッドや関数は使えないと思います。

amountainblast
質問者

お礼

ありがとうございます。 どうにもこの使い方は無理っぽいですね。 何回も親切に回答して頂きありがとうございました。

その他の回答 (4)

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.5

>printdata内で >function disp_nl2br($Value){  略 >としているのが原因なのでしょうか? 関数内に関数宣言書いたらエラーになります。 エラーになった関数を呼び出しても、オブジェクトの内部関数と認識できないのでそこでエラー表示されてるんでしょう。 たぶん、もう一行ほんとのエラー行を示すエラー表示も出てると思うんだけど。

amountainblast
質問者

お礼

ありがとうございます。 どうにもこの使い方は無理っぽいですね。 何回も親切に回答して頂きありがとうございました。

  • nick9090
  • ベストアンサー率26% (102/378)
回答No.3

>Parse error: syntax error, unexpected '(', expecting '}' in 繰り返し言いますが、エラーメッセージを勝手に省略しないでね。 それじゃ答えようがないですよ。 その「in」の後に続く文字列をもう一回よく見てください。 一番最後に、何行目が問題なのか書いてあるでしょう。

amountainblast
質問者

補足

何度もすみません。エラーメッセージは Parse error: syntax error, unexpected '(', expecting '}' in /home/XXX/XXX/html/class_test.php on line 261 となっています。 261行目は <td rowspan="2" class="text_01">{$com_cls->printdata($week)}</td> の部分です。 しかしヒアドキュメントの外で $week = $com_cls->printdata($week) とし、ヒアドキュメントで <td rowspan="2" class="text_01">{$week}</td> としてもエラーはでません。

  • nick9090
  • ベストアンサー率26% (102/378)
回答No.2

>syntax error, unexpected エラーメッセージは上記だけではなかったでしょう? 一部だけ抜粋せずに全部掲載しないと。

amountainblast
質問者

補足

ご回答ありがとうございます。 返信が遅くなってすみません。 エラーメッセージは Parse error: syntax error, unexpected '(', expecting '}' in とでます。 printdata内で function printdata($Value){ return (nl2br($Value)); } としているのが原因なのでしょうか?

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.1

ご呈示の記述は、問題なさそうですけど、ほんとにその行でエラーが出ているのですか? 手前の行で最後の ; を忘れた時にも、syntax errorが出ますけど。

amountainblast
質問者

補足

ご回答ありがとうございます。 返信が遅くなってすみません。 エラーはこの行で出ています。 {$com_cls->printdata($week)}を {$week}にすると正常に表示されます。 printdata内で function disp_nl2br($Value){ return (nl2br($Value)); } としているのが原因なのでしょうか? エラーメッセージは Parse error: syntax error, unexpected '(', expecting '}' in とでます。

関連するQ&A

専門家に質問してみよう