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.
Object instantiation with new in 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.
$car from the class Car.$car = new Car();User object and sends 'Alice' to the constructor.$user = new User('Alice');
Book object with default settings.$book = new Book();This program creates two dogs with different names using new. Each dog can bark and say its name.
<?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";
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.
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
What does the new keyword do in PHP?
Solution
Step 1: Understand the role of
Thenewnewkeyword is used to create an object from a class blueprint.Step 2: Differentiate from other keywords
It does not delete objects, call functions, or define classes; it only creates objects.Final Answer:
It creates a new instance of a class (an object). -> Option DQuick Check:
newcreates objects [OK]
- Thinking new deletes objects
- Confusing new with function calls
- Believing new defines classes
Which of the following is the correct syntax to create a new object of class Car?
class Car {
// class body
}
// Create object here
Solution
Step 1: Recall PHP object creation syntax
In PHP, to create an object, use$variable = new ClassName();.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.Final Answer:
$car = new Car(); -> Option AQuick Check:
Usenew ClassName()to create objects [OK]
- Omitting the new keyword
- Placing new after variable
- Using dot notation like other languages
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();
Solution
Step 1: Understand constructor usage
The constructor sets thenameproperty to "Buddy" when the object is created.Step 2: Analyze the bark method output
Thebark()method returns "Woof! I am " concatenated with thenameproperty, which is "Buddy".Final Answer:
Woof! I am Buddy -> Option AQuick Check:
Constructor sets name, bark returns it [OK]
- Ignoring constructor parameters
- Using variable name instead of property
- Expecting syntax error due to missing parentheses
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;
Solution
Step 1: Check object instantiation syntax
The object is created by callingPerson(25)withoutnew, which is invalid in PHP.Step 2: Correct the instantiation
Use$person = new Person(25);to create the object properly.Final Answer:
Missingnewkeyword when creating the object. -> Option CQuick Check:
Always usenewto instantiate objects [OK]
- Forgetting new keyword
- Thinking constructor can't have parameters
- Confusing property visibility with errors
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?
Solution
Step 1: Understand constructor parameters
The constructor expects two parameters: title and author, in that order.Step 2: Match data array to constructor
$data[0] is title, $data[1] is author, sonew Book($data[0], $data[1])is correct.Step 3: Add object to array
Using$books[] =appends the new object to the array.Final Answer:
$books[] = new Book($data[0], $data[1]); -> Option BQuick Check:
Use new with correct params and append [OK]
- Omitting new keyword
- Passing whole array instead of separate params
- Swapping title and author order
Ready to prove it?
Pass the test and this pattern moves unknown
