How to use a PHP heredoc as an array value?
heredoc, php
Solution
You can't end it with a semicolon at the end of the heredoc identifier. In PHP 7.2 and earlier the comma needs to be on a new line. It has to look like this:
$data = [
"x" => "y",
"foo" => "bar",
/* ... other values ... */
"idx" => <<<EOC
data data data data
data data data data
data data data data
EOC
, "z" => 9,
/* ... more values ... */
];
Problem
I've a larger piece of multi-line text that I need to put in an PHP associative array through a here-doc. It looks like this: ``` $data = [ "x" => "y", "foo" => "bar", /* ... other values ... */ "idx" => <<< EOC data data data data data data data data data data data data EOC; "z" => 9, /* ... more values ... */ ]; ``` I can't figure out how to provide `$data["idx"]` the multi-line text with a heredoc.