Bird
Raised Fist0
PHPprogramming~5 mins

Global keyword behavior in PHP - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Global keyword behavior
O(1)
Understanding Time Complexity

Let's explore how using the global keyword affects the time it takes for PHP code to run.

We want to see how the program's steps grow when accessing global variables inside functions.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


<?php
$count = 0;
function increment() {
    global $count;
    for ($i = 0; $i < 1000; $i++) {
        $count++;
    }
}
increment();
?>
    

This code uses the global keyword to access a variable outside the function and increments it 1000 times.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: The for loop that runs 1000 times.
  • How many times: The loop runs exactly 1000 times each time the function is called.
How Execution Grows With Input

Explain the growth pattern intuitively.

Input Size (n)Approx. Operations
1010 increments
100100 increments
10001,000 increments

Pattern observation: The number of steps grows directly with the number of times the loop runs, so doubling the loop doubles the work.

Final Time Complexity

Time Complexity: O(1)

This means the time to run is constant because the loop runs a fixed 1000 times regardless of input size.

Common Mistake

[X] Wrong: "Using global makes the code slower because it searches the whole program every time."

[OK] Correct: Accessing a global variable with global is a simple reference and does not add extra loops or searches; the main time cost is still the loop itself.

Interview Connect

Understanding how global variables affect performance helps you write clear and efficient code, a skill valued in many programming tasks.

Self-Check

"What if we replaced the global keyword with passing the variable as a function argument? How would the time complexity change?"

Practice

(1/5)
1. What does the global keyword do in PHP?
easy
A. It deletes a variable from the global scope.
B. It creates a new local variable inside the function.
C. It makes a variable constant and unchangeable.
D. It allows a function to access variables defined outside its scope.

Solution

  1. Step 1: Understand variable scopes in PHP

    Variables defined outside functions are in the global scope and not accessible inside functions by default.
  2. Step 2: Role of the global keyword

    The global keyword inside a function tells PHP to use the variable from the global scope instead of creating a new local one.
  3. Final Answer:

    It allows a function to access variables defined outside its scope. -> Option D
  4. Quick Check:

    global keyword = access outside variables [OK]
Hint: Global lets functions use outside variables directly [OK]
Common Mistakes:
  • Thinking global creates a new variable inside the function
  • Assuming global deletes variables
  • Confusing global with constants
2. Which of the following is the correct way to use the global keyword inside a function to access a variable $count defined outside?
easy
A. global $count;
B. use $count;
C. global($count);
D. extern $count;

Solution

  1. Step 1: Recall PHP syntax for global variables

    In PHP, to access a global variable inside a function, you write global $variableName; without parentheses.
  2. Step 2: Check each option

    global $count; uses correct syntax. use $count; is invalid in PHP. global($count); uses parentheses which is incorrect. extern $count; uses 'extern' which is not a PHP keyword.
  3. Final Answer:

    global $count; -> Option A
  4. Quick Check:

    Correct syntax = global $var; [OK]
Hint: Use 'global $var;' without parentheses inside functions [OK]
Common Mistakes:
  • Adding parentheses after global
  • Using 'use' or 'extern' keywords incorrectly
  • Forgetting the $ sign before variable name
3. What will be the output of the following PHP code?
$x = 5;
function test() {
global $x;
$x = $x + 10;
}
test();
echo $x;
medium
A. 15
B. 5
C. 10
D. Error

Solution

  1. Step 1: Understand the initial value of $x

    $x is set to 5 in the global scope before the function call.
  2. Step 2: Effect of the function test()

    Inside test(), global $x; makes $x inside the function refer to the global $x. Then $x is increased by 10, so $x becomes 15 globally.
  3. Final Answer:

    15 -> Option A
  4. Quick Check:

    global $x modified to 15 [OK]
Hint: global lets function change outside variable value [OK]
Common Mistakes:
  • Thinking $x inside function is local and unchanged
  • Expecting output 5 or 10 instead of 15
  • Assuming error due to global keyword
4. Identify the error in this PHP code snippet:
$count = 10;
function increment() {
$count = $count + 1;
}
increment();
echo $count;
medium
A. Variable $count is undefined.
B. Syntax error in function declaration.
C. Missing global keyword inside function to access $count.
D. Cannot echo variable outside function.

Solution

  1. Step 1: Check variable scope inside function

    Inside increment(), $count is treated as a new local variable, not the global one.
  2. Step 2: Missing global keyword

    To modify the global $count, the function must declare global $count; before using it.
  3. Final Answer:

    Missing global keyword inside function to access $count. -> Option C
  4. Quick Check:

    global needed to access outside variable [OK]
Hint: Declare global inside function to modify outside variable [OK]
Common Mistakes:
  • Assuming $count inside function is global by default
  • Thinking echo outside function causes error
  • Confusing syntax errors with scope errors
5. Given the code below, what will be the output?
$a = 3;
$b = 4;
function sum() {
global $a, $b;
$b = $a + $b;
}
sum();
echo $b;

What if global $a, $b; is replaced with global $a; only?
hard
A. Output is 7 in both cases.
B. Output is 7 with global $a, $b; and 4 with global $a; only.
C. Output is 4 with global $a, $b; and 7 with global $a; only.
D. Code causes error without global $b;.

Solution

  1. Step 1: When using global $a, $b;

    Both $a and $b inside the function refer to global variables. $b is updated to 3 + 4 = 7 globally.
  2. Step 2: When using global $a; only

    $a inside function is global, but $b is local and uninitialized. So $b = $a + $b uses local $b (null or 0), $b becomes 3 + 0 = 3 locally, global $b remains 4. echo $b outputs global $b which is 4.
  3. Final Answer:

    Output is 7 with global $a, $b; and 4 with global $a; only. -> Option B
  4. Quick Check:

    global vars must be declared to modify them [OK]
Hint: Declare all globals you want to use inside function [OK]
Common Mistakes:
  • Assuming global $a; also makes $b global
  • Expecting output 7 without declaring global $b
  • Thinking missing global causes syntax error
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