public function isModified($field = null)
{
if (null !== $field) {
if (array_key_exists($field, $this->_dataModified)) {
if (is_null($this->_dataModified[$field]) || is_null($this->_data[$field])) {
// Use strict comparison for null values, non-strict otherwise
return $this->_dataModified[$field] !== $this->_data[$field];
}
return $this->_dataModified[$field] != $this->_data[$field];
} elseif (array_key_exists($field, $this->_data)) {
return false;
} else {
return null;
}
}
/* Check if any of values really has changed. */
foreach (array_keys($this->_dataModified) as $field) {
if (true === $this->isModified($field)) {
return true;
}
}
return false;
}