Bird
Raised Fist0
PHPprogramming~20 mins

Why global state is dangerous in PHP - Challenge Your Understanding

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Global State Mastery in PHP
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this PHP code with global state?

Consider this PHP code that uses a global variable. What will it print?

PHP
<?php
$counter = 0;
function increment() {
    global $counter;
    $counter++;
}
increment();
increment();
echo $counter;
?>
A2
B0
C1
DError: Undefined variable
Attempts:
2 left
💡 Hint

Remember that global keyword allows access to the variable outside the function.

🧠 Conceptual
intermediate
1:30remaining
Why can global state cause bugs in PHP?

Which of the following is the main reason global state is dangerous in PHP?

AGlobal variables are slower to access than local variables
BGlobal variables can be changed anywhere, making code unpredictable
CPHP does not support global variables
DGlobal variables automatically reset after each function call
Attempts:
2 left
💡 Hint

Think about how many parts of a program can change a global variable.

🔧 Debug
advanced
2:00remaining
What error does this PHP code cause due to global state misuse?

Look at this PHP code snippet. What error will it produce?

PHP
<?php
function addOne() {
    $count++;
}
addOne();
echo $count;
?>
AParse error: syntax error
BFatal error: Cannot access global variable
CNotice: Undefined variable $count
DOutput: 1
Attempts:
2 left
💡 Hint

Is $count defined inside the function?

🚀 Application
advanced
2:00remaining
How to avoid global state issues in PHP?

Which approach helps avoid problems caused by global state in PHP?

AUse function parameters and return values instead of global variables
BDeclare all variables as global to keep them consistent
CUse global variables only inside classes
DAvoid using functions to keep variables local
Attempts:
2 left
💡 Hint

Think about how to keep data flow clear and controlled.

❓ Predict Output
expert
2:30remaining
What is the output of this PHP code demonstrating global state side effects?

Analyze this PHP code. What will it output?

PHP
<?php
$val = 5;
function multiply() {
    global $val;
    $val *= 2;
}
multiply();
multiply();
echo $val;
?>
A10
BError: Undefined variable
C5
D20
Attempts:
2 left
💡 Hint

Each call doubles the value of $val.

Practice

(1/5)
1. Why is using global variables considered dangerous in PHP?
easy
A. Because they can be changed anywhere, causing unexpected bugs
B. Because they make the code run faster
C. Because they prevent the use of functions
D. Because they automatically encrypt data

Solution

  1. Step 1: Understand what global variables do

    Global variables can be accessed and modified from any part of the program.
  2. Step 2: Identify the risk of global variables

    Since they can be changed anywhere, it is easy to accidentally overwrite or misuse them, leading to bugs that are hard to find.
  3. Final Answer:

    Because they can be changed anywhere, causing unexpected bugs -> Option A
  4. Quick Check:

    Global variables cause unexpected bugs [OK]
Hint: Global variables can be changed anywhere, causing bugs [OK]
Common Mistakes:
  • Thinking global variables improve performance
  • Believing global variables prevent function use
  • Assuming global variables encrypt data automatically
2. Which of the following is the correct way to access a global variable inside a PHP function?
easy
A. Declare the variable again inside the function
B. Use the global keyword inside the function
C. Use static keyword inside the function
D. Use const keyword inside the function

Solution

  1. Step 1: Recall PHP syntax for accessing global variables

    In PHP, to access a global variable inside a function, you must declare it with the global keyword.
  2. Step 2: Understand why other options are incorrect

    Declaring the variable again inside the function creates a new local variable. static keeps value between calls but does not access global. const defines constants, not variables.
  3. Final Answer:

    Use the global keyword inside the function -> Option B
  4. Quick Check:

    Access global variable in function = global keyword [OK]
Hint: Use 'global' keyword inside function to access globals [OK]
Common Mistakes:
  • Redeclaring variable inside function thinking it accesses global
  • Using static or const keywords incorrectly
  • Forgetting to declare global keyword inside function
3. What will be the output of this PHP code?
$count = 5;
function increment() {
global $count;
$count++;
}
increment();
echo $count;
medium
A. 5
B. Nothing is printed
C. Error: Undefined variable
D. 6

Solution

  1. Step 1: Understand the global keyword usage

    The function declares global $count; which means it uses the global variable $count defined outside.
  2. Step 2: Trace the code execution

    The global $count starts at 5, the function increments it by 1, so $count becomes 6. Then echo $count; prints 6.
  3. Final Answer:

    6 -> Option D
  4. Quick Check:

    Global increment changes $count to 6 [OK]
Hint: Global keyword lets function modify external variable [OK]
Common Mistakes:
  • Thinking $count inside function is local without global keyword
  • Expecting output 5 because of misunderstanding scope
  • Assuming code causes error due to variable scope
4. Identify the problem in this PHP code related to global state:
$value = 10;
function changeValue() {
$value = 20;
}
changeValue();
echo $value;
medium
A. The function changes the global variable correctly
B. The code will cause a syntax error
C. The function does not change the global variable because it lacks the global keyword
D. The variable $value is undefined

Solution

  1. Step 1: Analyze variable scope in the function

    Inside the function, $value = 20; creates a new local variable, not affecting the global $value.
  2. Step 2: Understand why global keyword is needed

    Without declaring global $value; inside the function, the global variable remains unchanged.
  3. Final Answer:

    The function does not change the global variable because it lacks the global keyword -> Option C
  4. Quick Check:

    Missing global keyword means global variable unchanged [OK]
Hint: Without 'global', function changes local variable only [OK]
Common Mistakes:
  • Assuming function changes global variable without global keyword
  • Expecting syntax error when none occurs
  • Thinking $value is undefined outside function
5. You have a PHP script that uses a global variable $config to store settings. Why is this approach risky, and what is a better alternative?
hard
A. Global $config can be changed anywhere causing bugs; better to pass it as a function parameter
B. Global variables are faster; no alternative needed
C. Global $config encrypts data automatically; better to use global for security
D. Global variables prevent code reuse; better to use global constants instead

Solution

  1. Step 1: Understand risks of global variables for configuration

    Global $config can be modified anywhere, leading to unexpected changes and bugs.
  2. Step 2: Identify better practice

    Passing $config explicitly as a function parameter keeps control clear and avoids accidental changes.
  3. Final Answer:

    Global $config can be changed anywhere causing bugs; better to pass it as a function parameter -> Option A
  4. Quick Check:

    Pass config as parameter to avoid global bugs [OK]
Hint: Pass config as parameter instead of using global variable [OK]
Common Mistakes:
  • Believing global variables improve speed or security
  • Thinking global constants solve all global state issues
  • Ignoring risks of accidental global variable changes
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