What is an example of a Value Object in PHP?
To put this into context, in many OO languages, objects are compared by their identity. In pseudocode:
bar = new Foobaz = new Foobar == baz // false
Even though both objects are basically the same if you just look at their values, they're not considered to be identical, because they are separate instances. To demonstrate:
bar = new Foobaz = barbar == baz // true
Now:
In computer science, a value object is a small simple object, like money or a date range, whose equality isn't based on identity.
This would be a demonstration of "value objects":
address1 = new Address('Main street 42')address2 = new Address('Main street 42')address1 == address2 // true
Because the values are the same, both objects are considered equal, even if they're separate instances.
PHP does not have a separate concept of "value objects", it only has one type of object. Its comparison operator can make that distinction though:
When using the comparison operator (==), object variables are compared in a simple manner, namely: Two object instances are equal if they have the same attributes and values, and are instances of the same class.
http://www.php.net/manual/en/language.oop5.object-comparison.php
E.g.:
$address1 = new Address('Main street 42');$address2 = new Address('Main street 42');$address1 == $address2; // true equal...$address1 === $address2; // false ...but not identical