|
Server : LiteSpeed System : Linux srv526460274 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 User : kerao9884 ( 1082) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /home/kera789.org/public_html/wp-content/plugins/amp/src/Dom/ |
Upload File : |
<?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 );
}
}