Bird
Raised Fist0
PHPprogramming~5 mins

Object instantiation with new in PHP

Choose your learning style10 modes available
Introduction

We use new to create a fresh object from a class. It helps us make many things that behave the same way but hold different data.

When you want to create a new user profile in a website.
When you need to make multiple cars with different colors and speeds in a game.
When you want to keep track of different books in a library system.
When you want to create a new bank account with its own balance and owner.
Syntax
PHP
$object = new ClassName();

The new keyword tells PHP to make a new object from the class.

The parentheses () can hold values if the class has a constructor that needs them.

Examples
This creates a new object called $car from the class Car.
PHP
$car = new Car();
This creates a new User object and sends 'Alice' to the constructor.
PHP
$user = new User('Alice');
This makes a new Book object with default settings.
PHP
$book = new Book();
Sample Program

This program creates two dogs with different names using new. Each dog can bark and say its name.

PHP
<?php
class Dog {
    public string $name;
    public function __construct(string $name) {
        $this->name = $name;
    }
    public function bark(): string {
        return "Woof! I am {$this->name}.";
    }
}

$dog1 = new Dog('Buddy');
$dog2 = new Dog('Max');

echo $dog1->bark() . "\n";
echo $dog2->bark() . "\n";
OutputSuccess
Important Notes

Every time you use new, PHP makes a separate object with its own data.

If the class has a constructor, you must pass the right values inside the parentheses.

Objects let you group data and actions together, making your code easier to manage.

Summary

Use new to create a new object from a class.

Each object can have its own data and behavior.

Constructors can accept values to set up the object when created.

Practice

(1/5)
1.

What does the new keyword do in PHP?

easy
A. It deletes an existing object.
B. It defines a new class.
C. It calls a function inside a class.
D. It creates a new instance of a class (an object).

Solution

  1. Step 1: Understand the role of new

    The new keyword is used to create an object from a class blueprint.
  2. Step 2: Differentiate from other keywords

    It does not delete objects, call functions, or define classes; it only creates objects.
  3. Final Answer:

    It creates a new instance of a class (an object). -> Option D
  4. Quick Check:

    new creates objects [OK]
Hint: Remember: new = create object from class [OK]
Common Mistakes:
  • Thinking new deletes objects
  • Confusing new with function calls
  • Believing new defines classes
2.

Which of the following is the correct syntax to create a new object of class Car?

class Car {
  // class body
}

// Create object here
easy
A. $car = new Car();
B. $car = Car();
C. new $car = Car();
D. $car = Car.new();

Solution

  1. Step 1: Recall PHP object creation syntax

    In PHP, to create an object, use $variable = new ClassName();.
  2. Step 2: Check each option

    $car = new Car(); matches the correct syntax. The other options use invalid syntax: new before variable assignment, omitting the new keyword, or using dot notation.
  3. Final Answer:

    $car = new Car(); -> Option A
  4. Quick Check:

    Use new ClassName() to create objects [OK]
Hint: Use $obj = new ClassName(); always [OK]
Common Mistakes:
  • Omitting the new keyword
  • Placing new after variable
  • Using dot notation like other languages
3.

What will be the output of the following PHP code?

class Dog {
  public $name;
  public function __construct($name) {
    $this->name = $name;
  }
  public function bark() {
    return "Woof! I am " . $this->name;
  }
}

$dog = new Dog("Buddy");
echo $dog->bark();
medium
A. Woof! I am Buddy
B. Woof! I am $name
C. Error: Undefined property
D. Woof! I am

Solution

  1. Step 1: Understand constructor usage

    The constructor sets the name property to "Buddy" when the object is created.
  2. Step 2: Analyze the bark method output

    The bark() method returns "Woof! I am " concatenated with the name property, which is "Buddy".
  3. Final Answer:

    Woof! I am Buddy -> Option A
  4. Quick Check:

    Constructor sets name, bark returns it [OK]
Hint: Constructor sets data; methods use it [OK]
Common Mistakes:
  • Ignoring constructor parameters
  • Using variable name instead of property
  • Expecting syntax error due to missing parentheses
4.

Identify the error in this PHP code snippet:

class Person {
  public $age;
  public function __construct($age) {
    $this->age = $age;
  }
}

$person = Person(25);
echo $person->age;
medium
A. Property age should be private.
B. Constructor should not have parameters.
C. Missing new keyword when creating the object.
D. Cannot echo object property directly.

Solution

  1. Step 1: Check object instantiation syntax

    The object is created by calling Person(25) without new, which is invalid in PHP.
  2. Step 2: Correct the instantiation

    Use $person = new Person(25); to create the object properly.
  3. Final Answer:

    Missing new keyword when creating the object. -> Option C
  4. Quick Check:

    Always use new to instantiate objects [OK]
Hint: Always use new before class name to create object [OK]
Common Mistakes:
  • Forgetting new keyword
  • Thinking constructor can't have parameters
  • Confusing property visibility with errors
5.

Given this class:

class Book {
  public $title;
  public $author;
  public function __construct($title, $author) {
    $this->title = $title;
    $this->author = $author;
  }
}

// Create an array of books with titles and authors
$booksData = [
  ['1984', 'George Orwell'],
  ['Brave New World', 'Aldous Huxley'],
  ['Fahrenheit 451', 'Ray Bradbury']
];

// Fill this array with Book objects
$books = [];
foreach ($booksData as $data) {
  // Fill here
}

Which line correctly creates and adds a new Book object to $books inside the loop?

hard
A. $books[] = new Book($data[1], $data[0]);
B. $books[] = new Book($data[0], $data[1]);
C. $books[] = new Book($data);
D. $books[] = Book($data[0], $data[1]);

Solution

  1. Step 1: Understand constructor parameters

    The constructor expects two parameters: title and author, in that order.
  2. Step 2: Match data array to constructor

    $data[0] is title, $data[1] is author, so new Book($data[0], $data[1]) is correct.
  3. Step 3: Add object to array

    Using $books[] = appends the new object to the array.
  4. Final Answer:

    $books[] = new Book($data[0], $data[1]); -> Option B
  5. Quick Check:

    Use new with correct params and append [OK]
Hint: Match constructor params order exactly when using new [OK]
Common Mistakes:
  • Omitting new keyword
  • Passing whole array instead of separate params
  • Swapping title and author order
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