Bird
Raised Fist0
PHPprogramming~15 mins

Namespace declaration syntax in PHP - Mini Project: Build & Apply

Choose your learning style10 modes available
Namespace declaration syntax
📖 Scenario: Imagine you are organizing your PHP code into different sections to keep it neat and avoid name clashes. Namespaces help you do this by grouping related code together.
🎯 Goal: You will create a PHP file that declares a namespace and defines a simple function inside it. Then you will access that function using the namespace.
📋 What You'll Learn
Declare a namespace called MyApp\Utils
Create a function called greet inside the namespace that returns the string 'Hello from Utils!'
Call the greet function using the full namespace path
Print the result of the function call
💡 Why This Matters
🌍 Real World
Namespaces help large PHP projects stay organized by grouping related code and avoiding name conflicts.
💼 Career
Understanding namespaces is important for working on professional PHP applications and frameworks that use modular code.
Progress0 / 4 steps
1
Declare the namespace
Write a PHP file that declares a namespace called MyApp\Utils at the top.
PHP
Hint

Use the namespace keyword followed by MyApp\Utils; at the top of the file.

2
Create a function inside the namespace
Add a function called greet inside the MyApp\Utils namespace that returns the string 'Hello from Utils!'.
PHP
Hint

Define a function named greet that returns the exact string 'Hello from Utils!'.

3
Call the namespaced function
Outside the namespace, call the greet function using the full namespace path MyApp\Utils\greet() and store the result in a variable called message.
PHP
Hint

Use the full namespace path with a leading backslash to call the function: \MyApp\Utils\greet().

4
Print the result
Print the value of the variable $message to display the greeting.
PHP
Hint

Use print($message); to show the greeting on the screen.

Practice

(1/5)
1. What is the correct way to declare a namespace in a PHP file?
easy
A. use MyApp;
B. namespace MyApp;
C. package MyApp;
D. module MyApp;

Solution

  1. Step 1: Understand PHP namespace declaration

    PHP uses the keyword namespace to declare namespaces at the top of a file.
  2. Step 2: Identify the correct syntax

    The correct syntax is namespace MyApp; with a semicolon at the end.
  3. Final Answer:

    namespace MyApp; -> Option B
  4. Quick Check:

    Keyword 'namespace' declares namespaces [OK]
Hint: Use 'namespace' keyword followed by name and semicolon [OK]
Common Mistakes:
  • Using 'package' instead of 'namespace'
  • Forgetting the semicolon at the end
  • Using 'use' to declare namespace
  • Writing 'module' which is not valid in PHP
2. Which of the following is the correct syntax to declare a nested namespace in PHP?
easy
A. namespace MyApp/Utils;
B. namespace MyApp-Utils;
C. namespace MyApp.Utils;
D. namespace MyApp\Utils;

Solution

  1. Step 1: Recognize namespace separator in PHP

    PHP uses backslashes (\) to separate nested namespaces.
  2. Step 2: Check each option for correct separator

    Only namespace MyApp\Utils; uses backslashes correctly: namespace MyApp\Utils;.
  3. Final Answer:

    namespace MyApp\Utils; -> Option D
  4. Quick Check:

    Backslash separates nested namespaces [OK]
Hint: Use double backslash \ for nested namespaces [OK]
Common Mistakes:
  • Using forward slash / instead of backslash
  • Using dot . or dash - which are invalid
  • Omitting the semicolon at the end
3. What will be the output of the following PHP code?
<?php
namespace App\Tools;
class Helper {
  public static function greet() {
    return 'Hello from Helper';
  }
}

use App\Tools\Helper;
echo Helper::greet();
?>
medium
A. Hello from Helper
B. Fatal error: Class 'Helper' not found
C. Hello from App\Tools\Helper
D. Syntax error

Solution

  1. Step 1: Understand namespace and use statement

    The class Helper is declared inside namespace App\Tools. The use statement imports it so we can call Helper directly.
  2. Step 2: Check method call and output

    Calling Helper::greet() returns the string 'Hello from Helper'.
  3. Final Answer:

    Hello from Helper -> Option A
  4. Quick Check:

    Use imports class, method returns greeting [OK]
Hint: Use imports namespace class to call methods directly [OK]
Common Mistakes:
  • Forgetting to use the 'use' statement
  • Calling class without full namespace
  • Assuming output includes namespace name
  • Syntax errors from missing semicolons
4. Identify the error in this PHP namespace declaration:
<?php
namespace MyApp\Utils
class Logger {}
?>
medium
A. Class name Logger is invalid
B. Namespace name cannot contain backslashes
C. Missing semicolon after namespace declaration
D. Namespace must be declared after class

Solution

  1. Step 1: Check namespace declaration syntax

    The namespace declaration must end with a semicolon (;).
  2. Step 2: Identify missing semicolon

    The code misses the semicolon after namespace MyApp\Utils.
  3. Final Answer:

    Missing semicolon after namespace declaration -> Option C
  4. Quick Check:

    Namespace declarations require semicolon [OK]
Hint: Always end namespace line with semicolon [OK]
Common Mistakes:
  • Omitting semicolon after namespace
  • Thinking backslash is invalid in namespace
  • Placing namespace after class
  • Misnaming classes
5. You want to declare two nested namespaces Company\Project\Module in one PHP file. Which is the correct way to do this?
hard
A. namespace Company\Project\Module; class Feature {}
B. namespace Company; namespace Project; namespace Module; class Feature {}
C. namespace Company/Project/Module; class Feature {}
D. namespace Company.Project.Module; class Feature {}

Solution

  1. Step 1: Understand nested namespace declaration

    PHP allows declaring nested namespaces in one line using backslashes.
  2. Step 2: Evaluate each option

    namespace Company\Project\Module; class Feature {} correctly declares nested namespaces with backslashes and a semicolon. Separate declarations like namespace Company; namespace Project; namespace Module; class Feature {} place the class in top-level Module, not nested under Company\Project. Using forward slashes or dots as separators is invalid.
  3. Final Answer:

    namespace Company\Project\Module; class Feature {} -> Option A
  4. Quick Check:

    Nested namespaces use backslashes in one declaration [OK]
Hint: Use one namespace line with backslashes for nesting [OK]
Common Mistakes:
  • Declaring multiple namespaces in one file incorrectly
  • Using slashes or dots instead of backslashes
  • Forgetting semicolon after namespace
  • Trying to declare nested namespaces on separate lines
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