original_string: protected function hasChanges($changes, $attributes = null)
      {
          // If no specific attributes were provided, we will just see if the dirty array
          // already contains any attributes. If it does we will just return that this
          // count is greater than zero. Else, we need to check specific attributes.
          if (empty($attributes)) {
              return count($changes) > 0;
          }
  
          // Here we will spin through every attribute and see if this is in the array of
          // dirty attributes. If it is, we will return true and if we make it through
          // all of the attributes for the entire array we will return false at end.
          foreach (Arr::wrap($attributes) as $attribute) {
              if (array_key_exists($attribute, $changes)) {
                  return true;
              }
          }
  
          return false;
      }
code: protected function hasChanges($changes, $attributes = null)
      {
          // If no specific attributes were provided, we will just see if the dirty array
          // already contains any attributes. If it does we will just return that this
          // count is greater than zero. Else, we need to check specific attributes.
          if (empty($attributes)) {
              return count($changes) > 0;
          }
  
          // Here we will spin through every attribute and see if this is in the array of
          // dirty attributes. If it is, we will return true and if we make it through
          // all of the attributes for the entire array we will return false at end.
          foreach (Arr::wrap($attributes) as $attribute) {
              if (array_key_exists($attribute, $changes)) {
                  return true;
              }
          }
  
          return false;
      }
code_tokens: protected function hasChanges ( $ changes , $ attributes = null ) { // If no specific attributes were provided, we will just see if the dirty array // already contains any attributes. If it does we will just return that this // count is greater than zero. Else, we need to check specific attributes. if ( empty ( $ attributes ) ) { return count ( $ changes ) > 0 ; } // Here we will spin through every attribute and see if this is in the array of // dirty attributes. If it is, we will return true and if we make it through // all of the attributes for the entire array we will return false at end. foreach ( Arr :: wrap ( $ attributes ) as $ attribute ) { if ( array_key_exists ( $ attribute , $ changes ) ) { return true ; } } return false ; }
docstring: Determine if any of the given attributes were changed.
  
  @param  array  $changes
  @param  array|string|null  $attributes
  @return bool
docstring_tokens: Determine if any of the given attributes were changed .