[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
);
スポンサーリンク