[PHP] 配列へのヒアドキュメントまたはNowdocの追加
スポンサーリンク
PHPで配列にヒアドキュメント(またはNowdoc)を代入する方法のメモ。
普通に代入
$a[] =<<< EOF テスト EOF;
array()
を使って代入
$a = array( 'test', <<< EOF ヒアドキュメントで代入 EOF , 'ポイントはカンマを終了識別子の後ろに書かないこと' );
初めてヒアドキュメントを配列に代入しようとした時、ここでつまづいた。終了識別子の後ろにカンマをつけるとエラーになるのだが、それに気づかず時間を無駄にしてしまった。
ヒアドキュメントにおいて、終了識別子の後ろにはセミコロンのみが記載可能なのであって、カンマをつけるとエラーになるのだ。
$a = array( 'test', <<< EOF 終了識別子の後ろにカンマを書くと、、、 EOF, 'エラーになる!!' );
感覚的には上の書き方をしてしまいがちだと思うのですが、これだとエラーになってしまいます。
Nowdoc
$a = array( 'test', <<< 'EOF' nowdocもいける EOF , 'test' );
基本的にヒアドキュメントと同じです。
連想配列
$a = array( 'foo' => 'test', 'heardocument' => <<< EOF ヒアドキュメントを連想配列に代入 EOF , 'nowdoc' => <<< 'EOF' Nowdocを連想配列に代入 EOF , 'bar' => 'OK' );
=> <<<
と奇妙な感じに。
関数を使って代入
$a = array('foo', 'bar'); array_push($a, <<< EOF こんなんするなって話ですが EOF );
スポンサーリンク