original_string: public function properties() {
      $props = array();
  
      if ($this->itemScope()) {
        $toTraverse = array($this);
  
        foreach ($this->itemRef() as $itemref) {
          $children = $this->ownerDocument->xpath()->query('//*[@id="'.$itemref.'"]');
          foreach($children as $child) {
            $this->traverse($child, $toTraverse, $props, $this);
          }
        }
        while (count($toTraverse)) {
          $this->traverse($toTraverse[0], $toTraverse, $props, $this);
        }
      }
  
      return $props;
    }
code: public function properties() {
      $props = array();
  
      if ($this->itemScope()) {
        $toTraverse = array($this);
  
        foreach ($this->itemRef() as $itemref) {
          $children = $this->ownerDocument->xpath()->query('//*[@id="'.$itemref.'"]');
          foreach($children as $child) {
            $this->traverse($child, $toTraverse, $props, $this);
          }
        }
        while (count($toTraverse)) {
          $this->traverse($toTraverse[0], $toTraverse, $props, $this);
        }
      }
  
      return $props;
    }
code_tokens: public function properties ( ) { $ props = array ( ) ; if ( $ this -> itemScope ( ) ) { $ toTraverse = array ( $ this ) ; foreach ( $ this -> itemRef ( ) as $ itemref ) { $ children = $ this -> ownerDocument -> xpath ( ) -> query ( '//*[@id="' . $ itemref . '"]' ) ; foreach ( $ children as $ child ) { $ this -> traverse ( $ child , $ toTraverse , $ props , $ this ) ; } } while ( count ( $ toTraverse ) ) { $ this -> traverse ( $ toTraverse [ 0 ] , $ toTraverse , $ props , $ this ) ; } } return $ props ; }
docstring: Retrieve the properties
  
  @return array
  An array of MicrodataPhpDOMElements which are properties of this
  element.
docstring_tokens: Retrieve the properties