public FieldItemList::equals(FieldItemListInterface $list_to_compare)
Determines equality to another object implementing FieldItemListInterface.
Parameters
\Drupal\Core\Field\FieldItemListInterface $list_to_compare: The field item list to compare to.
Return value
bool TRUE if the field item lists are equal, FALSE if not.
Overrides FieldItemListInterface::equals
File
- core/lib/Drupal/Core/Field/FieldItemList.php, line 380
Class
- FieldItemList
- Represents an entity field; that is, a list of field item objects.
Namespace
Drupal\Core\Field
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 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 ; } |
Please login to continue.