PHP 7 interview question · Most asked
What is the difference between assigning an object and cloning it?
Summary
Assigning an object copies the handle, so both variables refer to the same object; clone creates a new object with copied properties (shallow), and calls __clone() for customization.
Longer Answer
With a shallow clone, nested objects are still shared. Implement __clone() to deep-copy them: $this->address = clone $this->address;. Immutable objects avoid this problem entirely.
Key Points
- Assignment shares the object
cloneis shallow__clone()for deep copies- Immutability sidesteps aliasing
More most-asked PHP 7 questions
- What are typed properties in PHP 7.4?
- How do return type declarations work in PHP 7?
- What were the headline improvements of PHP 7.0 over PHP 5.6?
- Explain scalar type declarations and coercive vs strict mode in PHP 7.
- Explain the `Throwable`, `Error` and `Exception` hierarchy introduced in PHP 7.
- What are nullable types in PHP 7.1?
- What does the null coalescing operator `??` do, and how is it different from `isset()` with a ternary?
- What are arrow functions in PHP 7.4 and how do they differ from closures?