Bird
Raised Fist0
PHPprogramming~10 mins

Global namespace access in PHP - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to access the global variable inside the function.

PHP
<?php
$number = 10;
function showNumber() {
    global [1];
    echo $number;
}
showNumber();
?>
Drag options to blanks, or click blank then click option'
A$number
B$num
C$value
D$count
Attempts:
3 left
💡 Hint
Common Mistakes
Using a different variable name inside the function.
Not declaring the variable as global inside the function.
2fill in blank
medium

Complete the code to access the global variable using the $GLOBALS array.

PHP
<?php
$value = 5;
function printValue() {
    echo [1]['value'];
}
printValue();
?>
Drag options to blanks, or click blank then click option'
A$globals
B$GLOBALS
C$GLOBAL
D$global
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase or misspelled versions of $GLOBALS.
Trying to access the variable directly without $GLOBALS.
3fill in blank
hard

Fix the error in the code to correctly access the global variable inside the function.

PHP
<?php
$count = 3;
function showCount() {
    [1];
    echo $count;
}
showCount();
?>
Drag options to blanks, or click blank then click option'
A$count
Bcount
C$this->count
Dglobal $count
Attempts:
3 left
💡 Hint
Common Mistakes
Not declaring the variable as global inside the function.
Using the variable name without the dollar sign.
Trying to access the variable as an object property.
4fill in blank
hard

Fill both blanks to create a function that modifies a global variable.

PHP
<?php
$score = 0;
function increaseScore() {
    global [1];
    [2]++;
}
increaseScore();
echo $score;
?>
Drag options to blanks, or click blank then click option'
A$score
B$count
D$value
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names in the blanks.
Not declaring the variable as global before modifying it.
5fill in blank
hard

Fill all three blanks to access and modify a global variable using $GLOBALS.

PHP
<?php
$count = 1;
function addCount() {
    [1]['count'] = [2]['count'] + [3];
}
addCount();
echo $count;
?>
Drag options to blanks, or click blank then click option'
A$GLOBALS
C1
D2
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names instead of $GLOBALS.
Adding a wrong number or forgetting to add.

Practice

(1/5)
1. What does the leading backslash \ do when used before a function name inside a PHP namespace?
easy
A. It creates a new function inside the current namespace.
B. It comments out the function call.
C. It calls a function from the current namespace only.
D. It accesses the function from the global namespace.

Solution

  1. Step 1: Understand namespaces in PHP

    Namespaces group code to avoid name conflicts but can hide global functions.
  2. Step 2: Role of leading backslash

    The leading backslash tells PHP to look for the function in the global namespace, ignoring the current namespace.
  3. Final Answer:

    It accesses the function from the global namespace. -> Option D
  4. Quick Check:

    Leading backslash = global access [OK]
Hint: Leading \ means use global function, not namespaced one [OK]
Common Mistakes:
  • Thinking \ creates a new function
  • Assuming \ calls current namespace function
  • Confusing \ with escape character
2. Which of the following is the correct syntax to call the global strlen function inside a namespace?
easy
A. \strlen('test');
B. namespace\strlen('test');
C. strlen('test');
D. global strlen('test');

Solution

  1. Step 1: Identify global function call syntax

    To call a global function inside a namespace, prefix it with a backslash \.
  2. Step 2: Check each option

    \strlen('test'); uses \strlen('test'); which correctly calls the global strlen function.
  3. Final Answer:

    \strlen('test'); -> Option A
  4. Quick Check:

    Backslash before function = global call [OK]
Hint: Use \ before function name to call global version [OK]
Common Mistakes:
  • Omitting the leading backslash inside namespaces
  • Using 'global' keyword incorrectly
  • Trying to prefix with 'namespace' keyword
3. What will be the output of this PHP code?
namespace MyApp;
function strlen($str) {
    return 42;
}

echo strlen('hello');
echo "-";
echo \strlen('hello');
medium
A. 42-5
B. 5-5
C. 42-42
D. 5-42

Solution

  1. Step 1: Understand function calls inside namespace

    Calling strlen('hello') calls MyApp\strlen which returns 42.
  2. Step 2: Understand global function call

    Calling \strlen('hello') calls global strlen which returns length 5.
  3. Final Answer:

    42-5 -> Option A
  4. Quick Check:

    Namespaced strlen = 42, global strlen = 5 [OK]
Hint: No \ calls local, \ calls global function [OK]
Common Mistakes:
  • Assuming both calls return same value
  • Mixing up which strlen is called
  • Ignoring namespace effect on function calls
4. Identify the error in this PHP code snippet inside a namespace:
namespace Test;
function array_sum($arr) {
    return 0;
}

$result = array_sum([1, 2, 3]);
$result2 = \array_sum([1, 2, 3]);
echo $result . ',' . $result2;
medium
A. Runtime error because \array_sum is undefined.
B. Syntax error due to missing semicolon.
C. No error, code runs and outputs '0,6'.
D. Namespace keyword used incorrectly.

Solution

  1. Step 1: Check function definitions and calls

    array_sum is redefined in namespace Test to always return 0.
  2. Step 2: Understand calls

    array_sum([1,2,3]) calls namespaced function returning 0; \array_sum calls global function returning 6.
  3. Final Answer:

    No error, code runs and outputs '0,6'. -> Option C
  4. Quick Check:

    Namespaced and global functions both called correctly [OK]
Hint: Leading \ calls global function, no syntax error [OK]
Common Mistakes:
  • Thinking \array_sum is undefined
  • Expecting syntax errors from backslash
  • Confusing namespace keyword usage
5. You have a namespaced class MyApp\Logger and a global class Logger. How do you instantiate the global Logger inside the MyApp namespace?
hard
A. $log = new Logger();
B. $log = new \Logger();
C. $log = new MyApp\Logger();
D. $log = new global\Logger();

Solution

  1. Step 1: Understand class instantiation in namespaces

    Without backslash, new Logger() looks for MyApp\Logger inside the namespace.
  2. Step 2: Use leading backslash to access global class

    new \Logger() creates an instance of the global Logger class.
  3. Final Answer:

    $log = new \Logger(); -> Option B
  4. Quick Check:

    Leading \ before class = global class instantiation [OK]
Hint: Use \ before class name to instantiate global class [OK]
Common Mistakes:
  • Omitting \ and getting namespaced class
  • Using 'global\' which is invalid
  • Confusing namespace prefix with global access
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