Bird
Raised Fist0
PHPprogramming~30 mins

Importing with use keyword in PHP - Mini Project: Build & Apply

Choose your learning style10 modes available
Importing with use keyword
📖 Scenario: Imagine you are organizing a small library of books. Each book belongs to a category, and you want to use short names to refer to these categories in your code.
🎯 Goal: You will create two classes in different namespaces and then use the use keyword to import these classes with shorter names. Finally, you will create objects from these classes and print their category names.
📋 What You'll Learn
Create two classes in separate namespaces: Library\Fiction\Book and Library\NonFiction\Book
Each class should have a public method getCategory() that returns the string 'Fiction' or 'Non-Fiction' respectively
Use the use keyword to import these classes with aliases FictionBook and NonFictionBook
Create objects of FictionBook and NonFictionBook and print their categories
💡 Why This Matters
🌍 Real World
Namespaces and the <code>use</code> keyword help organize large PHP projects by grouping related code and avoiding name conflicts.
💼 Career
Understanding namespaces and imports is essential for working on professional PHP applications, frameworks, and libraries.
Progress0 / 4 steps
1
Create two classes in namespaces
Create two classes: Book inside namespace Library\Fiction and another Book inside namespace Library\NonFiction. Each class should have a public method getCategory() that returns 'Fiction' for the first and 'Non-Fiction' for the second.
PHP
Hint

Use the namespace keyword to define namespaces. Define the Book class inside each namespace with the getCategory() method returning the correct string.

2
Import classes with use keyword and alias
After the namespace declarations, use the use keyword to import Library\Fiction\Book as FictionBook and Library\NonFiction\Book as NonFictionBook.
PHP
Hint

Use the use keyword followed by the full namespace and class name, then as and the alias name.

3
Create objects using the aliases
Create two variables: $fictionBook as a new FictionBook object and $nonFictionBook as a new NonFictionBook object.
PHP
Hint

Create new objects by calling new with the alias names.

4
Print the categories of the books
Print the category of $fictionBook by calling getCategory() and then print the category of $nonFictionBook by calling getCategory(). Each category should be printed on its own line.
PHP
Hint

Use print() to display the category strings returned by getCategory(). Add a newline character \n after each.

Practice

(1/5)
1. What is the main purpose of the use keyword in PHP?
easy
A. To import classes or namespaces into the current file
B. To declare a new function
C. To start a PHP script
D. To create a new variable

Solution

  1. Step 1: Understand the role of use

    The use keyword is used to import classes or namespaces so you can use them without full names.
  2. Step 2: Compare with other options

    Declaring functions, starting scripts, or creating variables are unrelated to use.
  3. Final Answer:

    To import classes or namespaces into the current file -> Option A
  4. Quick Check:

    Importing code = use keyword [OK]
Hint: Remember: use imports code to simplify names [OK]
Common Mistakes:
  • Thinking use declares functions
  • Confusing use with variable assignment
  • Using use inside functions instead of top of file
2. Which of the following is the correct syntax to import the class Database\Connection using the use keyword?
easy
A. require Database\Connection;
B. import Database\Connection;
C. use Database\Connection;
D. include Database\Connection;

Solution

  1. Step 1: Identify correct import syntax

    In PHP, use is the correct keyword to import namespaces or classes.
  2. Step 2: Eliminate other keywords

    import is not valid PHP syntax; include and require load files but do not import namespaces.
  3. Final Answer:

    use Database\Connection; -> Option C
  4. Quick Check:

    use keyword imports namespaces [OK]
Hint: Use 'use' keyword, not import/include/require for namespaces [OK]
Common Mistakes:
  • Using import instead of use
  • Confusing include with use
  • Missing semicolon after use statement
3. Given the code:
namespace App;

use Library\Tools as ToolsAlias;

$tool = new ToolsAlias();
echo get_class($tool);

What will be the output?
medium
A. ToolsAlias
B. Library\Tools
C. App\ToolsAlias
D. Error: class not found

Solution

  1. Step 1: Understand aliasing with as

    The use statement imports Library\Tools as ToolsAlias, so new ToolsAlias() creates an instance of Library\Tools.
  2. Step 2: Check output of get_class()

    The get_class() function returns the full class name, which is Library\Tools.
  3. Final Answer:

    Library\Tools -> Option B
  4. Quick Check:

    Alias points to original class name [OK]
Hint: Alias keeps original class name for get_class() [OK]
Common Mistakes:
  • Expecting alias name as output
  • Confusing namespace with alias
  • Assuming error without class definition
4. What is wrong with this PHP code?
<?php
use MyApp\Utils;

function test() {
    use MyApp\Helpers;
}
medium
A. You cannot use use inside a function
B. Missing semicolon after use statement
C. Namespace name is invalid
D. Functions cannot be declared after use

Solution

  1. Step 1: Check placement of use keyword

    The use keyword for importing namespaces must be at the top level, not inside functions.
  2. Step 2: Validate other syntax

    Semicolons are present; namespace names look valid; functions can be declared after use statements.
  3. Final Answer:

    You cannot use use inside a function -> Option A
  4. Quick Check:

    use statements only at file top [OK]
Hint: Place use statements only at top, not inside functions [OK]
Common Mistakes:
  • Trying to import inside functions
  • Forgetting semicolons
  • Misunderstanding namespace rules
5. You have two classes with the same name Logger in different namespaces: Framework\Logger and App\Logger. How can you import both in one PHP file to use them without full names?
hard
A. use Framework\Logger; use App\Logger;
B. Cannot import two classes with same name
C. use Framework\Logger, App\Logger;
D. use Framework\Logger as FrameworkLogger; use App\Logger as AppLogger;

Solution

  1. Step 1: Understand name conflicts with imports

    When two classes share the same name, you must alias at least one to avoid conflicts.
  2. Step 2: Check options for aliasing

    use Framework\Logger as FrameworkLogger; use App\Logger as AppLogger; uses as to rename both classes uniquely. use Framework\Logger; use App\Logger; imports both without alias, causing conflict. use Framework\Logger, App\Logger; syntax is invalid. Cannot import two classes with same name is false.
  3. Final Answer:

    use Framework\Logger as FrameworkLogger; use App\Logger as AppLogger; -> Option D
  4. Quick Check:

    Alias same names to avoid conflicts [OK]
Hint: Use 'as' to rename same-named imports [OK]
Common Mistakes:
  • Importing same class names without alias
  • Using comma to import multiple classes in one use
  • Thinking it's impossible to import both
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