public FieldItemList::equals(FieldItemListInterface $list_to_compare)
Determines equality to another object implementing FieldItemListInterface.
\Drupal\Core\Field\FieldItemListInterface $list_to_compare: The field item list to compare to.
bool TRUE if the field item lists are equal, FALSE if not.
Overrides FieldItemListInterface::equals
public function equals(FieldItemListInterface $list_to_compare) { $columns = $this->getFieldDefinition()->getFieldStorageDefinition()->getColumns(); $count1 = count($this); $count2 = count($list_to_compare); if ($count1 === 0 && $count2 === 0) { // Both are empty we can safely assume that it did not change. return TRUE; } if ($count1 !== $count2) { // One of them is empty but not the other one so the value changed. return FALSE; } $value1 = $this->getValue(); $value2 = $list_to_compare->getValue(); if ($value1 === $value2) { return TRUE; } // If the values are not equal ensure a consistent order of field item // properties and remove properties which will not be saved. $callback = function(&$value) use ($columns) { if (is_array($value)) { $value = array_intersect_key($value, $columns); ksort($value); } }; array_walk($value1, $callback); array_walk($value2, $callback); return $value1 == $value2; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Field!FieldItemList.php/function/FieldItemList::equals/8.1.x