Bird
Raised Fist0
PHPprogramming~10 mins

PHP process model per request - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - PHP process model per request
Client sends HTTP request
↓
Web server receives request
↓
Web server starts PHP process
↓
PHP process initializes environment
↓
PHP executes script from start to end
↓
PHP sends output to web server
↓
Web server sends response to client
↓
PHP process ends and cleans up
Each HTTP request starts a new PHP process that runs the script fully, then ends, sending output back to the client.
Execution Sample
PHP
<?php
// Simple PHP script
echo "Hello, world!";
This script runs once per request, outputs text, then the PHP process ends.
Execution Table
StepActionState/OutputNotes
1Client sends HTTP requestRequest received by web serverStart of process
2Web server starts PHP processNew PHP process createdIsolated environment for this request
3PHP initializes environmentVariables, settings readyFresh start for each request
4PHP executes scriptOutputs 'Hello, world!'Script runs top to bottom
5PHP sends output to web serverOutput buffered and sentResponse ready for client
6Web server sends responseClient receives 'Hello, world!'End user sees output
7PHP process endsMemory and resources freedNo state saved for next request
💡 PHP process ends after script execution, no persistent state kept.
Variable Tracker
VariableStartAfter script executionFinal
Output bufferEmpty"Hello, world!"Sent and cleared
MemoryCleanUsed during scriptFreed after process ends
Key Moments - 3 Insights
Why does PHP start a new process for each request?
Because PHP is designed to run scripts fresh each time, ensuring no leftover data or state from previous requests, as shown in execution_table steps 2 and 7.
Does PHP keep variables or data between requests?
No, each PHP process ends after the request, clearing all variables and memory (see execution_table step 7 and variable_tracker).
What happens to the output generated by PHP?
The output is buffered during script execution and sent to the web server, which then sends it to the client (execution_table steps 4 and 5).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, at which step does PHP send the output to the web server?
AStep 5
BStep 4
CStep 6
DStep 7
💡 Hint
Check the 'Action' column in execution_table row 5.
According to variable_tracker, what happens to memory after the PHP process ends?
AMemory is kept for next request
BMemory is freed
CMemory is doubled
DMemory is saved to disk
💡 Hint
Look at the 'Memory' row in variable_tracker, final column.
If PHP did not start a new process per request, what would change in the execution flow?
AWeb server would not receive requests
BOutput would not be sent
CStep 7 would not free memory
DClient would not send requests
💡 Hint
Consider the importance of process cleanup in execution_table step 7.
Concept Snapshot
PHP process model per request:
- Each HTTP request starts a new PHP process
- PHP runs the script from start to end
- Output is sent to the web server
- Process ends, freeing all memory
- No data persists between requests
Full Transcript
When a client sends an HTTP request, the web server starts a new PHP process. This process initializes a fresh environment and runs the PHP script from top to bottom. The script generates output, which PHP sends back to the web server. The web server then sends this response to the client. After the script finishes, the PHP process ends and frees all memory and variables. This means PHP does not keep any data between requests, ensuring each request is handled independently.

Practice

(1/5)
1. What happens to PHP variables after a web request finishes?
easy
A. They become global variables accessible by all users
B. They keep their values for the next request automatically
C. They are stored permanently in the server memory
D. They are reset and lost unless saved externally

Solution

  1. Step 1: Understand PHP request lifecycle

    PHP starts fresh for each request, so variables exist only during that request.
  2. Step 2: Identify variable persistence

    Variables reset after request ends unless saved in sessions or databases.
  3. Final Answer:

    They are reset and lost unless saved externally -> Option D
  4. Quick Check:

    PHP variables reset each request = D [OK]
Hint: Remember: PHP starts fresh every request, no variable memory [OK]
Common Mistakes:
  • Thinking variables persist automatically between requests
  • Confusing PHP with long-running server processes
  • Assuming global variables keep values across users
2. Which PHP code snippet correctly shows the start of a new request process?
easy
A.
B.
C.
D.

Solution

  1. Step 1: Analyze variable initialization

    In a new request, variables start fresh; $count = 0 sets it properly.
  2. Step 2: Check other options for persistence

    Options A, B, D try to increment without initialization or rely on static/session which need extra setup.
  3. Final Answer:

    <?php $count = 0; echo $count; ?> -> Option C
  4. Quick Check:

    New request means fresh variables = C [OK]
Hint: Fresh request means variables start from scratch [OK]
Common Mistakes:
  • Assuming static variables keep value across requests
  • Using session without starting it
  • Incrementing uninitialized variables
3. What will be the output of this PHP code when run twice in separate requests?
<?php
session_start();
if (!isset($_SESSION['visits'])) {
  $_SESSION['visits'] = 1;
} else {
  $_SESSION['visits']++;
}
echo $_SESSION['visits'];
?>
medium
A. 1 then 2
B. 1 then 1
C. 2 then 3
D. Error on second request

Solution

  1. Step 1: Understand session persistence

    Session data keeps values across requests, so visits count increases.
  2. Step 2: Trace two requests

    First request sets visits=1; second request increments to 2.
  3. Final Answer:

    1 then 2 -> Option A
  4. Quick Check:

    Session stores visits count = 1 then 2 [OK]
Hint: Sessions keep data between requests, variables do not [OK]
Common Mistakes:
  • Thinking variables persist without sessions
  • Forgetting to call session_start()
  • Expecting static variables to persist across requests
4. Identify the error in this PHP code snippet that tries to keep a counter across requests:
<?php
$count = 0;
$count++;
echo $count;
?>
medium
A. Variables reset each request, so counter never increases
B. Syntax error due to missing semicolon
C. Session not started, so counter is undefined
D. Static variable needed to keep count

Solution

  1. Step 1: Check variable behavior per request

    $count is set to 0 every time, so increment always starts fresh.
  2. Step 2: Identify persistence issue

    Without sessions or external storage, counter resets each request.
  3. Final Answer:

    Variables reset each request, so counter never increases -> Option A
  4. Quick Check:

    Variables reset each request = A [OK]
Hint: Variables reset each request; use sessions to persist [OK]
Common Mistakes:
  • Assuming static variables persist across requests
  • Confusing syntax errors with logic errors
  • Forgetting to start sessions for persistence
5. You want to count unique visitors to your PHP website. Which approach correctly uses PHP's process model per request to achieve this?
hard
A. Use a static variable in PHP script to count visitors
B. Store visitor count in a database and increment on each request
C. Increment a PHP variable without sessions or storage
D. Rely on PHP variables to keep count across requests

Solution

  1. Step 1: Understand PHP process model limits

    PHP variables reset each request, so they can't keep visitor count.
  2. Step 2: Identify persistent storage method

    Database stores data permanently and can be updated each request.
  3. Final Answer:

    Store visitor count in a database and increment on each request -> Option B
  4. Quick Check:

    Persistent storage needed for visitor count = A [OK]
Hint: Use database or sessions to save data beyond request [OK]
Common Mistakes:
  • Using static or normal variables expecting persistence
  • Ignoring need for external storage
  • Confusing sessions with static variables
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard