$_GET lets you get information from the website address (URL). It helps your program know what the user wants by reading the details after the question mark in the URL.
$_GET for URL parameters in PHP
<?php
$value = $_GET['key'];
?>$_GET is a special PHP array that holds all the URL parameters.
Each parameter is accessed by its name inside square brackets as a string.
<?php $name = $_GET['name']; echo "Hello, $name!"; ?>
<?php $page = $_GET['page'] ?? 'home'; echo "You are on the $page page."; ?>
<?php $age = $_GET['age']; if ($age >= 18) { echo "You are an adult."; } else { echo "You are a minor."; } ?>
This program reads 'color' and 'size' from the URL and shows them. If they are missing, it says 'unknown'.
<?php // Example URL: example.com?color=blue&size=large $color = $_GET['color'] ?? 'unknown'; $size = $_GET['size'] ?? 'unknown'; echo "Color: $color\n"; echo "Size: $size\n"; ?>
Always check if a $_GET parameter exists before using it to avoid errors.
URL parameters are visible to users, so do not put sensitive information there.
Use htmlspecialchars() to safely show $_GET values on the page to avoid security issues.
$_GET reads information from the URL after the question mark.
It helps your PHP code know what the user wants or chose.
Always check if parameters exist and be careful with security.
Practice
$_GET superglobal do?Solution
Step 1: Understand the purpose of
$_GET$_GETis used to get data sent through the URL query string, which comes after the question mark.Step 2: Compare with other PHP superglobals
$_POSTis 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 AQuick Check:
$_GETreads URL parameters [OK]
$_GET reads URL after '?' [OK]- Confusing
$_GETwith$_POST - Thinking
$_GETstores session data - Assuming
$_GETconnects to databases
id using $_GET in PHP?Solution
Step 1: Recall PHP array syntax for superglobals
$_GETis 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 DQuick Check:
Use square brackets and quotes for$_GETkeys [OK]
- Using arrow (->) instead of brackets
- Missing the dollar sign ($)
- Using wrong variable names like $GET
page.php?name=Alice?
<?php echo 'Hello, ' . $_GET['name']; ?>
Solution
Step 1: Identify the URL parameter
The URL hasname=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 AQuick Check:
URL param 'name' = 'Alice' outputs greeting [OK]
- Assuming empty output if parameter exists
- Confusing undefined index error when parameter is present
- Thinking code causes syntax error
<?php echo 'User ID: ' . $_GET['user_id']; ?>What is the main problem if the URL does not include
user_id parameter?Solution
Step 1: Understand accessing missing
Accessing$_GETkeys$_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 BQuick Check:
Missing$_GETkey triggers Notice [OK]
- Assuming no error if parameter missing
- Thinking it causes fatal error
- Expecting automatic default values
page and show it, but if it is missing, show 'home' instead. Which PHP code correctly does this?Solution
Step 1: Understand safe
To safely access URL parameters without triggering 'undefined index' notices, use$_GETaccessisset()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 CQuick Check:
isset ternary avoids notice for missing $_GET keys [OK]
- Using ?? which still triggers undefined index notice
- Wrong ternary order
- Using || which triggers notice and handles empty strings wrong
Ready to prove it?
Pass the test and this pattern moves unknown
