Re: Trying to understand what is happening in this code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11 Oct 2013, at 16:01, Nathan Grey <greynng@xxxxxxxxx> 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>
>    <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?

Probably the easiest way to understand what's happening is to assume that PHP converts anything in the file that's outside PHP tags in to echo statements, and then executes the result. This isn't too far from what actually happens.

PHP compiles any script in to bytecodes, which it then executes. Anything outside PHP tags does, essentially, get passed in to the echo language construct.

Does that help at all?

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php






[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux