> But often classes need constructors only to set properties. In such cases, > constructors become redundant.
Actually, the behavior is not the same and the constructors are not redundant. Taking your example: ``` class Person { public string $firstName; public int $age; } $person = new Person { firstName: "John", age: 42 }; ``` This would allow the following: ``` $invalidPerson = new Person(); ``` Now we have a person without name or age. But with constructors we make sure that the object is always in a valid state: ``` class Person { public function __construct(public string $firstName, public int $age) { } } $validPerson = new Person('Name', 40); $invalidPerson = new Person(); // this is impossible. every person needs firstName and age ``` I just wanted to point that out. :-)