Re: Trying to understand what is happening in this code
| From: | Jim Giner | Date: | Fri, 11 Oct 2013 17:52:57 +0000 |
| Subject: | Re: Trying to understand what is happening in this code | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-322284@lists.php.net to get a copy of this message | ||
On 10/11/2013 11:01 AM, Nathan Grey wrote:
Hi - I am new to PHP so this is probably a very rudimentary question. I posed it over at Stack Overflow and got several responses but none of them clarified the issue for me. http://stackoverflow.com/questions/19309369/trying-to-understand-how-these-php-sections-work-together Here's the code I am trying to understand: <body>How about this? <? $ulist = "<h1>The first twenty Fibonacci numbers:</h1>"; $ulist .= "<ul>"; $first = 0; $second = 1; for ($i = 0; $i < 20; $i++) {<h1>The first twenty Fibonacci numbers:</h1> <ul> <?php $first = 0; $second = 1; for ($i = 0; $i < 20; $i++) { ?> <li><?php echo $first + $second ?></li> <?php $temp = $first + $second; $first = $second; $second = $temp;} ?> </ul></body>This code produces an unordered list of the first 20 Fibonacci numbers. I understand that HTML and PHP can be interspersed. I also understand that the PHP processor will look over the code and pick up the code that is between the opening and closing PHP tags. Here's where I am confused: 1. Can the processor really reassemble a for-loop that is broken into segments by opening and closing tags? It seems like the integrity of the loop would be broken. I would expect that the entire loop would have to be contained within a single pair of opening and closing tags for it to work. 2. Even if the processor is able to reassemble the loop seamlessly, how do the <li> tags get included in the loop since they fall outside of the PHP tags? Thanks for your help. Nathan ----------------------------- Nathan Grey Perhaps this whole long discussion could have been prevented if you DIDN'T intersperse the php and html. Code (IMHO) is much easier to read and write when you separate the logic from the presentation.
$temp = $first + $second;
$ulist.= "<li>$temp</li>";
$first = $second;
$second = $temp;
}
$ulist .= "</ul>";
.
.
.
finish processing
.
.
DisplayPage($ulist);
exit();
//********************
//********************
//********************
function DisplayPage($ulist)
{
$code =<<<heredocs
(std. html startup lines)
<body>
.
.
$ulist
.
(rest of html, etc.)
.
.
</body>
</html>
heredocs;
echo $code;
return
}
?>
All done with one pair of php tags. and logic and presentation separated.