kenoli
March 16, 2014, 2:53am
1
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>';
}
kenoli
March 16, 2014, 6:32pm
3
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