WS_OK_7.4.33 HEX
HEX
Server: nginx/1.21.4
System: Linux v12674 6.8.0-85-generic #85-Ubuntu SMP PREEMPT_DYNAMIC Thu Sep 18 15:26:59 UTC 2025 x86_64
User: endtheignorance (1014)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source
Upload Files
File: /storage/v12674/lcaupstateny/public_html/wp-content/plugins/amp/src/Dom/ElementList.php
<?php
/**
 * Class ElementList
 *
 * @package AmpProject\AmpWP
 */

namespace AmpProject\AmpWP\Dom;

use AmpProject\AmpWP\Component\CaptionedSlide;
use IteratorAggregate;
use Countable;
use DOMElement;
use ArrayIterator;

/**
 * Class ElementList
 *
 * @internal
 * @since 1.5.0
 */
final class ElementList implements IteratorAggregate, Countable {

	/**
	 * The elements, possibly with captions.
	 *
	 * @var array
	 */
	private $elements = [];

	/**
	 * Adds an element to the list, possibly with a caption.
	 *
	 * @param DOMElement      $element The element to add, possibly an image.
	 * @param DOMElement|null $caption The caption for the element.
	 * @return ElementList A clone of this list, with the new element added.
	 */
	public function add( DOMElement $element, ?DOMElement $caption = null ): ElementList {
		$cloned_list             = clone $this;
		$cloned_list->elements[] = null === $caption ? $element : new CaptionedSlide( $element, $caption );
		return $cloned_list;
	}

	/**
	 * Gets an iterator with the elements.
	 *
	 * This together with the IteratorAggregate turns the object into a "Traversable",
	 * so you can just foreach over it and receive its elements in the correct type.
	 *
	 * @return ArrayIterator An iterator with the elements.
	 */
	public function getIterator(): ArrayIterator {
		return new ArrayIterator( $this->elements );
	}

	/**
	 * Gets the count of the elements.
	 *
	 * @return int The number of elements.
	 */
	public function count(): int {
		return count( $this->elements );
	}
}