Heredoc error

With the code below, I am getting the following error:

Parse error: syntax error, unexpected '<<' (T_SL) in /Users/studio/Sites/f2-u.net/__views/view_intersections.php on line 10

Somehow the ‘<<<’ is not getting parsed as a heredoc construct. I’m sure I have some coding error, but I can’t see it. Is there some problem with using heredoc in a foreach loop??

Please help.

Thanks,

–Kenoli

The code:



<?php

$doit = new Db_actions;
$intersections = $doit->get_intersections($query);

foreach ($intersections as $key => $value) {

$intersection = $value['intersections'];

$content = <<<INFO   // This is line 10 where the error occurs

<tr>
		<td width="50%" >
			<input id="element_2_1" name="intersection[1]['place']" class="element checkbox" type="checkbox" value="1" />
			<label class="choice" for="element_2_1">$intersection</label>
		</td>
		<td width="50%" >
		<label class="description" for="element_9">Date </label>
		<span>
			<input id="element_9_1" name="intersection[1]['month']" class="element text" size="2" maxlength="2" value="" type="text"> /
			<label for="element_9_1">MM</label>
		</span>
		<span>
			<input id="element_9_2" name="intersection[1]['day']" class="element text" size="2" maxlength="2" value="" type="text"> /
			<label for="element_9_2">DD</label>
		</span>
		<span>
	 		<input id="element_9_3" name="intersection[1]['year']" class="element text" size="4" maxlength="4" value="" type="text">
			<label for="element_9_3">YYYY</label>
		</span>
		</td>
		</tr>


INFO;

echo $content;
	
}




?>


Try this and note the comments before and after the heredoc declaration:



<?php  
  error_reporting(-1); ini_set('display_errors',1);


  // $doit = new Db_actions;
  // $intersections = $doit->get_intersections($query);


  $intersections = array(1,2,3);
  foreach ($intersections as $key => $value)
  {
    $intersection = $value['intersections'];


[COLOR=#ff0000][B]/* ESSENTIAL - MUST BE NO SPACES BEFORE $content AND NO SPACES AFTER INFO */[/B][/COLOR]
$content = <<< INFO
  <tr>
      <td width="50%" >
        <input id="element_2_1" name="intersection[1]['place']" class="element checkbox" type="checkbox" value="1" />
        <label class="choice" for="element_2_1">$intersection</label>
      </td>
      <td width="50%" >
      <label class="description" for="element_9">Date </label>
      <span>
        <input id="element_9_1" name="intersection[1]['month']" class="element text" size="2" maxlength="2" value="" type="text"> /
        <label for="element_9_1">MM</label>
      </span>
      <span>
        <input id="element_9_2" name="intersection[1]['day']" class="element text" size="2" maxlength="2" value="" type="text"> /
        <label for="element_9_2">DD</label>
      </span>
      <span>
        <input id="element_9_3" name="intersection[1]['year']" class="element text" size="4" maxlength="4" value="" type="text">
        <label for="element_9_3">YYYY</label>
      </span>
      </td>
      </tr>
INFO;
[COLOR=#ff0000][B]/* ESSENTIAL - MUST BE NO SPACES BEFORE INFO AND NO SPACES AFTER ; */[/B][/COLOR]


  echo '<table>' .$content .'<table>';
}  



Thanks. There was a space after INFO. Go figure.

PHP is usually more forgiving than that.

Least it was an easy fix (after an hour of beating my had against the wall yesterday).

–Kenoli