original_string: protected function fireCurrentAttributesCallbacks($attributes)
      {
          foreach ($attributes as $key => $val) {
              $path = $this->currentPath . '@' . strtolower($key) . '/';
  
              if (isset($this->callbacks[$path])) {
                  foreach ($this->callbacks[$path] as $callback) {
                      call_user_func_array($callback, array($this, $val));
                  }
              }
          }
      }
code: protected function fireCurrentAttributesCallbacks($attributes)
      {
          foreach ($attributes as $key => $val) {
              $path = $this->currentPath . '@' . strtolower($key) . '/';
  
              if (isset($this->callbacks[$path])) {
                  foreach ($this->callbacks[$path] as $callback) {
                      call_user_func_array($callback, array($this, $val));
                  }
              }
          }
      }
code_tokens: protected function fireCurrentAttributesCallbacks ( $ attributes ) { foreach ( $ attributes as $ key => $ val ) { $ path = $ this -> currentPath . '@' . strtolower ( $ key ) . '/' ; if ( isset ( $ this -> callbacks [ $ path ] ) ) { foreach ( $ this -> callbacks [ $ path ] as $ callback ) { call_user_func_array ( $ callback , array ( $ this , $ val ) ) ; } } } }
docstring: Traverses the passed attributes, assuming the currentPath, and invokes registered callbacks,
  if there are any
  
  @param array $attributes Key-value map for the current element
  
  @return void
docstring_tokens: Traverses the passed attributes assuming the currentPath and invokes registered callbacks if there are any