📖 Scenario: You are building a simple PHP page that greets users by their name passed in the URL.
🎯 Goal: Create a PHP script that reads a name parameter from the URL using $_GET and displays a greeting message.
📋 What You'll Learn
Create a PHP variable to store the name parameter from $_GET
Set a default value if the name parameter is not provided
Display a greeting message using the name variable
💡 Why This Matters
🌍 Real World
Reading URL parameters is common in web pages to customize content based on user input or links.
💼 Career
Understanding how to use <code>$_GET</code> is essential for PHP web developers to handle user requests and build dynamic websites.
Progress0 / 4 steps
1
Create a PHP variable to get the name parameter from the URL
Write a line of PHP code to create a variable called name that gets the value from $_GET['name'].
PHP
Hint
Use $name = $_GET['name']; to get the URL parameter.
2
Add a default value if name is not set in the URL
Add a line of PHP code to set $name to "Guest" if $_GET['name'] is not set or empty.
PHP
Hint
Use empty() to check if $name has no value and assign "Guest" if true.
3
Create a greeting message using the name variable
Write a line of PHP code to create a variable called greeting that stores the string "Hello, " followed by the value of $name.
PHP
Hint
Use the dot . operator to join strings in PHP.
4
Display the greeting message
Write a line of PHP code to print the $greeting variable.
PHP
Hint
Use print($greeting); to show the message on the page.
Practice
(1/5)
1. What does the PHP $_GET superglobal do?
easy
A. It retrieves data sent in the URL query string after the question mark.
B. It stores data sent via a form using the POST method.
C. It saves session data for the user.
D. It connects to a database.
Solution
Step 1: Understand the purpose of $_GET
$_GET is used to get data sent through the URL query string, which comes after the question mark.
Step 2: Compare with other PHP superglobals
$_POST is for form data sent via POST, sessions are stored in $_SESSION, and database connections use other functions.
Final Answer:
It retrieves data sent in the URL query string after the question mark. -> Option A
Quick Check:
$_GET reads URL parameters [OK]
Hint: Remember: $_GET reads URL after '?' [OK]
Common Mistakes:
Confusing $_GET with $_POST
Thinking $_GET stores session data
Assuming $_GET connects to databases
2. Which of the following is the correct way to access a URL parameter named id using $_GET in PHP?
easy
A. $_GET->id
B. $GET['id']
C. get['id']
D. $_GET['id']
Solution
Step 1: Recall PHP array syntax for superglobals
$_GET is an associative array, so parameters are accessed with square brackets and quotes.
Step 2: Check each option
$_GET['id'] uses correct syntax: $_GET['id']. Others use wrong syntax or variable names.
Final Answer:
$_GET['id'] -> Option D
Quick Check:
Use square brackets and quotes for $_GET keys [OK]
Hint: Use $_GET['param'] to get URL parameters [OK]
Common Mistakes:
Using arrow (->) instead of brackets
Missing the dollar sign ($)
Using wrong variable names like $GET
3. What will the following PHP code output if the URL is page.php?name=Alice?
<?php
echo 'Hello, ' . $_GET['name'];
?>
medium
A. Hello, Alice
B. Hello,
C. Notice: Undefined index: name
D. Syntax Error
Solution
Step 1: Identify the URL parameter
The URL has name=Alice, so $_GET['name'] will be 'Alice'.
Step 2: Understand the echo statement
The code concatenates 'Hello, ' with the value of $_GET['name'], so it prints 'Hello, Alice'.
Final Answer:
Hello, Alice -> Option A
Quick Check:
URL param 'name' = 'Alice' outputs greeting [OK]
Hint: Echo $_GET['param'] prints URL parameter value [OK]
Common Mistakes:
Assuming empty output if parameter exists
Confusing undefined index error when parameter is present
Thinking code causes syntax error
4. Consider this PHP code snippet:
<?php
echo 'User ID: ' . $_GET['user_id'];
?>
What is the main problem if the URL does not include user_id parameter?
medium
A. It will print 'User ID: ' with no value.
B. It will cause a Notice about undefined index.
C. It will cause a fatal error and stop the script.
D. It will automatically assign a default value.
Solution
Step 1: Understand accessing missing $_GET keys
Accessing $_GET['user_id'] when it is not set triggers a PHP Notice about undefined index.
Step 2: Differentiate error types
This is not a fatal error, so the script continues, but a warning appears. No default value is assigned automatically.
Final Answer:
It will cause a Notice about undefined index. -> Option B
Quick Check:
Missing $_GET key triggers Notice [OK]
Hint: Check if parameter exists before using $_GET['key'] [OK]
Common Mistakes:
Assuming no error if parameter missing
Thinking it causes fatal error
Expecting automatic default values
5. You want to safely get a URL parameter page and show it, but if it is missing, show 'home' instead. Which PHP code correctly does this?
hard
A. echo $_GET['page'] ?? 'home';
B. echo $_GET['page'] ? 'home' : $_GET['page'];
C. echo isset($_GET['page']) ? $_GET['page'] : 'home';
D. echo $_GET['page'] || 'home';
Solution
Step 1: Understand safe $_GET access
To safely access URL parameters without triggering 'undefined index' notices, use isset() to check if the key exists.
Step 2: Check each option
echo isset($_GET['page']) ? $_GET['page'] : 'home';: echo isset($_GET['page']) ? $_GET['page'] : 'home'; checks existence first, avoiding notices, and provides 'home' default if missing. echo $_GET['page'] ?? 'home'; (??) does NOT trigger a notice in PHP 7+, so this explanation is incorrect. However, echo $_GET['page'] ?? 'home'; is valid syntax and safe. echo $_GET['page'] ? 'home' : $_GET['page']; inverts ternary logic. D uses ||, triggers notice, and mishandles empty strings.
Final Answer:
echo isset($_GET['page']) ? $_GET['page'] : 'home'; -> Option C
Quick Check:
isset ternary avoids notice for missing $_GET keys [OK]
Hint: Use isset($_GET['param']) ? $_GET['param'] : 'default' [OK]
Common Mistakes:
Using ?? which still triggers undefined index notice
Wrong ternary order
Using || which triggers notice and handles empty strings wrong
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.