# php_manual

id: APCUIterator
type: class
doc:
<comment>Description:</comment>
  The <class>APCUIterator</class> class makes it easier to iterate over large APCu caches. This is helpful as it
  allows iterating over large caches in steps, while grabbing a defined number of entries per lock
  instance, so it frees the cache locks for other activities rather than hold up the entire cache to
  grab 100 (the default) entries. Also, using regular expression matching is more efficient as it's
  been moved to the C level.


id: APCUIterator::__construct
type: function
doc:
<comment>Description:</comment>
  Constructs an APCUIterator iterator object
  
  Constructs an <class>APCUIterator</class> <info>object</info>.

<comment>Param:</comment>
  <info>array|string|null</info>  <strong>$search</strong>      Either a PCRE regular expression that matches against APCu key
                                  names, given as a <info>string</info>. Or an <info>array</info> of <info>string</info>s with APCu key
                                  names. Or, optionally <info>null</info> to skip the search.
  <info>int</info>                <strong>$format</strong>      The desired format, as configured with one or more of the
                                  APC_ITER_* constants.
  <info>int</info>                <strong>$chunk_size</strong>  The chunk size. Must be a value greater than 0. The default value
                                  is 100.
  <info>int</info>                <strong>$list</strong>        The type to list. Either pass in <info>APC_LIST_ACTIVE</info> or
                                  <info>APC_LIST_DELETED</info>.

<comment>See Also:</comment>
   * <strong>apcu_exists()</strong>
   * <strong>apcu_cache_info()</strong>


id: APCUIterator::current
type: function
doc:
<comment>Description:</comment>
  Get current item
  
  Gets the current item from the <class>APCUIterator</class> stack.

<comment>Return:</comment>
  <info>mixed</info>  Returns the current item on success, or <info>false</info> if no more items or exist, or on failure.

<comment>See Also:</comment>
   * APCUIterator::next
   * Iterator::current


id: APCUIterator::getTotalCount
type: function
doc:
<comment>Description:</comment>
  Get total count
  
  Get the total count.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>int</info>  The total count.

<comment>See Also:</comment>
   * APCUIterator::getTotalHits
   * APCUIterator::getTotalSize
   * <strong>apcu_cache_info()</strong>


id: APCUIterator::getTotalHits
type: function
doc:
<comment>Description:</comment>
  Get total cache hits
  
  Gets the total number of cache hits.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>int</info>  The number of hits on success, or <info>false</info> on failure.

<comment>See Also:</comment>
   * APCUIterator::getTotalCount
   * APCUIterator::getTotalSize
   * <strong>apcu_cache_info()</strong>


id: APCUIterator::getTotalSize
type: function
doc:
<comment>Description:</comment>
  Get total cache size
  
  Gets the total cache size.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>int</info>  The total cache size.

<comment>See Also:</comment>
   * APCUIterator::getTotalCount
   * APCUIterator::getTotalHits
   * <strong>apc_cache_info()</strong>


id: APCUIterator::key
type: function
doc:
<comment>Description:</comment>
  Get iterator key
  
  Gets the current iterator key.

<comment>Return:</comment>
  <info>string</info>  Returns the key on success, or <info>false</info> upon failure.

<comment>See Also:</comment>
   * APCUIterator::current
   * Iterator::key


id: APCUIterator::next
type: function
doc:
<comment>Description:</comment>
  Move pointer to next item
  
  Moves the iterator pointer to the next element.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * APCUIterator::current
   * APCUIterator::rewind
   * Iterator::next


id: APCUIterator::rewind
type: function
doc:
<comment>Description:</comment>
  Rewinds iterator
  
  Rewinds back the iterator to the first element.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * APCUIterator::next
   * Iterator::next


id: APCUIterator::valid
type: function
doc:
<comment>Description:</comment>
  Checks if current position is valid
  
  Checks if the current iterator position is valid.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the current iterator position is valid, otherwise <info>false</info>.

<comment>See Also:</comment>
   * APCUIterator::current
   * Iterator::valid


id: ARRAY_FILTER_USE_BOTH
type: constant
doc:
<comment>Description:</comment>
  <info>ARRAY_FILTER_USE_BOTH</info> is used with <strong>array_filter()</strong> to pass both value and key to the given callback
  function.


id: ARRAY_FILTER_USE_KEY
type: constant
doc:
<comment>Description:</comment>
  <info>ARRAY_FILTER_USE_KEY</info> is used with <strong>array_filter()</strong> to pass each key as the first argument to the
  given callback function.


id: ASSERT_ACTIVE
type: constant
doc:
<comment>Description:</comment>
  assert.active
  
  Enable <strong>assert()</strong> evaluation. This feature has been
  DEPRECATED as of PHP 8.3.0. Relying on this feature
  is highly discouraged.


id: ASSERT_BAIL
type: constant
doc:
<comment>Description:</comment>
  assert.bail
  
  Terminate execution on failed assertions. This feature has been
  DEPRECATED as of PHP 8.3.0. Relying on this feature
  is highly discouraged.


id: ASSERT_CALLBACK
type: constant
doc:
<comment>Description:</comment>
  assert.callback
  
  Callback to call on failed assertions. This feature has been
  DEPRECATED as of PHP 8.3.0. Relying on this feature
  is highly discouraged.


id: ASSERT_EXCEPTION
type: constant
doc:
<comment>Description:</comment>
  assert.exception
  
  Issues a PHP warning for each failed assertion This feature has been
  DEPRECATED as of PHP 8.3.0. Relying on this feature
  is highly discouraged.


id: ASSERT_QUIET_EVAL
type: constant
doc:
<comment>Description:</comment>
  assert.quiet_eval
  
  Disable <return>error_reporting</return> during assertion expression evaluation. This feature was REMOVED as of PHP
  8.0.0.


id: ASSERT_WARNING
type: constant
doc:
<comment>Description:</comment>
  assert.warning
  
  Issues a PHP warning for each failed assertion This feature has been
  DEPRECATED as of PHP 8.3.0. Relying on this feature
  is highly discouraged.


id: AddressInfo
type: class
doc:
<comment>Description:</comment>
  A fully opaque class which replaces <return>AddressInfo</return> resources as of PHP 8.0.0.


id: AllowDynamicProperties
type: class
doc:
<comment>Description:</comment>
  This attribute is used to mark classes that allow dynamic properties.


id: AllowDynamicProperties::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new AllowDynamicProperties attribute instance
  
  Constructs a new <class>AllowDynamicProperties</class> instance.


id: AppendIterator
type: class
doc:
<comment>Description:</comment>
  An Iterator that iterates over several iterators one after the other.


id: AppendIterator::__construct
type: function
doc:
<comment>Description:</comment>
  Constructs an AppendIterator
  
  Constructs an AppendIterator.

<comment>See Also:</comment>
   * AppendIterator::append


id: AppendIterator::append
type: function
doc:
<comment>Description:</comment>
  Appends an iterator
  
  Appends an iterator.

<comment>Param:</comment>
  <info>Iterator</info>  <strong>$iterator</strong>  The iterator to append.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * AppendIterator::__construct


id: AppendIterator::current
type: function
doc:
<comment>Description:</comment>
  Gets the current value
  
  Gets the current value.

<comment>Return:</comment>
  <info>mixed</info>  The current value if it is valid or <info>null</info> otherwise.

<comment>See Also:</comment>
   * Iterator::current
   * AppendIterator::key
   * AppendIterator::valid
   * AppendIterator::next
   * AppendIterator::rewind


id: AppendIterator::getArrayIterator
type: function
doc:
<comment>Description:</comment>
  Gets the ArrayIterator
  
  This method gets the <class>ArrayIterator</class> that is used to  store the iterators added with
  AppendIterator::append.

<comment>Return:</comment>
  <info>ArrayIterator</info>  Returns an <class>ArrayIterator</class> containing the appended iterators.

<comment>See Also:</comment>
   * AppendIterator::getInnerIterator


id: AppendIterator::getIteratorIndex
type: function
doc:
<comment>Description:</comment>
  Gets an index of iterators
  
  Gets the index of the current inner iterator.

<comment>Return:</comment>
  <info>int|null</info>  Returns the zero-based, integer index of the current inner iterator if it exists, or
            <info>null</info> otherwise.

<comment>See Also:</comment>
   * AppendIterator::getInnerIterator
   * AppendIterator::getArrayIterator


id: AppendIterator::key
type: function
doc:
<comment>Description:</comment>
  Gets the current key
  
  Get the current key.

<comment>Return:</comment>
  <info>scalar</info>  The current key if it is valid or <info>null</info> otherwise.

<comment>See Also:</comment>
   * Iterator::key
   * AppendIterator::current
   * AppendIterator::valid
   * AppendIterator::next
   * AppendIterator::rewind


id: AppendIterator::next
type: function
doc:
<comment>Description:</comment>
  Moves to the next element
  
  Moves to the next element. If this means to another Iterator then it rewinds that Iterator.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * Iterator::next
   * AppendIterator::current
   * AppendIterator::key
   * AppendIterator::valid
   * AppendIterator::rewind


id: AppendIterator::rewind
type: function
doc:
<comment>Description:</comment>
  Rewinds the Iterator
  
  Rewind to the first element of the first inner Iterator.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * Iterator::rewind
   * AppendIterator::current
   * AppendIterator::key
   * AppendIterator::next
   * AppendIterator::valid


id: AppendIterator::valid
type: function
doc:
<comment>Description:</comment>
  Checks validity of the current element
  
  Checks validity of the current element.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the current iteration is valid, <info>false</info> otherwise.

<comment>See Also:</comment>
   * AppendIterator::current
   * AppendIterator::key
   * AppendIterator::next
   * AppendIterator::rewind


id: ArrayAccess::offsetExists
type: function
doc:
<comment>Description:</comment>
  Whether an offset exists
  
  Whether or not an offset exists.
  
  This method is executed when using <strong>isset()</strong> or <strong>empty()</strong> on objects implementing <class>ArrayAccess</class>.
  
  When using <strong>empty()</strong> <strong>ArrayAccess::offsetGet()</strong> will be called and checked if empty only if
  <strong>ArrayAccess::offsetExists()</strong> returns <info>true</info>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$offset</strong>  An offset to check for.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.
        
        The return value will be casted to <info>bool</info> if non-boolean was returned.


id: ArrayAccess::offsetGet
type: function
doc:
<comment>Description:</comment>
  Offset to retrieve
  
  Returns the value at specified offset.
  
  This method is executed when checking if offset is <strong>empty()</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$offset</strong>  The offset to retrieve.

<comment>Return:</comment>
  <info>mixed</info>  Can return all value types.

<comment>See Also:</comment>
   * ArrayAccess::offsetExists


id: ArrayAccess::offsetSet
type: function
doc:
<comment>Description:</comment>
  Assign a value to the specified offset
  
  Assigns a value to the specified offset.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$offset</strong>  The offset to assign the value to.
  <info>mixed</info>  <strong>$value</strong>   The value to set.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: ArrayAccess::offsetUnset
type: function
doc:
<comment>Description:</comment>
  Unset an offset
  
  Unsets an offset.
  
  This method will not be called when type-casting to (unset)

<comment>Param:</comment>
  <info>mixed</info>  <strong>$offset</strong>  The offset to unset.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: ArrayIterator
type: class
doc:
<comment>Description:</comment>
  Allows the removal of elements, and the modification of keys or values while iterating over Arrays
  or Objects.
  
  When you want to iterate over the same array multiple times you need to instantiate ArrayObject
  and let it create ArrayIterator instances that refer to it either by using foreach or by calling
  its getIterator() method manually.


id: ArrayIterator::STD_PROP_LIST
type: constant
doc:
<comment>Description:</comment>
  Properties of the object have their normal functionality when accessed as list (var_dump, foreach,
  etc.).


id: ArrayIterator::__construct
type: function
doc:
<comment>Description:</comment>
  Construct an ArrayIterator
  
  Constructs an <class>ArrayIterator</class> <info>object</info>.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$array</strong>  The array or object to be iterated on.
  <info>int</info>           <strong>$flags</strong>  Flags to control the behaviour of the <class>ArrayIterator</class> object. See
                        ArrayIterator::setFlags.

<comment>See Also:</comment>
   * ArrayIterator::getArrayCopy


id: ArrayIterator::append
type: function
doc:
<comment>Description:</comment>
  Append an element
  
  Appends value as the last element.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The value to append.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * ArrayIterator::next


id: ArrayIterator::asort
type: function
doc:
<comment>Description:</comment>
  Sort entries by values
  
  Sorts entries by their values.
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  The optional second parameter <strong>$flags</strong> may be used to modify the sorting behavior using
               these values:
               
               Sorting type flags: <info>SORT_REGULAR</info> - compare items normally; the details are described
               in the comparison operators section<info>SORT_NUMERIC</info> - compare items
               numerically<info>SORT_STRING</info> - compare items as strings<info>SORT_LOCALE_STRING</info> - compare items
               as strings, based on the current locale. It uses the locale, which can be changed
               using <strong>setlocale()</strong> <info>SORT_NATURAL</info> - compare items as strings using "natural ordering"
               like <strong>natsort()</strong> <info>SORT_FLAG_CASE</info> - can be combined (bitwise OR) with <info>SORT_STRING</info> or
               <info>SORT_NATURAL</info> to sort strings case-insensitively
               
               <info>SORT_REGULAR</info> - compare items normally; the details are described in the comparison
               operators section
               
               <info>SORT_NUMERIC</info> - compare items numerically
               
               <info>SORT_STRING</info> - compare items as strings
               
               <info>SORT_LOCALE_STRING</info> - compare items as strings, based on the current locale. It uses
               the locale, which can be changed using <strong>setlocale()</strong>
               
               <info>SORT_NATURAL</info> - compare items as strings using "natural ordering" like <strong>natsort()</strong>
               
               <info>SORT_FLAG_CASE</info> - can be combined (bitwise OR) with <info>SORT_STRING</info> or <info>SORT_NATURAL</info> to
               sort strings case-insensitively

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * ArrayIterator::ksort
   * ArrayIterator::natcasesort
   * ArrayIterator::natsort
   * ArrayIterator::uasort
   * ArrayIterator::uksort
   * <strong>asort()</strong>


id: ArrayIterator::count
type: function
doc:
<comment>Description:</comment>
  Count elements
  
  Gets the number of elements in the <info>array</info>, or the number of public properties in the <info>object</info>.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>int</info>  The number of elements or public properties in the associated <info>array</info> or <info>object</info>, respectively.

<comment>See Also:</comment>
   * ArrayIterator::getFlags


id: ArrayIterator::current
type: function
doc:
<comment>Description:</comment>
  Return current array entry
  
  Get the current <info>array</info> entry.

<comment>Return:</comment>
  <info>mixed</info>  The current <info>array</info> entry.


id: ArrayIterator::getArrayCopy
type: function
doc:
<comment>Description:</comment>
  Get array copy
  
  Get a copy of an array.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>array</info>  A copy of the <info>array</info>, or array of public properties if ArrayIterator refers to an <info>object</info>.

<comment>See Also:</comment>
   * ArrayIterator::valid


id: ArrayIterator::getFlags
type: function
doc:
<comment>Description:</comment>
  Get behavior flags
  
  Gets the behavior flags of the <class>ArrayIterator</class>. See the ArrayIterator::setFlags method for a list of
  the available flags.

<comment>Return:</comment>
  <info>int</info>  Returns the behavior flags of the ArrayIterator.

<comment>See Also:</comment>
   * ArrayIterator::setFlags
   * ArrayIterator::valid


id: ArrayIterator::key
type: function
doc:
<comment>Description:</comment>
  Return current array key
  
  This function returns the current array key

<comment>Return:</comment>
  <info>string|int|null</info>  The current <info>array</info> key.


id: ArrayIterator::ksort
type: function
doc:
<comment>Description:</comment>
  Sort entries by keys
  
  Sorts entries by their keys.
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  The optional second parameter <strong>$flags</strong> may be used to modify the sorting behavior using
               these values:
               
               Sorting type flags: <info>SORT_REGULAR</info> - compare items normally; the details are described
               in the comparison operators section<info>SORT_NUMERIC</info> - compare items
               numerically<info>SORT_STRING</info> - compare items as strings<info>SORT_LOCALE_STRING</info> - compare items
               as strings, based on the current locale. It uses the locale, which can be changed
               using <strong>setlocale()</strong> <info>SORT_NATURAL</info> - compare items as strings using "natural ordering"
               like <strong>natsort()</strong> <info>SORT_FLAG_CASE</info> - can be combined (bitwise OR) with <info>SORT_STRING</info> or
               <info>SORT_NATURAL</info> to sort strings case-insensitively
               
               <info>SORT_REGULAR</info> - compare items normally; the details are described in the comparison
               operators section
               
               <info>SORT_NUMERIC</info> - compare items numerically
               
               <info>SORT_STRING</info> - compare items as strings
               
               <info>SORT_LOCALE_STRING</info> - compare items as strings, based on the current locale. It uses
               the locale, which can be changed using <strong>setlocale()</strong>
               
               <info>SORT_NATURAL</info> - compare items as strings using "natural ordering" like <strong>natsort()</strong>
               
               <info>SORT_FLAG_CASE</info> - can be combined (bitwise OR) with <info>SORT_STRING</info> or <info>SORT_NATURAL</info> to
               sort strings case-insensitively

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * ArrayIterator::asort
   * ArrayIterator::natcasesort
   * ArrayIterator::natsort
   * ArrayIterator::uasort
   * ArrayIterator::uksort
   * <strong>ksort()</strong>


id: ArrayIterator::natcasesort
type: function
doc:
<comment>Description:</comment>
  Sort entries naturally, case insensitive
  
  Sort the entries by values using a case insensitive "natural order" algorithm.
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * ArrayIterator::asort
   * ArrayIterator::ksort
   * ArrayIterator::natsort
   * ArrayIterator::uasort
   * ArrayIterator::uksort
   * <strong>natcasesort()</strong>


id: ArrayIterator::natsort
type: function
doc:
<comment>Description:</comment>
  Sort entries naturally
  
  Sort the entries by values using a "natural order" algorithm.
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * ArrayIterator::asort
   * ArrayIterator::ksort
   * ArrayIterator::natsort
   * ArrayIterator::uasort
   * ArrayIterator::uksort
   * <strong>natsort()</strong>


id: ArrayIterator::next
type: function
doc:
<comment>Description:</comment>
  Move to next entry
  
  The iterator to the next entry.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: ArrayIterator::offsetExists
type: function
doc:
<comment>Description:</comment>
  Check if offset exists
  
  Checks if the offset exists.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$key</strong>  The offset being checked.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if the offset exists, otherwise <info>false</info>

<comment>See Also:</comment>
   * ArrayIterator::valid


id: ArrayIterator::offsetGet
type: function
doc:
<comment>Description:</comment>
  Get value for an offset
  
  Gets the value from the provided offset.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$key</strong>  The offset to get the value from.

<comment>Return:</comment>
  <info>mixed</info>  The value at offset <strong>$key</strong>.

<comment>See Also:</comment>
   * ArrayIterator::offsetSet
   * ArrayIterator::offsetUnset


id: ArrayIterator::offsetSet
type: function
doc:
<comment>Description:</comment>
  Set value for an offset
  
  Sets a value for a given offset.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$key</strong>    The index to set for.
  <info>mixed</info>  <strong>$value</strong>  The new value to store at the index.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * ArrayIterator::offsetGet
   * ArrayIterator::offsetUnset


id: ArrayIterator::offsetUnset
type: function
doc:
<comment>Description:</comment>
  Unset value for an offset
  
  Unsets a value for an offset.
  
  If iteration is in progress, and ArrayIterator::offsetUnset is used to unset the current index of
  iteration, the iteration position will be advanced to the next index. Since the iteration position
  is also advanced at the end of a foreach loop body, use of ArrayIterator::offsetUnset inside a
  <return>foreach</return> loop may result in indices being skipped.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$key</strong>  The offset to unset.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * ArrayIterator::offsetGet
   * ArrayIterator::offsetSet


id: ArrayIterator::rewind
type: function
doc:
<comment>Description:</comment>
  Rewind array back to the start
  
  This rewinds the iterator to the beginning.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: ArrayIterator::seek
type: function
doc:
<comment>Description:</comment>
  Seek to position
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>int</info>  <strong>$offset</strong>  The position to seek to.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: ArrayIterator::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize
  
  Serialize.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>string</info>  The serialized <class>ArrayIterator</class>.

<comment>See Also:</comment>
   * ArrayIterator::unserialize


id: ArrayIterator::setFlags
type: function
doc:
<comment>Description:</comment>
  Set behaviour flags
  
  Set the flags that change the behavior of the ArrayIterator.

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  The new ArrayIterator behavior. It takes on either a bitmask, or named constants.
               Using named constants is strongly encouraged to ensure compatibility for future
               versions.
               
               The available behavior flags are listed below. The actual meanings of these flags are
               described in the predefined constants. ArrayIterator behavior
               flagsvalueconstant1ArrayIterator::STD_PROP_LIST2ArrayIterator::ARRAY_AS_PROPS

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * ArrayIterator::getFlags


id: ArrayIterator::uasort
type: function
doc:
<comment>Description:</comment>
  Sort with a user-defined comparison function and maintain index association
  
  This method sorts the elements such that indices maintain their correlation with the values they
  are associated with, using a user-defined comparison function.
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  The comparison function must return an integer less than, equal to, or
                       greater than zero if the first argument is considered to be respectively less
                       than, equal to, or greater than the second.
                       
                       Returning non-integer values from the comparison function, such as <info>float</info>,
                       will result in an internal cast to <info>int</info> of the callback's return value. So
                       values such as <return>0.99</return> and <return>0.1</return> will both be cast to an integer value of <return>0</return>, which
                       will compare such values as equal.

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * ArrayIterator::asort
   * ArrayIterator::ksort
   * ArrayIterator::natcasesort
   * ArrayIterator::natsort
   * ArrayIterator::uksort
   * <strong>uasort()</strong>


id: ArrayIterator::uksort
type: function
doc:
<comment>Description:</comment>
  Sort by keys using a user-defined comparison function
  
  This method sorts the elements by keys using a user-supplied comparison function.
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  The comparison function must return an integer less than, equal to, or
                       greater than zero if the first argument is considered to be respectively less
                       than, equal to, or greater than the second.
                       
                       Returning non-integer values from the comparison function, such as <info>float</info>,
                       will result in an internal cast to <info>int</info> of the callback's return value. So
                       values such as <return>0.99</return> and <return>0.1</return> will both be cast to an integer value of <return>0</return>, which
                       will compare such values as equal.

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * ArrayIterator::asort
   * ArrayIterator::ksort
   * ArrayIterator::natcasesort
   * ArrayIterator::natsort
   * ArrayIterator::uksort
   * <strong>uksort()</strong>


id: ArrayIterator::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize
  
  Unserialize.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized ArrayIterator object to be unserialized.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * ArrayIterator::serialize


id: ArrayIterator::valid
type: function
doc:
<comment>Description:</comment>
  Check whether array contains more entries
  
  Checks if the <info>array</info> contains any more entries.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the iterator is valid, otherwise <info>false</info>


id: ArrayObject::ARRAY_AS_PROPS
type: constant
doc:
<comment>Description:</comment>
  Entries can be accessed as properties (read and write). The <class>ArrayObject</class> class uses its own logic
  to access properties, thus no warning or error is raised when trying to read or write dynamic
  properties.


id: ArrayObject::STD_PROP_LIST
type: constant
doc:
<comment>Description:</comment>
  Properties of the object have their normal functionality when accessed as list (<strong>var_dump()</strong>,
  foreach, etc.).


id: ArrayObject::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new array object
  
  This constructs a new array <info>object</info>.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$array</strong>          The <strong>$array</strong> parameter accepts an  <info>array</info> or an <info>Object</info>.
  <info>int</info>           <strong>$flags</strong>          Flags to control the behaviour of the <class>ArrayObject</class> object. See
                                ArrayObject::setFlags.
  <info>string</info>        <strong>$iteratorClass</strong>  Specify the class that will be used for iteration of the <class>ArrayObject</class>
                                object. The class must implement ArrayIterator.

<comment>See Also:</comment>
   * ArrayObject::setflags


id: ArrayObject::append
type: function
doc:
<comment>Description:</comment>
  Appends the value
  
  Appends a new value as the last element.
  
  This method cannot be called when the <class>ArrayObject</class> was constructed from an object. Use
  ArrayObject::offsetSet instead.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The value being appended.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * ArrayObject::offsetSet


id: ArrayObject::asort
type: function
doc:
<comment>Description:</comment>
  Sort the entries by value
  
  Sorts the entries in ascending order, such that its keys maintain their correlation with the
  values they are associated with.
  
  This is used mainly when sorting associative arrays where the actual element order is significant.
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  The optional second parameter <strong>$flags</strong> may be used to modify the sorting behavior using
               these values:
               
               Sorting type flags: <info>SORT_REGULAR</info> - compare items normally; the details are described
               in the comparison operators section<info>SORT_NUMERIC</info> - compare items
               numerically<info>SORT_STRING</info> - compare items as strings<info>SORT_LOCALE_STRING</info> - compare items
               as strings, based on the current locale. It uses the locale, which can be changed
               using <strong>setlocale()</strong> <info>SORT_NATURAL</info> - compare items as strings using "natural ordering"
               like <strong>natsort()</strong> <info>SORT_FLAG_CASE</info> - can be combined (bitwise OR) with <info>SORT_STRING</info> or
               <info>SORT_NATURAL</info> to sort strings case-insensitively
               
               <info>SORT_REGULAR</info> - compare items normally; the details are described in the comparison
               operators section
               
               <info>SORT_NUMERIC</info> - compare items numerically
               
               <info>SORT_STRING</info> - compare items as strings
               
               <info>SORT_LOCALE_STRING</info> - compare items as strings, based on the current locale. It uses
               the locale, which can be changed using <strong>setlocale()</strong>
               
               <info>SORT_NATURAL</info> - compare items as strings using "natural ordering" like <strong>natsort()</strong>
               
               <info>SORT_FLAG_CASE</info> - can be combined (bitwise OR) with <info>SORT_STRING</info> or <info>SORT_NATURAL</info> to
               sort strings case-insensitively

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * ArrayObject::ksort
   * ArrayObject::natsort
   * ArrayObject::natcasesort
   * ArrayObject::uasort
   * ArrayObject::uksort
   * <strong>asort()</strong>


id: ArrayObject::count
type: function
doc:
<comment>Description:</comment>
  Get the number of public properties in the ArrayObject
  
  Get the number of public properties in the <class>ArrayObject</class>.

<comment>Return:</comment>
  <info>int</info>  The number of public properties in the <class>ArrayObject</class>.
       
       When the <class>ArrayObject</class> is constructed from an array all properties are public.


id: ArrayObject::exchangeArray
type: function
doc:
<comment>Description:</comment>
  Exchange the array for another one
  
  Exchange the current <info>array</info> with another <info>array</info> or <info>object</info>.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$array</strong>  The new <info>array</info> or <info>object</info> to exchange with the current array.

<comment>Return:</comment>
  <info>array</info>  Returns the old <info>array</info>.


id: ArrayObject::getArrayCopy
type: function
doc:
<comment>Description:</comment>
  Creates a copy of the ArrayObject
  
  Exports the <class>ArrayObject</class> to an array.

<comment>Return:</comment>
  <info>array</info>  Returns a copy of the array. When the <class>ArrayObject</class> refers to an object, an array of the
         properties of that object will be returned.


id: ArrayObject::getFlags
type: function
doc:
<comment>Description:</comment>
  Gets the behavior flags
  
  Gets the behavior flags of the <class>ArrayObject</class>. See the ArrayObject::setFlags method for a list of the
  available flags.

<comment>Return:</comment>
  <info>int</info>  Returns the behavior flags of the ArrayObject.

<comment>See Also:</comment>
   * ArrayObject::setFlags


id: ArrayObject::getIterator
type: function
doc:
<comment>Description:</comment>
  Create a new iterator from an ArrayObject instance
  
  Create a new iterator from an <class>ArrayObject</class> instance.

<comment>Return:</comment>
  <info>Iterator</info>  An iterator from an <class>ArrayObject</class>.


id: ArrayObject::getIteratorClass
type: function
doc:
<comment>Description:</comment>
  Gets the iterator classname for the ArrayObject
  
  Gets the class name of the array iterator that is used by ArrayObject::getIterator().

<comment>Return:</comment>
  <info>string</info>  Returns the iterator class name that is used to iterate over this object.

<comment>See Also:</comment>
   * The ArrayObject::setIteratorClass method


id: ArrayObject::ksort
type: function
doc:
<comment>Description:</comment>
  Sort the entries by key
  
  Sorts the entries by key, maintaining key to entry correlations. This is useful mainly for
  associative arrays.
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  The optional second parameter <strong>$flags</strong> may be used to modify the sorting behavior using
               these values:
               
               Sorting type flags: <info>SORT_REGULAR</info> - compare items normally; the details are described
               in the comparison operators section<info>SORT_NUMERIC</info> - compare items
               numerically<info>SORT_STRING</info> - compare items as strings<info>SORT_LOCALE_STRING</info> - compare items
               as strings, based on the current locale. It uses the locale, which can be changed
               using <strong>setlocale()</strong> <info>SORT_NATURAL</info> - compare items as strings using "natural ordering"
               like <strong>natsort()</strong> <info>SORT_FLAG_CASE</info> - can be combined (bitwise OR) with <info>SORT_STRING</info> or
               <info>SORT_NATURAL</info> to sort strings case-insensitively
               
               <info>SORT_REGULAR</info> - compare items normally; the details are described in the comparison
               operators section
               
               <info>SORT_NUMERIC</info> - compare items numerically
               
               <info>SORT_STRING</info> - compare items as strings
               
               <info>SORT_LOCALE_STRING</info> - compare items as strings, based on the current locale. It uses
               the locale, which can be changed using <strong>setlocale()</strong>
               
               <info>SORT_NATURAL</info> - compare items as strings using "natural ordering" like <strong>natsort()</strong>
               
               <info>SORT_FLAG_CASE</info> - can be combined (bitwise OR) with <info>SORT_STRING</info> or <info>SORT_NATURAL</info> to
               sort strings case-insensitively

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * ArrayObject::asort
   * ArrayObject::natsort
   * ArrayObject::natcasesort
   * ArrayObject::uasort
   * ArrayObject::uksort
   * <strong>ksort()</strong>


id: ArrayObject::natcasesort
type: function
doc:
<comment>Description:</comment>
  Sort an array using a case insensitive "natural order" algorithm
  
  This method is a case insensitive version of ArrayObject::natsort.
  
  This method implements a sort algorithm that orders alphanumeric strings in the way a human being
  would while maintaining key/value associations.  This is described as a "natural ordering".
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.

<comment>Return:</comment>
  <info>true</info>  No value is returned.

<comment>See Also:</comment>
   * ArrayObject::asort
   * ArrayObject::ksort
   * ArrayObject::natsort
   * ArrayObject::uasort
   * ArrayObject::uksort
   * <strong>natcasesort()</strong>


id: ArrayObject::natsort
type: function
doc:
<comment>Description:</comment>
  Sort entries using a "natural order" algorithm
  
  This method implements a sort algorithm that orders alphanumeric strings in the way a human being
  would while maintaining key/value associations. This is described as a "natural ordering".  An
  example of the difference between this algorithm and the regular computer string sorting
  algorithms (used in ArrayObject::asort) method can be seen in the example below.
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.

<comment>Return:</comment>
  <info>true</info>  No value is returned.

<comment>See Also:</comment>
   * ArrayObject::asort
   * ArrayObject::ksort
   * ArrayObject::natcasesort
   * ArrayObject::uasort
   * ArrayObject::uksort
   * <strong>natsort()</strong>


id: ArrayObject::offsetExists
type: function
doc:
<comment>Description:</comment>
  Returns whether the requested index exists

<comment>Param:</comment>
  <info>mixed</info>  <strong>$key</strong>  The index being checked.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if the requested index exists, otherwise <info>false</info>


id: ArrayObject::offsetGet
type: function
doc:
<comment>Description:</comment>
  Returns the value at the specified index

<comment>Param:</comment>
  <info>mixed</info>  <strong>$key</strong>  The index with the value.

<comment>Return:</comment>
  <info>mixed</info>  The value at the specified index or <info>null</info>.


id: ArrayObject::offsetSet
type: function
doc:
<comment>Description:</comment>
  Sets the value at the specified index to newval
  
  Sets the value at the specified index to newval.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$key</strong>    The index being set.
  <info>mixed</info>  <strong>$value</strong>  The new value for the <strong>$key</strong>.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * ArrayObject::append


id: ArrayObject::offsetUnset
type: function
doc:
<comment>Description:</comment>
  Unsets the value at the specified index
  
  Unsets the value at the specified index.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$key</strong>  The index being unset.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: ArrayObject::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize an ArrayObject
  
  Serializes an <class>ArrayObject</class>.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>string</info>  The serialized representation of the <class>ArrayObject</class>.

<comment>See Also:</comment>
   * ArrayObject::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: ArrayObject::setFlags
type: function
doc:
<comment>Description:</comment>
  Sets the behavior flags
  
  Set the flags that change the behavior of the ArrayObject.

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  The new ArrayObject behavior. It takes on either a bitmask, or named constants. Using
               named constants is strongly encouraged to ensure compatibility for future versions.
               
               The available behavior flags are listed below. The actual meanings of these flags are
               described in the predefined constants. ArrayObject behavior
               flagsvalueconstant1ArrayObject::STD_PROP_LIST2ArrayObject::ARRAY_AS_PROPS

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: ArrayObject::setIteratorClass
type: function
doc:
<comment>Description:</comment>
  Sets the iterator classname for the ArrayObject
  
  Sets the classname of the array iterator that is used by ArrayObject::getIterator().

<comment>Param:</comment>
  <info>string</info>  <strong>$iteratorClass</strong>  The classname of the array iterator to use when iterating over this
                          object.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: ArrayObject::uasort
type: function
doc:
<comment>Description:</comment>
  Sort the entries with a user-defined comparison function and maintain key association
  
  This function sorts the entries such that keys maintain their correlation with the entry that they
  are associated with, using a user-defined comparison function.
  
  This is used mainly when sorting associative arrays where the actual element order is significant.
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  The comparison function must return an integer less than, equal to, or
                       greater than zero if the first argument is considered to be respectively less
                       than, equal to, or greater than the second.
                       
                       Returning non-integer values from the comparison function, such as <info>float</info>,
                       will result in an internal cast to <info>int</info> of the callback's return value. So
                       values such as <return>0.99</return> and <return>0.1</return> will both be cast to an integer value of <return>0</return>, which
                       will compare such values as equal.

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * ArrayObject::asort
   * ArrayObject::ksort
   * ArrayObject::natsort
   * ArrayObject::natcasesort
   * ArrayObject::uksort
   * <strong>uasort()</strong>


id: ArrayObject::uksort
type: function
doc:
<comment>Description:</comment>
  Sort the entries by keys using a user-defined comparison function
  
  This function sorts the keys of the entries using a user-supplied comparison function. The key to
  entry correlations will be maintained.
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  The comparison function must return an integer less than, equal to, or
                       greater than zero if the first argument is considered to be respectively less
                       than, equal to, or greater than the second.
                       
                       Returning non-integer values from the comparison function, such as <info>float</info>,
                       will result in an internal cast to <info>int</info> of the callback's return value. So
                       values such as <return>0.99</return> and <return>0.1</return> will both be cast to an integer value of <return>0</return>, which
                       will compare such values as equal.

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * ArrayObject::asort
   * ArrayObject::ksort
   * ArrayObject::natsort
   * ArrayObject::natcasesort
   * ArrayObject::uasort
   * <strong>uksort()</strong>


id: ArrayObject::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize an ArrayObject
  
  Unserializes a serialized <class>ArrayObject</class>.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>ArrayObject</class>.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * ArrayIterator::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: Attribute
type: class
doc:
<comment>Description:</comment>
  Attributes offer the ability to add structured, machine-readable metadata information on
  declarations in code: Classes, methods, functions, parameters, properties and class constants can
  be the target of an attribute. The metadata defined by attributes can then be inspected at runtime
  using the Reflection APIs. Attributes could therefore be thought of as a configuration language
  embedded directly into code.


id: Attribute::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Attribute instance
  
  Constructs a new <class>Attribute</class> instance.

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  


id: BackedEnum
type: class
doc:
<comment>Description:</comment>
  The <class>BackedEnum</class> interface is automatically applied to backed enumerations by the engine.  It may
  not be implemented by user-defined classes. Enumerations may not override its methods, as default
  implementations are provided by the engine.  It is available only for type checks.


id: BackedEnum::from
type: function
doc:
<comment>Description:</comment>
  Maps a scalar to an enum instance
  
  The from method translates a <info>string</info> or <info>int</info> into the corresponding Enum case, if any.  If there is
  no matching case defined, it will throw a <class>ValueError</class>.

<comment>Param:</comment>
  <info>int|string</info>  <strong>$value</strong>  The scalar value to map to an enum case.

<comment>Return:</comment>
  <info>static</info>  A case instance of this enumeration.

<comment>See Also:</comment>
   * UnitEnum::cases
   * BackedEnum::tryFrom


id: BackedEnum::tryFrom
type: function
doc:
<comment>Description:</comment>
  Maps a scalar to an enum instance or null
  
  The tryFrom method translates a <info>string</info> or <info>int</info> into the corresponding Enum case, if any.  If there
  is no matching case defined, it will return null.

<comment>Param:</comment>
  <info>int|string</info>  <strong>$value</strong>  The scalar value to map to an enum case.

<comment>Return:</comment>
  <info>static|null</info>  A case instance of this enumeration, or <info>null</info> if not found.

<comment>See Also:</comment>
   * UnitEnum::cases
   * BackedEnum::from


id: BaseResult::getWarnings
type: function
doc:
<comment>Description:</comment>
  Fetch warnings from last operation
  
  Fetches warnings generated by MySQL server's last operation.

<comment>Return:</comment>
  <info>array</info>  An array of Warning objects from the last operation. Each object defines an error
         'message', error 'level', and error 'code'. An empty array is returned if no errors are
         present.


id: BaseResult::getWarningsCount
type: function
doc:
<comment>Description:</comment>
  Fetch warning count from last operation
  
  Returns the number of warnings raised by the last operation. Specifically,  these warnings are
  raised by the MySQL server.

<comment>Return:</comment>
  <info>int</info>  The number of warnings from the last operation.


id: CAL_DOW_DAYNO
type: constant
doc:
<comment>Description:</comment>
  For <strong>jddayofweek()</strong>: the day of the week as <info>int</info>, where <return>0</return> means Sunday and <return>6</return> means Saturday.


id: CAL_DOW_LONG
type: constant
doc:
<comment>Description:</comment>
  For <strong>jddayofweek()</strong>: the English name of the day of the week.


id: CAL_DOW_SHORT
type: constant
doc:
<comment>Description:</comment>
  For <strong>jddayofweek()</strong>: the abbreviated English name of the day of the week.


id: CAL_EASTER_ALWAYS_GREGORIAN
type: constant
doc:
<comment>Description:</comment>
  For <strong>easter_days()</strong>: calculate Easter according to the proleptic Gregorian calendar.


id: CAL_EASTER_ALWAYS_JULIAN
type: constant
doc:
<comment>Description:</comment>
  For <strong>easter_days()</strong>: calculate Easter according to the Julian calendar.


id: CAL_EASTER_DEFAULT
type: constant
doc:
<comment>Description:</comment>
  For <strong>easter_days()</strong>: calculate Easter for years before 1753 according to the Julian calendar, and
  for later years according to the Gregorian calendar.


id: CAL_EASTER_ROMAN
type: constant
doc:
<comment>Description:</comment>
  For <strong>easter_days()</strong>: calculate Easter for years before 1583 according to the Julian calendar, and
  for later years according to the Gregorian calendar.


id: CAL_FRENCH
type: constant
doc:
<comment>Description:</comment>
  For <strong>cal_days_in_month()</strong>, <strong>cal_from_jd()</strong>, <strong>cal_info()</strong> and <strong>cal_to_jd()</strong>: use the French Repuclican
  calendar.


id: CAL_GREGORIAN
type: constant
doc:
<comment>Description:</comment>
  For <strong>cal_days_in_month()</strong>, <strong>cal_from_jd()</strong>, <strong>cal_info()</strong> and <strong>cal_to_jd()</strong>: use the proleptic Gregorian
  calendar.


id: CAL_JEWISH
type: constant
doc:
<comment>Description:</comment>
  For <strong>cal_days_in_month()</strong>, <strong>cal_from_jd()</strong>, <strong>cal_info()</strong> and <strong>cal_to_jd()</strong>: use the Jewish calendar.


id: CAL_JEWISH_ADD_ALAFIM
type: constant
doc:
<comment>Description:</comment>
  For <strong>jdtojewish()</strong>: adds the word alafim as thousands separator to the year number.


id: CAL_JEWISH_ADD_ALAFIM_GERESH
type: constant
doc:
<comment>Description:</comment>
  For <strong>jdtojewish()</strong>: adds a geresh symbol (which resembles a single-quote mark) as thousands
  separator to the year number.


id: CAL_JEWISH_ADD_GERESHAYIM
type: constant
doc:
<comment>Description:</comment>
  For <strong>jdtojewish()</strong>: add a gershayim symbol (which resembles a double-quote mark) before the final
  letter of the day and year numbers.


id: CAL_JULIAN
type: constant
doc:
<comment>Description:</comment>
  For <strong>cal_days_in_month()</strong>, <strong>cal_from_jd()</strong>, <strong>cal_info()</strong> and <strong>cal_to_jd()</strong>: use the Julian calendar.


id: CAL_MONTH_FRENCH
type: constant
doc:
<comment>Description:</comment>
  For <strong>jdmonthname()</strong>: the French Republican month name.


id: CAL_MONTH_GREGORIAN_SHORT
type: constant
doc:
<comment>Description:</comment>
  For <strong>jdmonthname()</strong>: the abbreviated Gregorian month name.


id: CAL_MONTH_JULIAN_SHORT
type: constant
doc:
<comment>Description:</comment>
  For <strong>jdmonthname()</strong>: the abbreviated Julian month name.


id: CASE_LOWER
type: constant
doc:
<comment>Description:</comment>
  <info>CASE_LOWER</info> is used with <strong>array_change_key_case()</strong> and is used to convert array keys to lower case.
  This is also the default case for <strong>array_change_key_case()</strong>. As of PHP 8.2.0, only ASCII characters
  will be converted.


id: CASE_UPPER
type: constant
doc:
<comment>Description:</comment>
  <info>CASE_UPPER</info> is used with <strong>array_change_key_case()</strong> and is used to convert array keys to upper case.
  As of PHP 8.2.0, only ASCII characters will be converted.


id: CLSCTX_ALL
type: constant
doc:
<comment>Description:</comment>
  Indicates all class contexts. This definition ORs  <info>CLSCTX_INPROC_HANDLER</info> and  <info>CLSCTX_SERVER</info>.


id: CLSCTX_INPROC_HANDLER
type: constant
doc:
<comment>Description:</comment>
  The code that manages objects of this class is an in-process  handler. This is a DLL that runs in
  the client process and  implements client-side structures of this class when instances  of the
  class are accessed remotely.


id: CLSCTX_INPROC_SERVER
type: constant
doc:
<comment>Description:</comment>
  The code that creates and manages objects of this class is  a DLL that runs in the same process as
  the caller of the  function specifying the class context.


id: CLSCTX_LOCAL_SERVER
type: constant
doc:
<comment>Description:</comment>
  The EXE code that creates and manages objects of this class runs on  same machine but is loaded in
  a separate process space.


id: CLSCTX_REMOTE_SERVER
type: constant
doc:
<comment>Description:</comment>
  A remote context. The code that creates and manages objects of this  class is run on a different
  computer.


id: CLSCTX_SERVER
type: constant
doc:
<comment>Description:</comment>
  Indicates server code, whether in-process, local, or remote. This  definition ORs
  <info>CLSCTX_INPROC_SERVER</info>,  <info>CLSCTX_LOCAL_SERVER</info>, and  <info>CLSCTX_REMOTE_SERVER</info>.


id: CL_EXPUNGE
type: constant
doc:
<comment>Description:</comment>
  silently expunge the mailbox before closing when calling <strong>imap_close()</strong>


id: COMPersistHelper
type: class
doc:
<comment>Description:</comment>
  <class>COMPersistHelper</class> improves the interoperability of COM and PHP with regard to the php.ini directive
  open_basedir, and stream resources.


id: COMPersistHelper::GetCurFileName
type: function
doc:
<comment>Description:</comment>
  Get current filename
  
  Retrieves the current name of the file associated with the object.

<comment>Return:</comment>
  <info>string|false</info>  Returns the current name of the file associated with the object.


id: COMPersistHelper::GetMaxStreamSize
type: function
doc:
<comment>Description:</comment>
  Get maximum stream size
  
  Retrieves the size of the stream (in bytes) needed to save the object.

<comment>Return:</comment>
  <info>int</info>  Returns the size of the stream (in bytes) needed to save the object.


id: COMPersistHelper::InitNew
type: function
doc:
<comment>Description:</comment>
  Initialize object to default state
  
  Initializes an object to a default state.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: COMPersistHelper::LoadFromFile
type: function
doc:
<comment>Description:</comment>
  Load object from file
  
  Opens the specified file and initializes an object from the file contents.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The name of the file from which to load the object.
  <info>int</info>     <strong>$flags</strong>     The access mode to be used when opening the file. Possible values are taken
                     from the STGM enumeration. The method can treat this value as a suggestion,
                     adding more restrictive permissions if necessary. If <strong>$flags</strong> is <return>0</return>, the
                     implementation is supposed to open the file using whatever default permissions
                     are used when a user opens the file.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: COMPersistHelper::LoadFromStream
type: function
doc:
<comment>Description:</comment>
  Load object from stream
  
  Initializes an object from the stream where it was saved previously.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  The stream resource from which to load the object.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: COMPersistHelper::SaveToFile
type: function
doc:
<comment>Description:</comment>
  Save object to file
  
  Saves a copy of the object to the specified file.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$filename</strong>  The name of the file to which to save the object.
  <info>bool</info>         <strong>$remember</strong>  Indicates whether the <strong>$filename</strong> parameter is to be used as the current
                          working file. If <info>true</info>, <strong>$filename</strong> becomes the current file and the object
                          is supposed to clear its dirty flag after the save. If <info>false</info>, this save
                          operation is a "Save A Copy As ..." operation. In this case, the current
                          file is unchanged and the object is not supposed to clear its dirty flag.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: COMPersistHelper::SaveToStream
type: function
doc:
<comment>Description:</comment>
  Save object to stream
  
  Saves an object to the specified stream.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  The stream resource to which to save the object.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: COMPersistHelper::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a COMPersistHelper object
  
  Constructs a persistence helper object, usually associated with a <strong>$variant</strong>.

<comment>Param:</comment>
  <info>variant|null</info>  <strong>$variant</strong>  A COM object which implements IDispatch. To be able to successfully call
                          any of <class>COMPersistHelper</class>'s methods, the object has to implement
                          IPersistFile, IPersistStream and/or IPersistStreamInit.
                          
                          Passing <info>null</info> as <strong>$variant</strong> is only useful if the object is to be loaded from
                          a stream by calling COMPersistHelper::LoadFromStream.


id: CP_MOVE
type: constant
doc:
<comment>Description:</comment>
  Delete the messages from the current mailbox after copying with <strong>imap_mail_copy()</strong>


id: CREDITS_ALL
type: constant
doc:
<comment>Description:</comment>
  -1
  
  All the credits, equivalent to using: <return>CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP +
  CREDITS_MODULES + CREDITS_QA CREDITS_FULLPAGE</return>. It generates a complete stand-alone HTML page with
  the appropriate tags. This is the default value.


id: CREDITS_FULLPAGE
type: constant
doc:
<comment>Description:</comment>
  Usually used in combination with the other flags. Indicates that a complete stand-alone HTML page
  needs to be printed including the information indicated by the other flags.


id: CREDITS_GENERAL
type: constant
doc:
<comment>Description:</comment>
  General credits: Language design and concept, PHP authors and SAPI module.


id: CRYPT_BLOWFISH
type: constant
doc:
<comment>Description:</comment>
  Indicates whether Blowfish hashes are supported in <strong>crypt()</strong>. Always <return>1</return>.


id: CRYPT_EXT_DES
type: constant
doc:
<comment>Description:</comment>
  Indicates whether extended DES-based hashes are supported in <strong>crypt()</strong>. Always <return>1</return>.


id: CRYPT_MD5
type: constant
doc:
<comment>Description:</comment>
  Indicates whether MD5 hashes are supported in <strong>crypt()</strong>. Always <return>1</return>.


id: CRYPT_SHA256
type: constant
doc:
<comment>Description:</comment>
  Indicates whether SHA-256 hashes are supported in <strong>crypt()</strong>. Always <return>1</return>.


id: CRYPT_SHA512
type: constant
doc:
<comment>Description:</comment>
  Indicates whether SHA-512 hashes are supported in <strong>crypt()</strong>. Always <return>1</return>.


id: CRYPT_STD_DES
type: constant
doc:
<comment>Description:</comment>
  Indicates whether standard DES-based hashes are supported in <strong>crypt()</strong>. Always <return>1</return>.


id: CURLFile
type: class
doc:
<comment>Description:</comment>
  This class or <class>CURLStringFile</class> should be used to upload a file with <info>CURLOPT_POSTFIELDS</info>.
  
  Unserialization of <class>CURLFile</class> instances is not allowed. As of PHP 7.4.0, serialization is forbidden
  in the first place.


id: CURLFile::__construct
type: function
doc:
<comment>Description:</comment>
  Create a CURLFile object
  
  Object-oriented style
  
  Procedural style
  
  Creates a <class>CURLFile</class> object, used to upload a file with <info>CURLOPT_POSTFIELDS</info>.

<comment>Param:</comment>
  <info>string</info>       <strong>$filename</strong>         Path to the file which will be uploaded.
  <info>string|null</info>  <strong>$mime_type</strong>        Mimetype of the file.
  <info>string|null</info>  <strong>$posted_filename</strong>  Name of the file to be used in the upload data.

<comment>Return:</comment>
  <info>CURLFile</info>  Returns a <class>CURLFile</class> object.

<comment>See Also:</comment>
   * <strong>curl_setopt()</strong>


id: CURLFile::getFilename
type: function
doc:
<comment>Description:</comment>
  Get file name

<comment>Return:</comment>
  <info>string</info>  Returns file name.


id: CURLFile::getMimeType
type: function
doc:
<comment>Description:</comment>
  Get MIME type

<comment>Return:</comment>
  <info>string</info>  Returns MIME type.


id: CURLFile::getPostFilename
type: function
doc:
<comment>Description:</comment>
  Get file name for POST

<comment>Return:</comment>
  <info>string</info>  Returns file name for POST.


id: CURLFile::setMimeType
type: function
doc:
<comment>Description:</comment>
  Set MIME type

<comment>Param:</comment>
  <info>string</info>  <strong>$mime_type</strong>  MIME type to be used in POST data.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: CURLFile::setPostFilename
type: function
doc:
<comment>Description:</comment>
  Set file name for POST

<comment>Param:</comment>
  <info>string</info>  <strong>$posted_filename</strong>  Filename to be used in POST data.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: CURLINFO_HTTP_CODE
type: constant
doc:
<comment>Description:</comment>
  As of cURL 7.10.8, this is a legacy alias of <info>CURLINFO_RESPONSE_CODE</info>


id: CURLOPT_DOH_SSL_VERIFYHOST
type: constant
doc:
<comment>Description:</comment>
  Verify the DNS-over-HTTPS server's SSL certificate name fields against the host name. Available as
  of PHP 8.2.0 and cURL 7.76.0.


id: CURLOPT_DOH_SSL_VERIFYPEER
type: constant
doc:
<comment>Description:</comment>
  Verify the authenticity of the DNS-over-HTTPS server's SSL certificate. Available as of PHP 8.2.0
  and cURL 7.76.0.


id: CURLOPT_DOH_SSL_VERIFYSTATUS
type: constant
doc:
<comment>Description:</comment>
  Tell cURL to verify the status of the DNS-over-HTTPS server certificate using the "Certificate
  Status Request" TLS extension (OCSP stapling). Available as of PHP 8.2.0 and cURL 7.76.0.


id: CURLOPT_DOH_URL
type: constant
doc:
<comment>Description:</comment>
  Provides the DNS-over-HTTPS URL. Available as of PHP 8.1.0 and cURL 7.62.0.


id: CURLOPT_HTTP09_ALLOWED
type: constant
doc:
<comment>Description:</comment>
  Available since PHP 7.3.15 and 7.4.3, respectively, and cURL 7.64.0


id: CURLOPT_ISSUERCERT_BLOB
type: constant
doc:
<comment>Description:</comment>
  Issuer SSL certificate from memory blob. Available as of PHP 8.1.0 and cURL 7.71.0.


id: CURLOPT_MUTE
type: constant
doc:
<comment>Description:</comment>
  Removed as of cURL 7.15.5; use <info>CURLOPT_RETURNTRANSFER</info> instead.


id: CURLOPT_PROXY_ISSUERCERT
type: constant
doc:
<comment>Description:</comment>
  Proxy issuer SSL certificate filename. Available as of PHP 8.1.0 and cURL 7.71.0.


id: CURLOPT_PROXY_ISSUERCERT_BLOB
type: constant
doc:
<comment>Description:</comment>
  Proxy issuer SSL certificate from memory blob. Available as of PHP 8.1.0 and cURL 7.71.0.


id: CURLOPT_PROXY_SSLCERT_BLOB
type: constant
doc:
<comment>Description:</comment>
  SSL proxy client certificate from memory blob. Available as of PHP 8.1.0 and cURL 7.71.0.


id: CURLOPT_PROXY_SSLKEY_BLOB
type: constant
doc:
<comment>Description:</comment>
  Private key for proxy cert from memory blob. Available as of PHP 8.1.0 and cURL 7.71.0.


id: CURLOPT_SSLCERT_BLOB
type: constant
doc:
<comment>Description:</comment>
  SSL client certificate from memory blob. Available as of PHP 8.1.0 and cURL 7.71.0.


id: CURLOPT_SSLKEY_BLOB
type: constant
doc:
<comment>Description:</comment>
  Private key for client cert from memory blob. Available as of PHP 8.1.0 and cURL 7.71.0.


id: CURLStringFile
type: class
doc:
<comment>Description:</comment>
  <class>CURLStringFile</class> makes it possible to upload a file directly from a variable. This is similar to
  <class>CURLFile</class>, but works with the contents of the file, not filename. This class or <class>CURLFile</class> should be
  used to upload the contents of the file with <info>CURLOPT_POSTFIELDS</info>.


id: CURLStringFile::__construct
type: function
doc:
<comment>Description:</comment>
  Create a CURLStringFile object
  
  Creates a <class>CURLStringFile</class> object, used to upload a file with <info>CURLOPT_POSTFIELDS</info>.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>      The contents to be uploaded.
  <info>string</info>  <strong>$postname</strong>  The name of the file to be used in the upload data.
  <info>string</info>  <strong>$mime</strong>      MIME type of the file (default is <return>application/octet-stream</return>).

<comment>See Also:</comment>
   * <strong>curl_setopt()</strong>


id: CURL_VERSION_ASYNCHDNS
type: constant
doc:
<comment>Description:</comment>
  Asynchronous DNS resolves. Available since PHP 7.3.0 and cURL 7.10.7


id: CURL_VERSION_CONV
type: constant
doc:
<comment>Description:</comment>
  Character conversions supported. Available since PHP 7.3.0 and cURL 7.15.4


id: CURL_VERSION_CURLDEBUG
type: constant
doc:
<comment>Description:</comment>
  Debug memory tracking supported. Available since PHP 7.3.6 and cURL 7.19.6


id: CURL_VERSION_DEBUG
type: constant
doc:
<comment>Description:</comment>
  Built with debug capabilities. Available since PHP 7.3.0 and cURL 7.10.6


id: CURL_VERSION_GSSAPI
type: constant
doc:
<comment>Description:</comment>
  Built against a GSS-API library. Available since PHP 7.3.0 and cURL 7.38.0


id: CURL_VERSION_GSSNEGOTIATE
type: constant
doc:
<comment>Description:</comment>
  Negotiate auth is supported. Available since PHP 7.3.0 and cURL 7.10.6 (deprecated since 7.38.0)


id: CURL_VERSION_IDN
type: constant
doc:
<comment>Description:</comment>
  Internationized Domain Names are supported. Available since PHP 7.3.0 and cURL 7.12.0


id: CURL_VERSION_KERBEROS5
type: constant
doc:
<comment>Description:</comment>
  Kerberos V5 auth is supported. Available since PHP 7.0.7 and cURL 7.40.0


id: CURL_VERSION_NTLM
type: constant
doc:
<comment>Description:</comment>
  NTLM auth is supported. Available since PHP 7.3.0 and cURL 7.10.6


id: CURL_VERSION_NTLM_WB
type: constant
doc:
<comment>Description:</comment>
  NTLM delegation to winbind helper is supported. Available since PHP 7.3.0 and cURL 7.22.0


id: CURL_VERSION_PSL
type: constant
doc:
<comment>Description:</comment>
  Mozilla's Public Suffix List, used for cookie domain verification. Available since PHP 7.3.6 and
  cURL 7.47.0


id: CURL_VERSION_SPNEGO
type: constant
doc:
<comment>Description:</comment>
  SPNEGO auth is supported. Available since PHP 7.3.0 and cURL 7.10.8


id: CURL_VERSION_SSPI
type: constant
doc:
<comment>Description:</comment>
  Built against Windows SSPI. Available since PHP 7.3.0 and cURL 7.13.2


id: CURL_VERSION_TLSAUTH_SRP
type: constant
doc:
<comment>Description:</comment>
  TLS-SRP auth is supported. Available since PHP 7.3.0 and cURL 7.21.4


id: CURL_VERSION_UNIX_SOCKETS
type: constant
doc:
<comment>Description:</comment>
  Unix domain sockets support. Available since PHP 7.0.7 and cURL 7.40.0


id: CachingIterator::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new CachingIterator object for the iterator
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>Iterator</info>  <strong>$iterator</strong>  Iterator to cache
  <info>int</info>       <strong>$flags</strong>     Bitmask of flags.


id: CachingIterator::__toString
type: function
doc:
<comment>Description:</comment>
  Return the string representation of the current element
  
  This function is
  currently not documented; only its argument list is available.
  
  Get the string representation of the current element.

<comment>Return:</comment>
  <info>string</info>  The <info>string</info> representation of the current element.


id: CachingIterator::count
type: function
doc:
<comment>Description:</comment>
  The number of elements in the iterator
  
  This function is
  currently not documented; only its argument list is available.
  
  May return the number of elements in the iterator.

<comment>Return:</comment>
  <info>int</info>  The count of the elements iterated over.


id: CachingIterator::current
type: function
doc:
<comment>Description:</comment>
  Return the current element
  
  This function is
  currently not documented; only its argument list is available.
  
  May return the current element in the iteration.

<comment>Return:</comment>
  <info>mixed</info>  Mixed

<comment>See Also:</comment>
   * Iterator::current


id: CachingIterator::getCache
type: function
doc:
<comment>Description:</comment>
  Retrieve the contents of the cache
  
  Retrieve the contents of the cache.
  
  The <info>CachingIterator::FULL_CACHE</info> flag must be being used.

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> containing the cache items.


id: CachingIterator::getFlags
type: function
doc:
<comment>Description:</comment>
  Get flags used
  
  This function is
  currently not documented; only its argument list is available.
  
  Get the bitmask of the flags used for this CachingIterator instance.

<comment>Return:</comment>
  <info>int</info>  Description...


id: CachingIterator::hasNext
type: function
doc:
<comment>Description:</comment>
  Check whether the inner iterator has a valid next element
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: CachingIterator::key
type: function
doc:
<comment>Description:</comment>
  Return the key for the current element
  
  This function is
  currently not documented; only its argument list is available.
  
  This method may return a key for the current element.

<comment>Return:</comment>
  <info>scalar</info>  


id: CachingIterator::next
type: function
doc:
<comment>Description:</comment>
  Move the iterator forward
  
  This function is
  currently not documented; only its argument list is available.
  
  Move the iterator forward.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: CachingIterator::offsetExists
type: function
doc:
<comment>Description:</comment>
  The offsetExists purpose
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>  The index being checked.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if an entry referenced by the offset exists, <info>false</info> otherwise.


id: CachingIterator::offsetGet
type: function
doc:
<comment>Description:</comment>
  The offsetGet purpose
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>  Description...

<comment>Return:</comment>
  <info>mixed</info>  Description...


id: CachingIterator::offsetSet
type: function
doc:
<comment>Description:</comment>
  The offsetSet purpose
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>    The index of the element to be set.
  <info>mixed</info>   <strong>$value</strong>  The new value for the <strong>$key</strong>.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: CachingIterator::offsetUnset
type: function
doc:
<comment>Description:</comment>
  The offsetUnset purpose
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>  The index of the element to be unset.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: CachingIterator::rewind
type: function
doc:
<comment>Description:</comment>
  Rewind the iterator
  
  This function is
  currently not documented; only its argument list is available.
  
  Rewind the iterator.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: CachingIterator::setFlags
type: function
doc:
<comment>Description:</comment>
  The setFlags purpose
  
  This function is
  currently not documented; only its argument list is available.
  
  Set the flags for the CachingIterator object.

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  Bitmask of the flags to set.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: CachingIterator::valid
type: function
doc:
<comment>Description:</comment>
  Check whether the current element is valid
  
  This function is
  currently not documented; only its argument list is available.
  
  Check whether the current element is valid.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: CallbackFilterIterator::__construct
type: function
doc:
<comment>Description:</comment>
  Create a filtered iterator from another iterator
  
  Creates a filtered iterator using the <strong>$callback</strong> to  determine which items are accepted or
  rejected.

<comment>Param:</comment>
  <info>Iterator</info>  <strong>$iterator</strong>  The iterator to be filtered.
  <info>callable</info>  <strong>$callback</strong>  The callback, which should return <info>true</info> to accept the current item or <info>false</info>
                       otherwise. See Examples.
                       
                       May be any valid <info>callable</info> value.

<comment>See Also:</comment>
   * CallbackFilterIterator Examples
   * CallbackFilterIterator::accept


id: CallbackFilterIterator::accept
type: function
doc:
<comment>Description:</comment>
  Calls the callback with the current value, the current key and the inner iterator as arguments
  
  This method calls the callback with the current value, current key  and the inner iterator.
  
  The callback is expected to return <info>true</info> if the current item is  to be accepted, or <info>false</info>
  otherwise.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> to accept the current item, or <info>false</info> otherwise.

<comment>See Also:</comment>
   * CallbackFilterIterator Examples
   * CallbackFilterIterator::__construct


id: Client::getClient
type: function
doc:
<comment>Description:</comment>
  Get client session
  
  Get session associated with the client.

<comment>Return:</comment>
  <info>mysql_xdevapi\Session</info>  A Session object.


id: Closure
type: class
doc:
<comment>Description:</comment>
  Class used to represent anonymous functions.
  
  Anonymous functions yield objects of this type. This class has methods that allow further control
  of the anonymous function after it has been created.
  
  Besides the methods listed here, this class also has an <return>__invoke</return> method. This is for consistency
  with other classes that implement calling magic, as this method is not used for calling the
  function.


id: Closure::__construct
type: function
doc:
<comment>Description:</comment>
  Constructor that disallows instantiation
  
  This method exists only to disallow instantiation of the <class>Closure</class> class. Objects of this class are
  created in the fashion described on the anonymous functions page.

<comment>See Also:</comment>
   * Anonymous functions


id: Closure::bind
type: function
doc:
<comment>Description:</comment>
  Duplicates a closure with a specific bound object and class scope
    
  
  This method is a static version of Closure::bindTo. See the documentation of that method for more
  information.

<comment>Param:</comment>
  <info>Closure</info>             <strong>$closure</strong>   The anonymous functions to bind.
  <info>object|null</info>         <strong>$newThis</strong>   The object to which the given anonymous function should be bound,
                                 or <info>null</info> for the closure to be unbound.
  <info>object|string|null</info>  <strong>$newScope</strong>  The class scope to which the closure is to be associated, or
                                 'static' to keep the current one. If an object is given, the type
                                 of the object will be used instead. This determines the visibility
                                 of protected and private methods of the bound object. It is not
                                 allowed to pass (an object of) an internal class as this parameter.

<comment>Return:</comment>
  <info>Closure|null</info>  Returns a new <class>Closure</class> object, or <info>null</info> on failure.

<comment>See Also:</comment>
   * Anonymous functions
   * Closure::bindTo


id: Closure::bindTo
type: function
doc:
<comment>Description:</comment>
  Duplicates the closure with a new bound object and class scope
    
  
  Create and return a new anonymous function with the same body and bound variables as this one, but
  possibly with a different bound object and a new class scope.
  
  The “bound object” determines the value <return>$this</return> will have in the function body and the “class scope”
  represents a class which determines which private and protected members the anonymous function
  will be able to access. Namely, the members that will be visible are the same as if the anonymous
  function were a method of the class given as value of the <strong>$newScope</strong> parameter.
  
  Static closures cannot have any bound object (the value of the parameter <strong>$newThis</strong> should be <info>null</info>),
  but this function can nevertheless be used to change their class scope.
  
  This function will ensure that for a non-static closure, having a bound instance will imply being
  scoped and vice-versa. To this end, non-static closures that are given a scope but a <info>null</info> instance
  are made static and non-static non-scoped closures that are given a non-null instance are scoped
  to an unspecified class.
  
  If you only want to duplicate the anonymous functions, you can use cloning instead.

<comment>Param:</comment>
  <info>object|null</info>         <strong>$newThis</strong>   The object to which the given anonymous function should be bound,
                                 or <info>null</info> for the closure to be unbound.
  <info>object|string|null</info>  <strong>$newScope</strong>  The class scope to which the closure is to be associated, or
                                 'static' to keep the current one. If an object is given, the type
                                 of the object will be used instead. This determines the visibility
                                 of protected and private methods of the bound object. It is not
                                 allowed to pass (an object of) an internal class as this parameter.

<comment>Return:</comment>
  <info>Closure|null</info>  Returns the newly created <class>Closure</class> object or <info>null</info> on failure.

<comment>See Also:</comment>
   * Anonymous functions
   * Closure::bind


id: Closure::call
type: function
doc:
<comment>Description:</comment>
  Binds and calls the closure
  
  Temporarily binds the closure to <strong>$newThis</strong>, and calls it with any given parameters.

<comment>Param:</comment>
  <info>object</info>  <strong>$newThis</strong>  The <info>object</info> to bind the closure to for the duration of the call.
  <info>mixed</info>   <strong>$args</strong>     Zero or more parameters, which will be given as parameters to the closure.

<comment>Return:</comment>
  <info>mixed</info>  Returns the return value of the closure.


id: Closure::fromCallable
type: function
doc:
<comment>Description:</comment>
  Converts a callable into a closure
  
  Create and return a new anonymous function from given <strong>$callback</strong> using the current scope. This
  method checks if the <strong>$callback</strong> is callable in the current scope and throws a <class>TypeError</class> if it is
  not.
  
  As of PHP 8.1.0, First class callable syntax has the same semantics as this method.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  The callable to convert.

<comment>Return:</comment>
  <info>Closure</info>  Returns the newly created <class>Closure</class> or throws a <class>TypeError</class> if the <strong>$callback</strong> is not callable
           in the current scope.

<comment>See Also:</comment>
   * Anonymous functions
   * First class callable syntax


id: Collator
type: class
doc:
<comment>Description:</comment>
  Provides string comparison capability with support for appropriate locale-sensitive sort
  orderings.


id: Collator::ALTERNATE_HANDLING
type: constant
doc:
<comment>Description:</comment>
  The Alternate attribute is used to control the handling of the so called variable characters in
  the UCA: whitespace, punctuation and symbols. If Alternate is set to NonIgnorable (N), then
  differences among these characters are of the same importance as differences among letters. If
  Alternate is set to Shifted (S), then these characters are of only minor importance. The Shifted
  value is often used in combination with Strength set to Quaternary. In such a case, whitespace,
  punctuation, and symbols are considered when comparing strings, but only if all other aspects of
  the strings (base letters, accents, and case) are identical. If Alternate is not set to Shifted,
  then there is no difference between a Strength of 3 and a Strength of 4. For more information and
  examples, see Variable_Weighting in the UCA. The reason the Alternate values are not simply On and
  Off is that additional Alternate values may be added in the future. The UCA option Blanked is
  expressed with Strength set to 3, and Alternate set to Shifted. The default for most locales is
  NonIgnorable. If Shifted is selected, it may be slower if there are many strings that are the same
  except for punctuation; sort key length will not be affected unless the strength level is also
  increased.
  
  Possible values are: <info>Collator::NON_IGNORABLE</info>(default)<info>Collator::SHIFTED</info><info>Collator::DEFAULT_VALUE</info>
  
  ALTERNATE_HANDLING rules S=3, A=N di Silva
  \< Di Silva \< diSilva \< U.S.A. \< USA  S=3, A=S di Silva = diSilva \< Di Silva \< U.S.A. = USA  S=4, A=S di Silva \< diSilva \< Di Silva \< U.S.A. \< USA
  
   S=3, A=N di Silva
  \< Di Silva \< diSilva \< U.S.A. \< USA  S=3, A=S di Silva = diSilva \< Di Silva \< U.S.A. = USA  S=4, A=S di Silva \< diSilva \< Di Silva \< U.S.A. \< USA


id: Collator::CASE_FIRST
type: constant
doc:
<comment>Description:</comment>
  The Case_First attribute is used to control whether uppercase letters come before lowercase
  letters or vice versa, in the absence of other differences in the strings. The possible values are
  Uppercase_First (U) and Lowercase_First (L), plus the standard Default and Off. There is almost no
  difference between the Off and Lowercase_First options in terms of results, so typically users
  will not use Lowercase_First: only Off or Uppercase_First. (People interested in the detailed
  differences between X and L should consult the <return>Collation Customization</return>). Specifying either L or U
  won't affect string comparison performance, but will affect the sort key length.
  
  Possible values are:
  <info>Collator::OFF</info>(default)<info>Collator::LOWER_FIRST</info><info>Collator::UPPER_FIRST</info><info>Collator:DEFAULT</info>
  
  CASE_FIRST rulesC=X or C=L "china"
  \< "China" \< "denmark" \< "Denmark"C=U "China" \< "china" \< "Denmark" \< "denmark"
  
  C=X or C=L "china"
  \< "China" \< "denmark" \< "Denmark"C=U "China" \< "china" \< "Denmark" \< "denmark"


id: Collator::CASE_LEVEL
type: constant
doc:
<comment>Description:</comment>
  The Case_Level attribute is used when ignoring accents but not case. In such a situation, set
  Strength to be Primary, and Case_Level to be On. In most locales, this setting is Off by default.
  There is a small string comparison performance and sort key impact if this attribute is set to be
  On.
  
  Possible values are: <info>Collator::OFF</info>(default)<info>Collator::ON</info><info>Collator::DEFAULT_VALUE</info>
  
  CASE_LEVEL rulesS=1, E=X role = Role = rôleS=1, E=O role = rôle \< Role
  
  S=1, E=X role = Role = rôleS=1, E=O role = rôle \< Role


id: Collator::FRENCH_COLLATION
type: constant
doc:
<comment>Description:</comment>
  Sort strings with different accents from the back of the string. This attribute is automatically
  set to On for the French locales and a few others. Users normally would not need to explicitly set
  this attribute. There is a string comparison performance cost when it is set On, but sort key
  length is unaffected. Possible values are:
  <info>Collator::ON</info><info>Collator::OFF</info>(default)<info>Collator::DEFAULT_VALUE</info>
  
  FRENCH_COLLATION rulesF=OFF cote \< coté \< côte \< côté F=ON cote \< côte \< coté \< côté
  
  F=OFF cote \< coté \< côte \< côté F=ON cote \< côte \< coté \< côté


id: Collator::HIRAGANA_QUATERNARY_MODE
type: constant
doc:
<comment>Description:</comment>
  Compatibility with JIS x 4061 requires the introduction of an additional level to distinguish
  Hiragana and Katakana characters. If compatibility with that standard is required, then this
  attribute should be set On, and the strength set to Quaternary. This will affect sort key length
  and string comparison string comparison performance.
  
  Possible values are: <info>Collator::OFF</info>(default)<info>Collator::ON</info><info>Collator::DEFAULT_VALUE</info>


id: Collator::NORMALIZATION_MODE
type: constant
doc:
<comment>Description:</comment>
  The Normalization setting determines whether text is thoroughly normalized or not in comparison.
  Even if the setting is off (which is the default for many locales), text as represented in common
  usage will compare correctly (for details, see UTN #5). Only if the accent marks are in
  noncanonical order will there be a problem. If the setting is On, then the best results are
  guaranteed for all possible text input. There is a medium string comparison performance cost if
  this attribute is On, depending on the frequency of sequences that require normalization. There is
  no significant effect on sort key length. If the input text is known to be in NFD or NFKD
  normalization forms, there is no need to enable this Normalization option.
  
  Possible values are: <info>Collator::OFF</info>(default)<info>Collator::ON</info><info>Collator::DEFAULT_VALUE</info>


id: Collator::NUMERIC_COLLATION
type: constant
doc:
<comment>Description:</comment>
  When turned on, this attribute generates a collation key for the numeric value of substrings of
  digits. This is a way to get '100' to sort AFTER '2'.
  
  Possible values are: <info>Collator::OFF</info>(default)<info>Collator::ON</info><info>Collator::DEFAULT_VALUE</info>


id: Collator::STRENGTH
type: constant
doc:
<comment>Description:</comment>
  The ICU Collation Service supports many levels of comparison (named "Levels", but also known as
  "Strengths"). Having these categories enables ICU to sort strings precisely according to local
  conventions. However, by allowing the levels to be selectively employed, searching for a string in
  text can be performed with various matching conditions. For more detailed information, see
  <strong>collator_set_strength()</strong> chapter.
  
  Possible values are:
  <info>Collator::PRIMARY</info><info>Collator::SECONDARY</info><info>Collator::TERTIARY</info>(default)<info>Collator::QUATERNARY</info><info>Collator::IDENTICAL</info><info>Collator::DEFAULT_VALUE</info>


id: Collator::__construct
type: function
doc:
<comment>Description:</comment>
  Create a collator
  
  Creates a new instance of <class>Collator</class>.

<comment>Param:</comment>
  <info>string</info>  <strong>$locale</strong>  The locale whose collation rules should be used. Special values for locales can
                   be passed in - if an empty <info>string</info> is passed for the locale, the default locale's
                   collation rules will be used. If <return>"root"</return> is passed, UCA rules will be used.
                   
                   The <strong>$locale</strong> attribute is typically the most important attribute for correct
                   sorting and matching, according to the user expectations in different countries
                   and regions. The default UCA ordering will only sort a few languages such as
                   Dutch and Portuguese correctly ("correctly" meaning according to the normal
                   expectations for users of the languages). Otherwise, you need to supply the
                   locale to UCA in order to properly collate text for a given language. Thus a
                   locale needs to be supplied so as to choose a collator that is correctly tailored
                   for that locale. The choice of a locale will automatically preset the values for
                   all of the attributes to something that is reasonable for that locale. Thus most
                   of the time the other attributes do not need to be explicitly set. In some cases,
                   the choice of locale will make a difference in string comparison performance
                   and/or sort key length.

<comment>See Also:</comment>
   * <strong>Collator::create()</strong>
   * <strong>collator_create()</strong>


id: Collator::asort
type: function
doc:
<comment>Description:</comment>
  Sort array maintaining index association
  
  Object-oriented style
  
  Procedural style
  
  This function sorts an array such that array indices maintain their correlation with the array
  elements they are associated with. This is used mainly when sorting associative arrays where the
  actual element order is significant. Array elements will have sort order according to current
  locale rules.
  
  Equivalent to standard PHP <strong>asort()</strong>.

<comment>Param:</comment>
  <info>Collator</info>  <strong>$object</strong>  <class>Collator</class> object.
  <info>array</info>     <strong>$array</strong>   Array of strings to sort.
  <info>int</info>       <strong>$flags</strong>   Optional sorting type, one of the following: <info>Collator::SORT_REGULAR</info> - compare
                     items normally (don't change types) <info>Collator::SORT_NUMERIC</info> - compare items
                     numerically <info>Collator::SORT_STRING</info> - compare items as strings
                     
                     <info>Collator::SORT_REGULAR</info> - compare items normally (don't change types)
                     
                     <info>Collator::SORT_NUMERIC</info> - compare items numerically
                     
                     <info>Collator::SORT_STRING</info> - compare items as strings
                     
                     Default <strong>$flags</strong> value is <info>Collator::SORT_REGULAR</info>. It is also used if an invalid
                     <strong>$flags</strong> value has been specified.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <class>Collator</class> constants
   * <strong>collator_sort()</strong>
   * <strong>collator_sort_with_sort_keys()</strong>


id: Collator::compare
type: function
doc:
<comment>Description:</comment>
  Compare two Unicode strings
  
  Object-oriented style
  
  Procedural style
  
  Compare two Unicode strings according to collation rules.

<comment>Param:</comment>
  <info>Collator</info>  <strong>$object</strong>   <class>Collator</class> object.
  <info>string</info>    <strong>$string1</strong>  The first string to compare.
  <info>string</info>    <strong>$string2</strong>  The second string to compare.

<comment>Return:</comment>
  <info>int|false</info>  Return comparison result:
             
              1 if <strong>$string1</strong> is greater than  <strong>$string2</strong> ;  0 if <strong>$string1</strong> is equal to  <strong>$string2</strong>;  -1 if
             <strong>$string1</strong> is less than  <strong>$string2</strong> .  Returns <info>false</info> on failure.
             
             1 if <strong>$string1</strong> is greater than  <strong>$string2</strong> ;
             
             0 if <strong>$string1</strong> is equal to  <strong>$string2</strong>;
             
             -1 if <strong>$string1</strong> is less than  <strong>$string2</strong> .
             
             This function may
             return Boolean <info>false</info>, but may also return a non-Boolean value which
             evaluates to <info>false</info>. Please read the section on Booleans for more
             information. Use the ===
             operator for testing the return value of this
             function.

<comment>See Also:</comment>
   * <strong>collator_sort()</strong>


id: Collator::create
type: function
doc:
<comment>Description:</comment>
  Create a collator
  
  Object-oriented style
  
  Procedural style
  
  The strings will be compared using the options already specified.

<comment>Param:</comment>
  <info>string</info>  <strong>$locale</strong>  The locale containing the required collation rules. Special values for locales
                   can be passed in - if an empty <info>string</info> is passed for the locale, the default
                   locale collation rules will be used. If <return>"root"</return> is passed, UCA rules will be used.

<comment>Return:</comment>
  <info>Collator|null</info>  Return new instance of <class>Collator</class> object, or <info>null</info> on error.

<comment>See Also:</comment>
   * <strong>Collator::__construct()</strong>


id: Collator::getAttribute
type: function
doc:
<comment>Description:</comment>
  Get collation attribute value
  
  Object-oriented style
  
  Procedural style
  
  Get a value of an integer collator attribute.

<comment>Param:</comment>
  <info>Collator</info>  <strong>$object</strong>     <class>Collator</class> object.
  <info>int</info>       <strong>$attribute</strong>  Attribute to get value for.

<comment>Return:</comment>
  <info>int|false</info>  Attribute value, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <class>Collator</class> constants
   * <strong>collator_set_attribute()</strong>
   * <strong>collator_get_strength()</strong>


id: Collator::getErrorCode
type: function
doc:
<comment>Description:</comment>
  Get collator's last error code
  
  Object-oriented style
  
  Procedural style
  
  

<comment>Param:</comment>
  <info>Collator</info>  <strong>$object</strong>  <class>Collator</class> object.

<comment>Return:</comment>
  <info>int|false</info>  Error code returned by the last Collator API function call, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>collator_get_error_message()</strong>


id: Collator::getErrorMessage
type: function
doc:
<comment>Description:</comment>
  Get text for collator's last error code
  
  Object-oriented style
  
  Procedural style
  
  Retrieves the message for the last error.

<comment>Param:</comment>
  <info>Collator</info>  <strong>$object</strong>  <class>Collator</class> object.

<comment>Return:</comment>
  <info>string|false</info>  Description of an error occurred in the last Collator API function call, or <info>false</info> on
                failure.

<comment>See Also:</comment>
   * <strong>collator_get_error_code()</strong>


id: Collator::getLocale
type: function
doc:
<comment>Description:</comment>
  Get the locale name of the collator
  
  Object-oriented style
  
  Procedural style
  
  Get collector locale name.

<comment>Param:</comment>
  <info>Collator</info>  <strong>$object</strong>  <class>Collator</class> object.
  <info>int</info>       <strong>$type</strong>    You can choose between valid and actual locale ( <info>Locale::VALID_LOCALE</info> and
                     <info>Locale::ACTUAL_LOCALE</info>, respectively).

<comment>Return:</comment>
  <info>string|false</info>  Real locale name from which the collation data comes. If the collator was
                instantiated from rules or an error occurred, returns <info>false</info>.

<comment>See Also:</comment>
   * <strong>collator_create()</strong>


id: Collator::getSortKey
type: function
doc:
<comment>Description:</comment>
  Get sorting key for a string
  
  Object-oriented style
  
  Procedural style
  
  Return collation key for a string. Collation keys can be compared directly instead of strings,
  though are implementation specific and may change between ICU library versions. Sort keys are
  generally only useful in databases or other circumstances where function calls are extremely
  expensive.

<comment>Param:</comment>
  <info>Collator</info>  <strong>$object</strong>  <class>Collator</class> object.
  <info>string</info>    <strong>$string</strong>  The string to produce the key from.

<comment>Return:</comment>
  <info>string|false</info>  Returns the collation key for the string,  or <info>false</info> on failure.
                
                This function may
                return Boolean <info>false</info>, but may also return a non-Boolean value which
                evaluates to <info>false</info>. Please read the section on Booleans for more
                information. Use the ===
                operator for testing the return value of this
                function.

<comment>See Also:</comment>
   * <strong>collator_sort()</strong>
   * <strong>collator_sort_with_sort_keys()</strong>


id: Collator::getStrength
type: function
doc:
<comment>Description:</comment>
  Get current collation strength
  
  Object-oriented style
  
  Procedural style
  
  

<comment>Param:</comment>
  <info>Collator</info>  <strong>$object</strong>  <class>Collator</class> object.

<comment>Return:</comment>
  <info>int</info>  Returns current collation strength, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <class>Collator</class> constants
   * <strong>collator_set_strength()</strong>
   * <strong>collator_get_attribute()</strong>


id: Collator::setAttribute
type: function
doc:
<comment>Description:</comment>
  Set collation attribute
  
  Object-oriented style
  
  Procedural style
  
  

<comment>Param:</comment>
  <info>Collator</info>  <strong>$object</strong>     <class>Collator</class> object.
  <info>int</info>       <strong>$attribute</strong>  Attribute.
  <info>int</info>       <strong>$value</strong>      Attribute value.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <class>Collator</class> constants
   * <strong>collator_get_attribute()</strong>
   * <strong>collator_set_strength()</strong>


id: Collator::setStrength
type: function
doc:
<comment>Description:</comment>
  Set collation strength
  
  Object-oriented style
  
  Procedural style
  
  The ICU Collation Service supports many levels of comparison (named "Levels", but also known as
  "Strengths"). Having these categories enables ICU to sort strings precisely according to local
  conventions. However, by allowing the levels to be selectively employed, searching for a string in
  text can be performed with various matching conditions.
  
  Primary Level: Typically, this is used to denote differences between base characters (for example,
  "a"
  \< "b"). It is the strongest difference. For example, dictionaries are divided into different sections by base character. This is also called the <return>level
  1</return> strength. Secondary Level: Accents in the characters are considered secondary differences (for
  example, "as"
  \< "às" \< "at"). Other differences between letters can also be considered secondary differences, depending on the language. A secondary difference is ignored when there is a primary difference anywhere in the strings. This is also called the <return>level
  2</return> strength.  Note: In some languages (such as Danish), certain accented letters are considered to
  be separate base characters. In most languages, however, an accented letter only has a secondary
  difference from the unaccented version of that letter.  Tertiary Level: Upper and lower case
  differences in characters are distinguished at the tertiary level (for example, "ao"
  \< "Ao" \< "aò"). In addition, a variant of a letter differs from the base form on the tertiary level (such as "A" and " "). Another example is the difference between large and small Kana. A tertiary difference is ignored when there is a primary or secondary difference anywhere in the strings. This is also called the <return>level
  3</return> strength. Quaternary Level: When punctuation is ignored (see Ignoring Punctuations ) at levels
  1-3, an additional level can be used to distinguish words with and without punctuation (for
  example, "ab"
  \< "a-b" \< "aB"). This difference is ignored when there is a primary, secondary or tertiary difference. This is also known as the <return>level
  4</return> strength. The quaternary level should only be used if ignoring punctuation is required or when
  processing Japanese text (see Hiragana processing). Identical Level: When all other levels are
  equal, the identical level is used as a tiebreaker. The Unicode code point values of the NFD form
  of each string are compared at this level, just in case there is no difference at levels 1-4. For
  example, Hebrew cantillation marks are only distinguished at this level. This level should be used
  sparingly, as only code point values differences between two strings is an extremely rare
  occurrence. Using this level substantially decreases the performance for both incremental
  comparison and sort key generation (as well as increasing the sort key length). It is also known
  as <return>level 5</return> strength.
  
  Primary Level: Typically, this is used to denote differences between base characters (for example,
  "a"
  \< "b"). It is the strongest difference. For example, dictionaries are divided into different sections by base character. This is also called the <return>level
  1</return> strength.
  
  Secondary Level: Accents in the characters are considered secondary differences (for example, "as"
  \< "às" \< "at"). Other differences between letters can also be considered secondary differences, depending on the language. A secondary difference is ignored when there is a primary difference anywhere in the strings. This is also called the <return>level
  2</return> strength.  Note: In some languages (such as Danish), certain accented letters are considered to
  be separate base characters. In most languages, however, an accented letter only has a secondary
  difference from the unaccented version of that letter.
  
  Note: In some languages (such as Danish), certain accented letters are considered to be separate
  base characters. In most languages, however, an accented letter only has a secondary difference
  from the unaccented version of that letter.
  
  Tertiary Level: Upper and lower case differences in characters are distinguished at the tertiary
  level (for example, "ao"
  \< "Ao" \< "aò"). In addition, a variant of a letter differs from the base form on the tertiary level (such as "A" and " "). Another example is the difference between large and small Kana. A tertiary difference is ignored when there is a primary or secondary difference anywhere in the strings. This is also called the <return>level
  3</return> strength.
  
  Quaternary Level: When punctuation is ignored (see Ignoring Punctuations ) at levels 1-3, an
  additional level can be used to distinguish words with and without punctuation (for example, "ab"
  \< "a-b" \< "aB"). This difference is ignored when there is a primary, secondary or tertiary difference. This is also known as the <return>level
  4</return> strength. The quaternary level should only be used if ignoring punctuation is required or when
  processing Japanese text (see Hiragana processing).
  
  Identical Level: When all other levels are equal, the identical level is used as a tiebreaker. The
  Unicode code point values of the NFD form of each string are compared at this level, just in case
  there is no difference at levels 1-4. For example, Hebrew cantillation marks are only
  distinguished at this level. This level should be used sparingly, as only code point values
  differences between two strings is an extremely rare occurrence. Using this level substantially
  decreases the performance for both incremental comparison and sort key generation (as well as
  increasing the sort key length). It is also known as <return>level 5</return> strength.
  
  For example, people may choose to ignore accents or ignore accents and case when searching for
  text. Almost all characters are distinguished by the first three levels, and in most locales the
  default value is thus Tertiary. However, if Alternate is set to be Shifted, then the Quaternary
  strength can be used to break ties among whitespace, punctuation, and symbols that would otherwise
  be ignored. If very fine distinctions among characters are required, then the Identical strength
  can be used (for example, Identical Strength distinguishes between the Mathematical Bold Small A
  and the Mathematical Italic Small A.). However, using levels higher than Tertiary the Identical
  strength result in significantly longer sort keys, and slower string comparison performance for
  equal strings.

<comment>Param:</comment>
  <info>Collator</info>  <strong>$object</strong>    <class>Collator</class> object.
  <info>int</info>       <strong>$strength</strong>  Strength to set.
                       
                       Possible values are:
                       <info>Collator::PRIMARY</info><info>Collator::SECONDARY</info><info>Collator::TERTIARY</info><info>Collator::QUATERNARY</info><info>Collator::IDENTICAL</info><info>Collator::DEFAULT_STRENGTH</info>
                       
                       <info>Collator::PRIMARY</info>
                       
                       <info>Collator::SECONDARY</info>
                       
                       <info>Collator::TERTIARY</info>
                       
                       <info>Collator::QUATERNARY</info>
                       
                       <info>Collator::IDENTICAL</info>
                       
                       <info>Collator::DEFAULT_STRENGTH</info>

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <class>Collator</class> constants
   * <strong>collator_get_strength()</strong>


id: Collator::sort
type: function
doc:
<comment>Description:</comment>
  Sort array using specified collator
  
  Object-oriented style
  
  Procedural style
  
  This function sorts an array according to current locale rules.
  
  Equivalent to standard PHP <strong>sort()</strong> .

<comment>Param:</comment>
  <info>Collator</info>  <strong>$object</strong>  <class>Collator</class> object.
  <info>array</info>     <strong>$array</strong>   Array of strings to sort.
  <info>int</info>       <strong>$flags</strong>   Optional sorting type, one of the following:
                     
                     <info>Collator::SORT_REGULAR</info> - compare items normally (don't change types)
                     <info>Collator::SORT_NUMERIC</info> - compare items numerically <info>Collator::SORT_STRING</info> -
                     compare items as strings  Default sorting type is <info>Collator::SORT_REGULAR</info>. It is
                     also used if an invalid <strong>$flags</strong> value has been specified.
                     
                     <info>Collator::SORT_REGULAR</info> - compare items normally (don't change types)
                     
                     <info>Collator::SORT_NUMERIC</info> - compare items numerically
                     
                     <info>Collator::SORT_STRING</info> - compare items as strings

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <class>Collator</class> constants
   * <strong>collator_asort()</strong>
   * <strong>collator_sort_with_sort_keys()</strong>


id: Collator::sortWithSortKeys
type: function
doc:
<comment>Description:</comment>
  Sort array using specified collator and sort keys
  
  Object-oriented style
  
  Procedural style
  
  Similar to <strong>collator_sort()</strong> but uses ICU sorting keys produced by ucol_getSortKey() to gain more
  speed on large arrays.

<comment>Param:</comment>
  <info>Collator</info>  <strong>$object</strong>  <class>Collator</class> object.
  <info>array</info>     <strong>$array</strong>   Array of strings to sort

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <class>Collator</class> constants
   * <strong>collator_sort()</strong>
   * <strong>collator_asort()</strong>


id: Collectable::isGarbage
type: function
doc:
<comment>Description:</comment>
  Determine whether an object has been marked as garbage
  
  Can be called in Pool::collect to determine if this object is garbage.

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * Pool::collect


id: Collection::add
type: function
doc:
<comment>Description:</comment>
  Add collection document
  
  Triggers the insertion of the given document(s) into the collection, and  multiple variants of
  this method are supported. Options include:
  
  Add a single document as a JSON string.
  
  Add a single document as an array as:  <return>[ 'field' =&gt; 'value', 'field2' =&gt; 'value2' ... ]</return>
  
  A mix of both, and multiple documents can be added in the same operation.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$document</strong>  One or multiple documents, and this can be either JSON or an array of fields
                    with  their associated values. This cannot be an empty array.
                    
                    The MySQL server automatically generates unique <return>_id</return> values for each document
                    (recommended), although this can be manually added as well. This value must be
                    unique as otherwise the add operation will fail.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionAdd</info>  A CollectionAdd object. Use execute() to return a Result that can be
                               used to query the number  of affected items, the number warnings
                               generated by the operation, or to fetch a list of  generated IDs for
                               the inserted documents.


id: Collection::addOrReplaceOne
type: function
doc:
<comment>Description:</comment>
  Add or replace collection document
  
  Add a new document, or replace a document if it already exists.
  
  Here are several scenarios for this method:
  
  If neither the id or any unique key values conflict with any document in the collection,  then the
  document is added.
  
  If the id does not match any document but one or more unique key values conflict with a  document
  in the collection, then an error is raised.
  
  If id matches an existing document and no unique keys are defined for the collection,  then the
  document is replaced.
  
  If id matches an existing document, and either all unique keys in the replacement document  match
  that same document or they don't conflict with any other documents in the collection,  then the
  document is replaced.
  
  If id matches an existing document and one or more unique keys match a different document  from
  the collection, then an error is raised.

<comment>Param:</comment>
  <info>string</info>  <strong>$id</strong>   This is the filter id. If this id or any other field that has a unique index already
                exists in the collection, then it will update the matching document instead.
                
                By default, this id is automatically generated by MySQL Server when the record was
                added, and is referenced as a field named '_id'.
  <info>string</info>  <strong>$doc</strong>  This is the document to add or replace, which is a JSON string.

<comment>Return:</comment>
  <info>mysql_xdevapi\Result</info>  A Result object.


id: Collection::count
type: function
doc:
<comment>Description:</comment>
  Get document count
  
  This functionality is similar to a <return>SELECT COUNT(*)</return> SQL  operation against the MySQL server for the
  current schema and collection. In other words, it counts the number of documents in the
  collection.

<comment>Return:</comment>
  <info>int</info>  The number of documents in the collection.


id: Collection::createIndex
type: function
doc:
<comment>Description:</comment>
  Create collection index
  
  Creates an index on the collection.
  
  An exception is thrown if an index with the same name already exists, or if index definition is
  not correctly formed.

<comment>Param:</comment>
  <info>string</info>  <strong>$index_name</strong>       The name of the index that to create. This name must be a valid index
                            name as  accepted by the <return>CREATE INDEX</return> SQL query.
  <info>string</info>  <strong>$index_desc_json</strong>  Definition of the index to create. It contains an array of IndexField
                            objects, and each object describes a single document member to include
                            in the index,  and an optional string for the type of index that might
                            be INDEX (default) or SPATIAL.
                            
                            A single IndexField description consists of the following fields:
                            
                            field: string, the full document path to the document member or field to
                            be indexed.
                            
                            type: string, one of the supported SQL column types to map the field
                            into. For numeric types, the optional UNSIGNED keyword may follow. For
                            the TEXT type, the length to consider for indexing may be added.
                            
                            required: bool, (optional) true if the field is required to exist in the
                            document.  Defaults to <info>false</info>, except for <return>GEOJSON</return> where it defaults to
                            <info>true</info>.
                            
                            options: integer, (optional) special option flags for use  when decoding
                            <return>GEOJSON</return> data.
                            
                            srid: integer, (optional) srid value for use when  decoding <return>GEOJSON</return>
                            data.
                            
                            It is an error to include other fields not described above in
                            IndexDefinition or IndexField documents.

<comment>Return:</comment>
  <info>void</info>  


id: Collection::dropIndex
type: function
doc:
<comment>Description:</comment>
  Drop collection index
  
  Drop a collection index.
  
  This operation does not yield an error if the index does not exist, but <info>false</info> is returned in that
  case.

<comment>Param:</comment>
  <info>string</info>  <strong>$index_name</strong>  Name of collection index to drop.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if the DROP INDEX operation succeeded, otherwise <info>false</info>.


id: Collection::existsInDatabase
type: function
doc:
<comment>Description:</comment>
  Check if collection exists in database
  
  Checks if the Collection object refers to a collection in the database (schema).

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if collection exists in the database, else <info>false</info> if it does not.
        
        A table defined with two columns (doc and _id) is considered a collection,  and a third
        _json_schema column as of MySQL 8.0.21.  Adding an additional column means
        existsInDatabase() will no longer see it as a collection.


id: Collection::find
type: function
doc:
<comment>Description:</comment>
  Search for document
  
  Search a database collection for a document or set of documents. The found documents are returned
  as a CollectionFind object is to further modify or fetch results from.

<comment>Param:</comment>
  <info>string</info>  <strong>$search_condition</strong>  Although optional, normally a condition is defined to limit the results
                             to a subset of documents.
                             
                             Multiple elements might build the condition and the syntax supports
                             parameter binding.  The expression used as search condition must be a
                             valid SQL expression. If no search condition is provided (field empty)
                             then find('true') is assumed.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionFind</info>  A CollectionFind object to verify the operation, or fetch the found
                                documents.


id: Collection::getName
type: function
doc:
<comment>Description:</comment>
  Get collection name
  
  Retrieve the collection's name.

<comment>Return:</comment>
  <info>string</info>  The collection name, as a string.


id: Collection::getOne
type: function
doc:
<comment>Description:</comment>
  Get one document
  
  Fetches one document from the collection.
  
  This is a shortcut for: Collection.find("_id = :id").bind("id", id).execute().fetchOne();

<comment>Param:</comment>
  <info>string</info>  <strong>$id</strong>  The document _id in the collection.

<comment>Return:</comment>
  <info>Document</info>  The collection object, or <info>null</info> if the _id does not match a document.


id: Collection::getSchema
type: function
doc:
<comment>Description:</comment>
  Get schema object
  
  Retrieve the schema object that contains the collection.

<comment>Return:</comment>
  <info>Schema Object</info>  The schema object on success, or <info>null</info> if the object cannot be retrieved for the
                 given collection.


id: Collection::getSession
type: function
doc:
<comment>Description:</comment>
  Get session object
  
  Get a new Session object from the Collection object.

<comment>Return:</comment>
  <info>Session</info>  A Session object.


id: Collection::modify
type: function
doc:
<comment>Description:</comment>
  Modify collection documents
  
  Modify the documents of a collection that meet specific search conditions. Multiple operations are
  allowed, and parameter binding is supported.

<comment>Param:</comment>
  <info>string</info>  <strong>$search_condition</strong>  Must be a valid SQL expression used to match the documents to modify.
                             This expression might be as simple as <info>true</info>, which matches all
                             documents, or it might use functions and operators such as  'CAST(_id
                             AS SIGNED) &gt;= 10',  'age MOD 2 = 0 OR age MOD 3 = 0', or '_id IN
                             ["2","5","7","10"]'.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionModify</info>  If the operation is not executed, then the function will return  a
                                  Modify object that can be used to add additional modify
                                  operations.
                                  
                                  If the modify operation is executed, then the returned object will
                                  contain the result of the operation.


id: Collection::remove
type: function
doc:
<comment>Description:</comment>
  Remove collection documents
  
  Removes documents of a collection that meet specific search conditions. Multiple operations are
  allowed, and parameter binding is supported.

<comment>Param:</comment>
  <info>string</info>  <strong>$search_condition</strong>  Must be a valid SQL expression used to match the documents to remove.
                             This expression might be as simple as <info>true</info>, which matches all
                             documents, or it might use functions and operators such as  'CAST(_id
                             AS SIGNED) &gt;= 10',  'age MOD 2 = 0 OR age MOD 3 = 0', or '_id IN
                             ["2","5","7","10"]'.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionRemove</info>  If the operation is not executed, then the function will return  a
                                  Remove object that can be used to add additional remove
                                  operations.
                                  
                                  If the remove operation is executed, then the returned object will
                                  contain the result of the operation.


id: Collection::removeOne
type: function
doc:
<comment>Description:</comment>
  Remove one collection document
  
  Remove one document from the collection with the correspending ID.  This is a shortcut for
  Collection.remove("_id = :id").bind("id", id).execute().

<comment>Param:</comment>
  <info>string</info>  <strong>$id</strong>  The ID of the collection document to remove. Typically this is the _id that was
               generated by MySQL Server when the record was added.

<comment>Return:</comment>
  <info>mysql_xdevapi\Result</info>  A Result object that can be used to query the number of affected items or
                        the number warnings generated by the operation.


id: Collection::replaceOne
type: function
doc:
<comment>Description:</comment>
  Replace one collection document
  
  Updates (or replaces) the document identified by ID, if it exists.

<comment>Param:</comment>
  <info>string</info>  <strong>$id</strong>   ID of the document to replace or update. Typically this is the _id that was
                generated by MySQL Server when the record was added.
  <info>string</info>  <strong>$doc</strong>  Collection document to update or replace the document matching the id parameter.
                
                This document can be either a document object or a valid JSON string  describing the
                new document.

<comment>Return:</comment>
  <info>mysql_xdevapi\Result</info>  A Result object that can be used to query the number of affected items and
                        the number warnings generated by the operation.


id: CollectionAdd::__construct
type: function
doc:
<comment>Description:</comment>
  CollectionAdd constructor
  
  Use to add a document to a collection; called from a Collection object.


id: CollectionAdd::execute
type: function
doc:
<comment>Description:</comment>
  Execute the statement
  
  The execute method is required to send the CRUD operation request to the MySQL server.

<comment>Return:</comment>
  <info>mysql_xdevapi\Result</info>  A Result object that can be used to verify the status of the operation, such
                        as the number of affected rows.


id: CollectionFind::__construct
type: function
doc:
<comment>Description:</comment>
  CollectionFind constructor
  
  This function is
  currently not documented; only its argument list is available.


id: CollectionFind::bind
type: function
doc:
<comment>Description:</comment>
  Bind value to query placeholder
  
  It allows the user to bind a parameter to the placeholder in the search condition of the find
  operation. The placeholder has the form of :NAME where ':' is a common prefix that must always
  exists before any NAME, NAME is the actual name of the placeholder. The bind function accepts a
  list of placeholders if multiple entities have to be substituted in the search condition.

<comment>Param:</comment>
  <info>array</info>  <strong>$placeholder_values</strong>  Values to substitute in the search condition; multiple values are
                              allowed and are passed as an array where "PLACEHOLDER_NAME =&gt;
                              PLACEHOLDER_VALUE".

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionFind</info>  A CollectionFind object,  or chain with execute() to return a Result
                                object.


id: CollectionFind::execute
type: function
doc:
<comment>Description:</comment>
  Execute the statement
  
  Execute the find operation; this functionality allows for method chaining.

<comment>Return:</comment>
  <info>mysql_xdevapi\DocResult</info>  A <class>mysql_xdevapi\DocResult</class> object that can be used to either fetch results
                           from, or to query the status of the operation.


id: CollectionFind::fields
type: function
doc:
<comment>Description:</comment>
  Set document field filter
  
  Defines the columns for the query to return. If not defined, all columns are used.

<comment>Param:</comment>
  <info>string</info>  <strong>$projection</strong>  Can either be a single string or an array of strings identifying the columns
                       to be returned for each document that match the search condition.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionFind</info>  A CollectionFind object that can be used for further processing.


id: CollectionFind::groupBy
type: function
doc:
<comment>Description:</comment>
  Set grouping criteria
  
  This function can be used to group the result set by one or more columns. It is often used with
  aggregate functions such as <return>COUNT</return>, <return>MAX</return>, <return>MIN</return>, <return>SUM</return> etc.

<comment>Param:</comment>
  <info>string</info>  <strong>$sort_expr</strong>  The column or columns that have to be used for the group operation, this can
                      either be a single string or an array of string arguments, one for each
                      column.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionFind</info>  A CollectionFind object that can be used for further processing.


id: CollectionFind::having
type: function
doc:
<comment>Description:</comment>
  Set condition for aggregate functions
  
  This function can be used after the 'field' operation in order to make a selection on the
  documents to extract.

<comment>Param:</comment>
  <info>string</info>  <strong>$sort_expr</strong>  This must be a valid SQL expression, the use of aggreate functions is allowed

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionFind</info>  CollectionFind object that can be used for further processing


id: CollectionFind::limit
type: function
doc:
<comment>Description:</comment>
  Limit number of returned documents
  
  Set the maximum number of documents to return.

<comment>Param:</comment>
  <info>int</info>  <strong>$rows</strong>  Maximum number of documents.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionFind</info>  A CollectionFind object that can be used for additional processing;
                                chain with the execute() method to return a DocResult object.


id: CollectionFind::lockExclusive
type: function
doc:
<comment>Description:</comment>
  Execute operation with EXCLUSIVE LOCK
  
  Locks the document exclusively. As long as the document is locked, other transactions can't update
  the document, use SELECT ... LOCK IN SHARE MODE, or read the data in certain transaction isolation
  levels. Consistent reads ignore any locks set on the records that exist in the read view.
  
  To avoid concurrency problems, it makes sense to use this function with the
  mysql_xdevapi\Collection::modify method. Essentially, this function uses row locks to serialise
  access to rows.

<comment>Param:</comment>
  <info>int</info>  <strong>$lock_waiting_option</strong>  Optional waiting option. By default it is <info>MYSQLX_LOCK_DEFAULT</info>. Valid
                             values are these constants:
                             
                             <info>MYSQLX_LOCK_DEFAULT</info>
                             
                             <info>MYSQLX_LOCK_NOWAIT</info>
                             
                             <info>MYSQLX_LOCK_SKIP_LOCKED</info>

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionFind</info>  Returns a CollectionFind object that can be used for further
                                processing.


id: CollectionFind::lockShared
type: function
doc:
<comment>Description:</comment>
  Execute operation with SHARED LOCK
  
  Allows to share the documents between multiple transactions which are locking in shared mode.
  
  Other sessions can read the rows, but cannot modify them until your transaction commits.
  
  If any of these rows were changed by another transaction that hasn't been committed, the query
  will wait until that transaction has ended to be able to use the latest values.

<comment>Param:</comment>
  <info>int</info>  <strong>$lock_waiting_option</strong>  Optional waiting option. By default it is <info>MYSQLX_LOCK_DEFAULT</info>. Valid
                             values are these constants:
                             
                             <info>MYSQLX_LOCK_DEFAULT</info>
                             
                             <info>MYSQLX_LOCK_NOWAIT</info>
                             
                             <info>MYSQLX_LOCK_SKIP_LOCKED</info>

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionFind</info>  A CollectionFind object that can be used for further processing


id: CollectionFind::offset
type: function
doc:
<comment>Description:</comment>
  Skip given number of elements to be returned
  
  Skip (offset) these number of elements that otherwise would be returned by the find operation. Use
  with the limit() method.
  
  Defining an offset larger than the result set size results in an empty set.

<comment>Param:</comment>
  <info>int</info>  <strong>$position</strong>  Number of elements to skip for the limit() operation.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionFind</info>  A CollectionFind object that can be used for additional processing.


id: CollectionFind::sort
type: function
doc:
<comment>Description:</comment>
  Set the sorting criteria
  
  Sort the result set by the field selected in the sort_expr argument. The allowed orders are ASC
  (Ascending) or DESC (Descending). This operation is equivalent to the 'ORDER BY' SQL operation and
  it follows the same set of rules.

<comment>Param:</comment>
  <info>string</info>  <strong>$sort_expr</strong>  One or more sorting expressions can be provided. The evaluation is from left
                      to right, and each expression is separated by a comma.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionFind</info>  A CollectionFind object that can be used to execute the command, or
                                to add additional operations.


id: CollectionModify::__construct
type: function
doc:
<comment>Description:</comment>
  CollectionModify constructor
  
  Modifies (updates) a collection and is instantiated by the mysql_xdevapi\Collection::modify
  method.


id: CollectionModify::arrayAppend
type: function
doc:
<comment>Description:</comment>
  Append element to an array field
  
  Add an element to a document's field, as multiple elements of a field are represented as an array.
  Unlike arrayInsert(), arrayAppend() always appends the new element at the end of the array,
  whereas arrayInsert() can define the location.

<comment>Param:</comment>
  <info>string</info>  <strong>$collection_field</strong>       The identifier of the field where the new element is inserted.
  <info>string</info>  <strong>$expression_or_literal</strong>  The new element to insert at the end of the document field array.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionModify</info>  A CollectionModify object that can be used to execute the command,
                                  or to add additional operations.


id: CollectionModify::arrayInsert
type: function
doc:
<comment>Description:</comment>
  Insert element into an array field
  
  Adds an element to a document's field, as multiple elements of a field are represented as an
  array. Unlike mysql_xdevapi\CollectionModify::arrayAppend this method allows to specify where the
  new element is inserted by defining which item it is after, whereas
  mysql_xdevapi\CollectionModify::arrayAppend always appends the new element at the end of the
  array.

<comment>Param:</comment>
  <info>string</info>  <strong>$collection_field</strong>       Identifies the item in the array after which the new element will
                                  be inserted. The format of this parameter is <return>FIELD_NAME[ INDEX ]</return>
                                  where FIELD_NAME is the name of the document field to add the
                                  element to, and INDEX is the INDEX of the element within the
                                  field.
                                  
                                  The INDEX field is zero based, so the first item of the array has
                                  an index of 0.
  <info>string</info>  <strong>$expression_or_literal</strong>  The new element to insert after FIELD_NAME[ INDEX ]

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionModify</info>  A CollectionModify object that can be used to execute the command,
                                  or to add additional operations


id: CollectionModify::bind
type: function
doc:
<comment>Description:</comment>
  Bind value to query placeholder
  
  Bind a parameter to the placeholder in the search condition of the modify operation.
  
  The placeholder has the form of :NAME where ':' is a common prefix that must always exists before
  any NAME where NAME is the name of the placeholder. The bind method accepts a list of placeholders
  if multiple entities have to be substituted in the search condition of the modify operation.

<comment>Param:</comment>
  <info>array</info>  <strong>$placeholder_values</strong>  Placeholder values to substitute in the search condition. Multiple
                              values are allowed and have to be passed as an array of mappings
                              PLACEHOLDER_NAME-&gt;PLACEHOLDER_VALUE.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionModify</info>  A CollectionModify object that can be used to execute the command,
                                  or to add additional operations.


id: CollectionModify::execute
type: function
doc:
<comment>Description:</comment>
  Execute modify operation
  
  The execute method is required to send the CRUD operation request to the MySQL server.

<comment>Return:</comment>
  <info>mysql_xdevapi\Result</info>  A Result object that can be used to verify the status of the operation, such
                        as the number of affected rows.


id: CollectionModify::limit
type: function
doc:
<comment>Description:</comment>
  Limit number of modified documents
  
  Limit the number of documents modified by this operation. Optionally combine with skip() to define
  an offset value.

<comment>Param:</comment>
  <info>int</info>  <strong>$rows</strong>  The maximum number of documents to modify.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionModify</info>  A CollectionModify object.


id: CollectionModify::patch
type: function
doc:
<comment>Description:</comment>
  Patch document
  
  Takes a patch object and applies it on one or more documents, and can update multiple document
  properties.

<comment>Param:</comment>
  <info>string</info>  <strong>$document</strong>  A document with the properties to apply to the matching documents.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionModify</info>  A CollectionModify object.


id: CollectionModify::replace
type: function
doc:
<comment>Description:</comment>
  Replace document field
  
  Replace (update) a given field value with a new one.

<comment>Param:</comment>
  <info>string</info>  <strong>$collection_field</strong>       The document path of the item to set.
  <info>string</info>  <strong>$expression_or_literal</strong>  The value to set on the specified attribute.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionModify</info>  A CollectionModify object.


id: CollectionModify::set
type: function
doc:
<comment>Description:</comment>
  Set document attribute
  
  Sets or updates attributes on documents in a collection.

<comment>Param:</comment>
  <info>string</info>  <strong>$collection_field</strong>       The document path (name) of the item to set.
  <info>string</info>  <strong>$expression_or_literal</strong>  The value to set it to.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionModify</info>  A CollectionModify object.


id: CollectionModify::skip
type: function
doc:
<comment>Description:</comment>
  Skip elements
  
  Skips the first N elements that would otherwise be returned by a find operation. If the number of
  elements skipped is larger than the size of the result set, then the find operation returns an
  empty set.

<comment>Param:</comment>
  <info>int</info>  <strong>$position</strong>  Number of elements to skip.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionModify</info>  A CollectionModify object to use for further processing.


id: CollectionModify::sort
type: function
doc:
<comment>Description:</comment>
  Set the sorting criteria
  
  Sorts the result set by the field selected in the sort_expr argument. The allowed orders are ASC
  (Ascending) or DESC (Descending). This operation is equivalent to the 'ORDER BY' SQL operation and
  it follows the same set of rules.

<comment>Param:</comment>
  <info>string</info>  <strong>$sort_expr</strong>  One or more sort expressions can be provided. The evaluation is from left to
                      right and each expression must be separated by a comma.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionModify</info>  CollectionModify object that can be used for further processing.


id: CollectionModify::unset
type: function
doc:
<comment>Description:</comment>
  Unset the value of document fields
  
  Removes attributes from documents in a collection.

<comment>Param:</comment>
  <info>array</info>  <strong>$fields</strong>  The attributes to remove from documents in a collection.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionModify</info>  CollectionModify object that can be used for further processing.


id: CollectionRemove::__construct
type: function
doc:
<comment>Description:</comment>
  CollectionRemove constructor
  
  Removes collection documents and is instantiated by the mysql_xdevapi\Collection::remove method.


id: CollectionRemove::bind
type: function
doc:
<comment>Description:</comment>
  Bind value to placeholder
  
  Bind a parameter to the placeholder in the search condition of the remove operation.
  
  The placeholder has the form of :NAME where ':' is a common prefix that must always exists before
  any NAME where NAME is the name of the placeholder. The bind method accepts a list of placeholders
  if multiple entities have to be substituted in the search condition of the remove operation.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>array</info>  <strong>$placeholder_values</strong>  Placeholder values to substitute in the search condition. Multiple
                              values are allowed and have to be passed as an array of mappings
                              PLACEHOLDER_NAME-&gt;PLACEHOLDER_VALUE.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionRemove</info>  A CollectionRemove object that can be used to execute the command,
                                  or to add additional operations.


id: CollectionRemove::execute
type: function
doc:
<comment>Description:</comment>
  Execute remove operation
  
  The execute function needs to be invoked in order to trigger the client to send the CRUD operation
  request to the server.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>mysql_xdevapi\Result</info>  Result object.


id: CollectionRemove::limit
type: function
doc:
<comment>Description:</comment>
  Limit number of documents to remove
  
  Sets the maximum number of documents to remove.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>int</info>  <strong>$rows</strong>  The maximum number of documents to remove.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionRemove</info>  Returns a CollectionRemove object that can be used to execute the
                                  command, or to add additional operations.


id: CollectionRemove::sort
type: function
doc:
<comment>Description:</comment>
  Set the sorting criteria
  
  Sort the result set by the field selected in the sort_expr argument. The allowed orders are ASC
  (Ascending) or DESC (Descending). This operation is equivalent to the 'ORDER BY' SQL operation and
  it follows the same set of rules.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string</info>  <strong>$sort_expr</strong>  One or more sorting expressions can be provided. The evaluation is from left
                      to right, and each expression is separated by a comma.

<comment>Return:</comment>
  <info>mysql_xdevapi\CollectionRemove</info>  A CollectionRemove object that can be used to execute the command,
                                  or to add additional operations.


id: ColumnResult::__construct
type: function
doc:
<comment>Description:</comment>
  ColumnResult constructor
  
  Retrieves column metadata, such as its character set; this is instantiated by the
  mysql_xdevapi\RowResult::getColumns method.


id: ColumnResult::getCharacterSetName
type: function
doc:
<comment>Description:</comment>
  Get character set
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>string</info>  


id: ColumnResult::getCollationName
type: function
doc:
<comment>Description:</comment>
  Get collation name
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>string</info>  


id: ColumnResult::getColumnLabel
type: function
doc:
<comment>Description:</comment>
  Get column label
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>string</info>  


id: ColumnResult::getColumnName
type: function
doc:
<comment>Description:</comment>
  Get column name
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>string</info>  


id: ColumnResult::getFractionalDigits
type: function
doc:
<comment>Description:</comment>
  Get fractional digit length
  
  Fetch the number of fractional digits for column.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>int</info>  


id: ColumnResult::getLength
type: function
doc:
<comment>Description:</comment>
  Get column field length
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>int</info>  


id: ColumnResult::getSchemaName
type: function
doc:
<comment>Description:</comment>
  Get schema name
  
  Fetch the schema name where the column is stored.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>string</info>  


id: ColumnResult::getTableLabel
type: function
doc:
<comment>Description:</comment>
  Get table label
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>string</info>  


id: ColumnResult::getTableName
type: function
doc:
<comment>Description:</comment>
  Get table name
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>string</info>  Name of the table for the column.


id: ColumnResult::getType
type: function
doc:
<comment>Description:</comment>
  Get column type
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>int</info>  


id: ColumnResult::isNumberSigned
type: function
doc:
<comment>Description:</comment>
  Check if signed type
  
  Retrieves a table's column information and is instantiated by the
  mysql_xdevapi\RowResult::getColumns method.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>int</info>  <info>true</info> if a given column as a signed type.


id: ColumnResult::isPadded
type: function
doc:
<comment>Description:</comment>
  Check if padded
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>int</info>  <info>true</info> if a given column is padded.


id: CommonMark\CQL
type: class
doc:
<comment>Description:</comment>
  CommonMark Query Language is a DSL for describing how to travel through a CommonMark Node tree
  implemented as a parser and compiler for a small set of instructions, and a virtual machine for
  executing those instructions.
  
  In it's most simplistic form, a CQL query combines the following paths and <return>/</return> to describe how to
  travel through a tree: firstChildlastChildpreviousnextparent For example, <return>/firstChild/lastChild</return>
  would travel to the last child node of the first child node.
  
  CQL can be instructed to loop, for example through the children of, or siblings to a particular
  node, by using the path <return>children</return>, or <return>siblings</return>. For example, <return>/firstChild/children</return> will travel to
  all the children of the first child node.
  
  CQL can be instructed how to travel by using a subquery like <return>[/firstChild]</return>. For example,
  <return>/firstChild/children[/firstChild]</return> will travel to the first child node of all the children of the
  first child node.
  
  While looping, CQL can be instructed to constrict the travelled path to nodes of particular type.
  For example <return>/children(BlockQuote)</return> will travel to the children of a node where the type is
  <return>BlockQuote</return>. The following types are recognized (case insensitively):
  BlockQuoteListItemCodeBlockHtmlBlockCustomBlockParagraphHeadingThematicBreakTextSoftBreakLineBreakCodeHtmlInlineCustomInlineEmphasisStrongLinkImage
  Types may be used as a union, for example <return>/children(BlockQuote|List)</return> will travel to the children
  of a node where the type is <return>BlockQuote</return> or <return>List</return>. Types, or unions of types, may be also negated.
  For example <return>/children(~BlockQuote)</return> will travel to the children of a node where the type is not
  <return>BlockQuote</return>, and <return>/children(~BlockQuote|Paragraph)</return> will travel to the children of a node where the
  type is not <return>BlockQuote</return> or <return>Paragraph</return>
  
  CQL can be instructed to create a loop to travel to a node of a particular type, at a particular
  path. For example, <return>/firstChild(BlockQuote)</return> will travel to the first child node where the type is
  <return>BlockQuote</return>. Note that like other loops for <return>children</return> and <return>siblings</return>, this kind of path can only be
  followed by a subquery.
  
  While CQL has been implemented as part of the PHP CommonMark extension, it stands separately from
  PHP and does not use PHP's virtual machine or internal representation of values.


id: CommonMark\CQL::__construct
type: function
doc:
<comment>Description:</comment>
  CQL Construction

<comment>Param:</comment>
  <info>string</info>  <strong>$query</strong>  a CQL string


id: CommonMark\CQL::__invoke
type: function
doc:
<comment>Description:</comment>
  CQL Execution
  
  Shall invoke the current CQL function on the given <strong>$root</strong>, executing the given <strong>$handler</strong> on entry to
  a <info>CommonMark\Node</info>

<comment>Param:</comment>
  <info>CommonMark\Node</info>  <strong>$root</strong>     the root node of a tree
  <info>callable</info>         <strong>$handler</strong>  should have the prototype:
                             <info>bool</info><info>null</info></info>handler<info>CommonMark\Node</info><strong>$root</strong><info>CommonMark\Node</info><strong>$entering</strong> Should
                             <strong>$handler</strong> fail to return (void), or return <info>null</info>, CQL will continue
                             executingShould the handler return a truthy value, CQL will continue
                             executing.Should the handler return a falsy value, CQL will stop
                             executing


id: CommonMark\Interfaces\IVisitable::accept
type: function
doc:
<comment>Description:</comment>
  Visitation

<comment>Param:</comment>
  <info>CommonMark\Interfaces\IVisitor</info>  <strong>$visitor</strong>  An object implementing <class>CommonMark\Interfaces\IVisitor</class>

<comment>Return:</comment>
  <info>void</info>  

<comment>See Also:</comment>
   * 
   * 


id: CommonMark\Interfaces\IVisitor::enter
type: function
doc:
<comment>Description:</comment>
  Visitation

<comment>Param:</comment>
  <info>IVisitable</info>  <strong>$visitable</strong>  The current <class>CommonMark\Interfaces\IVisitable</class> being entered

<comment>Return:</comment>
  <info>int|IVisitable|null</info>  Returning CommonMark\Interfaces\IVisitor::Done will cause the backing
                       iterator to exit.
                       
                       Returning CommonMark\Interfaces\IVisitor::Enter will reset the backing
                       iterator at entering the current <class>IVisitable</class>
                       
                       Returning CommonMark\Interfaces\IVisitor::Leave will reset the backing
                       iterator at exiting the current <class>IVisitable</class>
                       
                       Returning an <class>IVisitable</class> will reset the backing iterator at entering the given
                       <class>IVisitable</class>
                       
                       Returning nothing will allow the backing iterator to continue

<comment>See Also:</comment>
   * 


id: CommonMark\Interfaces\IVisitor::leave
type: function
doc:
<comment>Description:</comment>
  Visitation

<comment>Param:</comment>
  <info>IVisitable</info>  <strong>$visitable</strong>  The current <class>CommonMark\Interfaces\IVisitable</class> being exited

<comment>Return:</comment>
  <info>int|IVisitable|null</info>  Returning CommonMark\Interfaces\IVisitor::Done will cause the backing
                       iterator to exit.
                       
                       Returning CommonMark\Interfaces\IVisitor::Enter will reset the backing
                       iterator at entering the current <class>IVisitable</class>
                       
                       Returning CommonMark\Interfaces\IVisitor::Leave will reset the backing
                       iterator at exiting the current <class>IVisitable</class>
                       
                       Returning an <class>IVisitable</class> will reset the backing iterator at exiting the given
                       <class>IVisitable</class>
                       
                       Returning nothing will allow the backing iterator to continue

<comment>See Also:</comment>
   * 


id: CommonMark\Node
type: class
doc:
<comment>Description:</comment>
  Represents an Abstract Node, this final abstract is not for direct use by the programmer.


id: CommonMark\Node::appendChild
type: function
doc:
<comment>Description:</comment>
  AST Manipulation
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>CommonMark\Node</info>  <strong>$child</strong>  

<comment>Return:</comment>
  <info>CommonMark\Node</info>  


id: CommonMark\Node::insertAfter
type: function
doc:
<comment>Description:</comment>
  AST Manipulation
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>CommonMark\Node</info>  <strong>$sibling</strong>  

<comment>Return:</comment>
  <info>CommonMark\Node</info>  


id: CommonMark\Node::replace
type: function
doc:
<comment>Description:</comment>
  AST Manipulation
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>CommonMark\Node</info>  <strong>$target</strong>  

<comment>Return:</comment>
  <info>CommonMark\Node</info>  


id: CommonMark\Node::unlink
type: function
doc:
<comment>Description:</comment>
  AST Manipulation
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>void</info>  


id: CommonMark\Node\BulletList::__construct
type: function
doc:
<comment>Description:</comment>
  BulletList Construction
  
  This function is
  currently not documented; only its argument list is available.


id: CommonMark\Node\CodeBlock::__construct
type: function
doc:
<comment>Description:</comment>
  CodeBlock Construction
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string</info>  <strong>$fence</strong>    
  <info>string</info>  <strong>$literal</strong>  


id: CommonMark\Node\Heading::__construct
type: function
doc:
<comment>Description:</comment>
  Heading Construction
  
  This function is
  currently not documented; only its argument list is available.


id: CommonMark\Node\Image::__construct
type: function
doc:
<comment>Description:</comment>
  Image Construction
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string</info>  <strong>$url</strong>    
  <info>string</info>  <strong>$title</strong>  


id: CommonMark\Node\Link::__construct
type: function
doc:
<comment>Description:</comment>
  Link Construction
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string</info>  <strong>$url</strong>    
  <info>string</info>  <strong>$title</strong>  


id: CommonMark\Node\OrderedList::__construct
type: function
doc:
<comment>Description:</comment>
  OrderedList Construction
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>int</info>  <strong>$tight</strong>      
  <info>int</info>  <strong>$delimiter</strong>  
  <info>int</info>  <strong>$start</strong>      


id: CommonMark\Node\Text::__construct
type: function
doc:
<comment>Description:</comment>
  Text Construction
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string</info>  <strong>$literal</strong>  


id: CommonMark\Parse
type: function
doc:
<comment>Description:</comment>
  Parsing
  
  Shall parse <strong>$content</strong>

<comment>Param:</comment>
  <info>string</info>  <strong>$content</strong>  markdown string
  <info>int</info>     <strong>$options</strong>  A mask of:

<comment>Return:</comment>
  <info>CommonMark\Node</info>  Shall return root CommonMark\Node


id: CommonMark\Parser
type: class
doc:
<comment>Description:</comment>
  Provides an incremental parser as an alternative to the simple Parsing API function


id: CommonMark\Parser::__construct
type: function
doc:
<comment>Description:</comment>
  Parsing
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>int</info>  <strong>$options</strong>  A mask of:


id: CommonMark\Parser::finish
type: function
doc:
<comment>Description:</comment>
  Parsing
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>CommonMark\Node</info>  


id: CommonMark\Parser::parse
type: function
doc:
<comment>Description:</comment>
  Parsing
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string</info>  <strong>$buffer</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: CommonMark\Render
type: function
doc:
<comment>Description:</comment>
  Rendering
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>CommonMark\Node</info>  <strong>$node</strong>     
  <info>int</info>              <strong>$options</strong>  A mask of:
  <info>int</info>              <strong>$width</strong>    

<comment>Return:</comment>
  <info>string</info>  


id: CommonMark\Render\HTML
type: function
doc:
<comment>Description:</comment>
  Rendering
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>CommonMark\Node</info>  <strong>$node</strong>     
  <info>int</info>              <strong>$options</strong>  A mask of:

<comment>Return:</comment>
  <info>string</info>  


id: Componere\Abstract\Definition
type: class
doc:
<comment>Description:</comment>
  This final abstract represents a class entry, and should not be used by the programmer.


id: Componere\Abstract\Definition::addInterface
type: function
doc:
<comment>Description:</comment>
  Add Interface
  
  Shall implement the given interface on the current definition

<comment>Param:</comment>
  <info>string</info>  <strong>$interface</strong>  The case insensitive name of an interface

<comment>Return:</comment>
  <info>Definition</info>  The current Definition


id: Componere\Abstract\Definition::addMethod
type: function
doc:
<comment>Description:</comment>
  Add Method
  
  Shall create or override a method on the current definition.

<comment>Param:</comment>
  <info>string</info>            <strong>$name</strong>    The case insensitive name for method
  <info>Componere\Method</info>  <strong>$method</strong>  <info>Componere\Method</info> not previously added to another <info>Definition</info>

<comment>Return:</comment>
  <info>Definition</info>  The current Definition


id: Componere\Abstract\Definition::addTrait
type: function
doc:
<comment>Description:</comment>
  Add Trait
  
  Shall use the given trait for the current definition

<comment>Param:</comment>
  <info>string</info>  <strong>$trait</strong>  The case insensitive name of a trait

<comment>Return:</comment>
  <info>Definition</info>  The current Definition


id: Componere\Abstract\Definition::getReflector
type: function
doc:
<comment>Description:</comment>
  Reflection
  
  Shall create or return a ReflectionClass

<comment>Return:</comment>
  <info>ReflectionClass</info>  A ReflectionClass for the current definition (cached)


id: Componere\Definition
type: class
doc:
<comment>Description:</comment>
  The Definition class allows the programmer to build and register a type at runtime.
  
  Should a Definition replace an existing class, the existing class will be restored when the
  Definition is destroyed.


id: Componere\Definition::__construct
type: function
doc:
<comment>Description:</comment>
  Definition Construction

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>        A case insensitive class name
  <info>string</info>  <strong>$parent</strong>      A case insensitive class name
  <info>array</info>   <strong>$interfaces</strong>  An array of case insensitive class names


id: Componere\Definition::addConstant
type: function
doc:
<comment>Description:</comment>
  Add Constant
  
  Shall declare a class constant on the current Definition

<comment>Param:</comment>
  <info>string</info>           <strong>$name</strong>   The case sensitive name for the constant
  <info>Componere\Value</info>  <strong>$value</strong>  The Value for the constant, must not be undefined or static

<comment>Return:</comment>
  <info>Definition</info>  The current Definition


id: Componere\Definition::addProperty
type: function
doc:
<comment>Description:</comment>
  Add Property
  
  Shall declare a class property on the current Definition

<comment>Param:</comment>
  <info>string</info>           <strong>$name</strong>   The case sensitive name for the property
  <info>Componere\Value</info>  <strong>$value</strong>  The default Value for the property

<comment>Return:</comment>
  <info>Definition</info>  The current Definition


id: Componere\Definition::getClosure
type: function
doc:
<comment>Description:</comment>
  Get Closure
  
  Shall return a Closure for the method specified by name

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  The case insensitive name of the method

<comment>Return:</comment>
  <info>Closure</info>  A Closure bound to the correct scope


id: Componere\Definition::getClosures
type: function
doc:
<comment>Description:</comment>
  Get Closures
  
  Shall return an array of Closures

<comment>Return:</comment>
  <info>array</info>  Shall return all methods as an array of Closure objects bound to the correct scope


id: Componere\Definition::isRegistered
type: function
doc:
<comment>Description:</comment>
  State Detection
  
  Shall detect the registration state of this Definition

<comment>Return:</comment>
  <info>bool</info>  Shall return true if this Definition is registered


id: Componere\Definition::register
type: function
doc:
<comment>Description:</comment>
  Registration
  
  Shall register the current Definition

<comment>Return:</comment>
  <info>void</info>  


id: Componere\Method
type: class
doc:
<comment>Description:</comment>
  A Method represents a function with modifiable accessibility flags


id: Componere\Method::__construct
type: function
doc:
<comment>Description:</comment>
  Method Construction

<comment>Param:</comment>
  <info>Closure</info>  <strong>$closure</strong>  


id: Componere\Method::getReflector
type: function
doc:
<comment>Description:</comment>
  Reflection
  
  Shall create or return a ReflectionMethod

<comment>Return:</comment>
  <info>ReflectionMethod</info>  A ReflectionMethod for the current method (cached)


id: Componere\Method::setPrivate
type: function
doc:
<comment>Description:</comment>
  Accessibility Modification

<comment>Return:</comment>
  <info>Method</info>  The current Method


id: Componere\Patch
type: class
doc:
<comment>Description:</comment>
  The Patch class allows the programmer to change the type of an instance at runtime without
  registering a new Definition
  
  When a Patch is destroyed it is reverted, so that instances that were patched during the lifetime
  of the Patch are restored to their formal type.


id: Componere\Patch::__construct
type: function
doc:
<comment>Description:</comment>
  Patch Construction

<comment>Param:</comment>
  <info>object</info>  <strong>$instance</strong>    The target for this Patch
  <info>array</info>   <strong>$interfaces</strong>  A case insensitive array of class names


id: Componere\Patch::apply
type: function
doc:
<comment>Description:</comment>
  Application
  
  Shall apply the current patch

<comment>Return:</comment>
  <info>void</info>  


id: Componere\Patch::derive
type: function
doc:
<comment>Description:</comment>
  Patch Derivation
  
  Shall derive a <info>Patch</info> for the given <strong>$instance</strong>

<comment>Param:</comment>
  <info>object</info>  <strong>$instance</strong>  The target for the derived Patch

<comment>Return:</comment>
  <info>Patch</info>  <info>Patch</info> for <strong>$instance</strong> derived from the current <info>Patch</info>


id: Componere\Patch::getClosure
type: function
doc:
<comment>Description:</comment>
  Get Closure
  
  Shall return a Closure for the method specified by name

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  The case insensitive name of the method

<comment>Return:</comment>
  <info>Closure</info>  A Closure bound to the correct scope and object


id: Componere\Patch::getClosures
type: function
doc:
<comment>Description:</comment>
  Get Closures
  
  Shall return an array of Closures

<comment>Return:</comment>
  <info>array</info>  Shall return all methods as an array of Closure objects bound to the correct scope and
         object


id: Componere\Patch::isApplied
type: function
doc:
<comment>Description:</comment>
  State Detection

<comment>Return:</comment>
  <info>bool</info>  


id: Componere\Patch::revert
type: function
doc:
<comment>Description:</comment>
  Reversal
  
  Shall revert the current patch

<comment>Return:</comment>
  <info>void</info>  


id: Componere\Value
type: class
doc:
<comment>Description:</comment>
  A Value represents a PHP variable of all types, including undefined


id: Componere\Value::__construct
type: function
doc:
<comment>Description:</comment>
  Value Construction

<comment>Param:</comment>
  <info></info>  <strong>$default</strong>  


id: Componere\Value::hasDefault
type: function
doc:
<comment>Description:</comment>
  Value Interaction

<comment>Return:</comment>
  <info>bool</info>  


id: Componere\Value::isPrivate
type: function
doc:
<comment>Description:</comment>
  Accessibility Detection

<comment>Return:</comment>
  <info>bool</info>  


id: Componere\Value::setPrivate
type: function
doc:
<comment>Description:</comment>
  Accessibility Modification

<comment>Return:</comment>
  <info>Value</info>  The current Value


id: Componere\cast
type: function
doc:
<comment>Description:</comment>
  Casting

<comment>Param:</comment>
  <info>Type</info>  <strong>$type</strong>    A user defined type
  <info></info>      <strong>$object</strong>  An object with a user defined type compatible with Type

<comment>Return:</comment>
  <info>Type</info>  An <info>object</info> of type Type, cast from <strong>$object</strong>

<comment>See Also:</comment>
   * 


id: Componere\cast_by_ref
type: function
doc:
<comment>Description:</comment>
  Casting

<comment>Param:</comment>
  <info></info>  <strong>$object</strong>  An object with a user defined type compatible with Type

<comment>Return:</comment>
  <info>Type</info>  An <info>object</info> of type Type, cast from <strong>$object</strong>, where members are references to <strong>$object</strong> members

<comment>See Also:</comment>
   * 


id: Countable
type: class
doc:
<comment>Description:</comment>
  Classes implementing <class>Countable</class> can be used with the <strong>count()</strong> function.


id: Countable::count
type: function
doc:
<comment>Description:</comment>
  Count elements of an object
  
  This method is executed when using the <strong>count()</strong> function on an object implementing <class>Countable</class>.

<comment>Return:</comment>
  <info>int</info>  The custom count as an <info>int</info>.
       
       The return value is cast to an <info>int</info>.


id: CrudOperationBindable::bind
type: function
doc:
<comment>Description:</comment>
  Bind value to placeholder
  
  Binds a value to a specific placeholder.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>array</info>  <strong>$placeholder_values</strong>  The name of the placeholders and the values to bind.

<comment>Return:</comment>
  <info>mysql_xdevapi\CrudOperationBindable</info>  A CrudOperationBindable object.


id: CrudOperationLimitable::limit
type: function
doc:
<comment>Description:</comment>
  Set result limit
  
  Sets the maximum number of records or documents to return.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>int</info>  <strong>$rows</strong>  The maximum number of records or documents.

<comment>Return:</comment>
  <info>mysql_xdevapi\CrudOperationLimitable</info>  A CrudOperationLimitable object.


id: CrudOperationSkippable::skip
type: function
doc:
<comment>Description:</comment>
  Number of operations to skip
  
  Skip this number of records in the returned operation.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>int</info>  <strong>$skip</strong>  Number of elements to skip.

<comment>Return:</comment>
  <info>mysql_xdevapi\CrudOperationSkippable</info>  A CrudOperationSkippable object.


id: CrudOperationSortable::sort
type: function
doc:
<comment>Description:</comment>
  Sort results
  
  Sort the result set by the field selected in the sort_expr argument. The allowed orders are ASC
  (Ascending) or DESC (Descending). This operation is equivalent to the 'ORDER BY' SQL operation and
  it follows the same set of rules.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string</info>  <strong>$sort_expr</strong>  One or more sorting expressions can be provided. The evaluation is from left
                      to right, and each expression is separated by a comma.

<comment>Return:</comment>
  <info>mysql_xdevapi\CrudOperationSortable</info>  A CrudOperationSortable object.


id: CurlHandle
type: class
doc:
<comment>Description:</comment>
  A fully opaque class which replaces <return>curl</return> resources as of PHP 8.0.0.


id: CurlMultiHandle
type: class
doc:
<comment>Description:</comment>
  A fully opaque class which replaces <return>curl_multi</return> resources as of PHP 8.0.0.


id: CurlShareHandle
type: class
doc:
<comment>Description:</comment>
  A fully opaque class which replaces <return>curl_share</return> resources as of PHP 8.0.0.


id: DATE_ISO8601
type: constant
doc:
<comment>Description:</comment>
  ISO-8601 (example: 2005-08-15T15:52:01+0000)
  
  This format is not compatible with ISO-8601, but is left this way for backward compatibility
  reasons. Use <info>DateTimeInterface::ISO8601_EXPANDED</info>, <info>DateTimeInterface::ATOM</info> for compatibility with
  ISO-8601 instead. (ref ISO8601:2004 section 4.3.3 clause d)


id: DATE_ISO8601_EXPANDED
type: constant
doc:
<comment>Description:</comment>
  ISO-8601 Expanded (example: +10191-07-26T08:59:52+01:00)
  
  This format allows for year ranges outside of ISO-8601's normal range of <return>0000</return>-<return>9999</return> by always
  including a sign character. It also addresses that that timezone part (<return>+01:00</return>) is compatible with
  ISO-8601.


id: DATE_RFC3339_EXTENDED
type: constant
doc:
<comment>Description:</comment>
  RFC 3339 EXTENDED format (example: 2005-08-15T15:52:01.000+00:00)


id: DATE_RFC7231
type: constant
doc:
<comment>Description:</comment>
  RFC 7231 (since PHP 7.0.19 and 7.1.5) (example: Sat, 30 Apr 2016 17:52:13 GMT)


id: DB2_BINARY
type: constant
doc:
<comment>Description:</comment>
  Specifies that binary data shall be returned as is. This is the default mode.


id: DB2_CASE_NATURAL
type: constant
doc:
<comment>Description:</comment>
  Specifies that column names will be returned in their natural case.


id: DB2_CHAR
type: constant
doc:
<comment>Description:</comment>
  Specifies that the variable should be bound as a CHAR or VARCHAR data type.


id: DB2_CONVERT
type: constant
doc:
<comment>Description:</comment>
  Specifies that binary data shall be converted to a hexadecimal encoding and returned as an ASCII
  string.


id: DB2_DEFERRED_PREPARE_OFF
type: constant
doc:
<comment>Description:</comment>
  Specifies that deferred prepare should be turned off for the specified statement resource.


id: DB2_DEFERRED_PREPARE_ON
type: constant
doc:
<comment>Description:</comment>
  Specifies that deferred prepare should be turned on for the specified statement resource.


id: DB2_DOUBLE
type: constant
doc:
<comment>Description:</comment>
  Specifies that the variable should be bound as a DOUBLE, FLOAT, or REAL data type.


id: DB2_FORWARD_ONLY
type: constant
doc:
<comment>Description:</comment>
  Specifies a forward-only cursor for a statement resource. This is the default cursor type and is
  supported on all database servers.


id: DB2_LONG
type: constant
doc:
<comment>Description:</comment>
  Specifies that the variable should be bound as a SMALLINT, INTEGER, or BIGINT data type.


id: DB2_PARAM_FILE
type: constant
doc:
<comment>Description:</comment>
  Specifies that the column should be bound directly to a file for input.


id: DB2_PARAM_IN
type: constant
doc:
<comment>Description:</comment>
  Specifies the PHP variable should be bound as an IN parameter for a stored procedure.


id: DB2_PARAM_INOUT
type: constant
doc:
<comment>Description:</comment>
  Specifies the PHP variable should be bound as an INOUT parameter for a stored procedure.


id: DB2_PARAM_OUT
type: constant
doc:
<comment>Description:</comment>
  Specifies the PHP variable should be bound as an OUT parameter for a stored procedure.


id: DB2_PASSTHRU
type: constant
doc:
<comment>Description:</comment>
  Specifies that binary data shall be converted to a <info>null</info> value.


id: DB2_SCROLLABLE
type: constant
doc:
<comment>Description:</comment>
  Specifies a scrollable cursor for a statement resource. This mode enables random access to rows in
  a result set, but currently is supported only by IBM DB2 Universal Database.


id: DBASE_RDONLY
type: constant
doc:
<comment>Description:</comment>
  Open database for reading only. Used with <strong>dbase_open()</strong>. (Available as of dbase 7.0.0)


id: DBASE_RDWR
type: constant
doc:
<comment>Description:</comment>
  Open database for reading and writing. Used with <strong>dbase_open()</strong>. (Available as of dbase 7.0.0)


id: DBASE_TYPE_DBASE
type: constant
doc:
<comment>Description:</comment>
  Create dBASE style database. Used with <strong>dbase_create()</strong>. (Available as of dbase 7.0.0)


id: DBASE_TYPE_FOXPRO
type: constant
doc:
<comment>Description:</comment>
  Create FoxPro style database. Used with <strong>dbase_create()</strong>. (Available as of dbase 7.0.0)


id: DBA_LMDB_NO_SUB_DIR
type: constant
doc:
<comment>Description:</comment>
  LMDB Driver flag to disallow the creation of a subdirectory for the database files. Available as
  of PHP 8.2.0.


id: DBA_LMDB_USE_SUB_DIR
type: constant
doc:
<comment>Description:</comment>
  LMDB Driver flag to allow the creation of a subdirectory for the database files. Available as of
  PHP 8.2.0.


id: DISP_E_BADINDEX
type: constant
doc:
<comment>Description:</comment>
  -2147352565
  
  An error that indicates that an array index does not exist.
  
  As of PHP 7.0.0, the value is <return>2147614731</return> on x64.


id: DISP_E_DIVBYZERO
type: constant
doc:
<comment>Description:</comment>
  -2147352558
  
  A return error that indicates a divide by zero error.
  
  As of PHP 7.0.0, the value is <return>2147614738</return> on x64.


id: DISP_E_OVERFLOW
type: constant
doc:
<comment>Description:</comment>
  -2147352566
  
  An error that indicates that a value could not be coerced to  its expected representation.
  
  As of PHP 7.0.0, the value is <return>2147614730</return> on x64.


id: DNS_ALL
type: constant
doc:
<comment>Description:</comment>
  Iteratively query the name server for each available record type.


id: DNS_ANY
type: constant
doc:
<comment>Description:</comment>
  Any Resource Record.  On most systems this returns all resource records, however it should not be
  counted upon for critical uses. Try <info>DNS_ALL</info> instead.


id: DNS_CAA
type: constant
doc:
<comment>Description:</comment>
  Certification Authority Authorization Resource (available as of PHP 7.0.16 and 7.1.2)


id: DNS_HINFO
type: constant
doc:
<comment>Description:</comment>
  Host Info Resource (See IANA's <return>Operating System Names</return> for the meaning of these values)


id: DOMAttr
type: class
doc:
<comment>Description:</comment>
  <class>DOMAttr</class> represents an attribute in the  <class>DOMElement</class> object.


id: DOMAttr::__construct
type: function
doc:
<comment>Description:</comment>
  Creates a new DOMAttr object
  
  Creates a new DOMAttr object. This object is read only.  It may be appended to a document, but
  additional nodes may not be appended to this node until the node is associated with a document. To
  create a writable node, use  .

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>   The tag name of the attribute.
  <info>string</info>  <strong>$value</strong>  The value of the attribute.

<comment>See Also:</comment>
   * DOMDocument::createAttribute


id: DOMAttr::isId
type: function
doc:
<comment>Description:</comment>
  Checks if attribute is a defined ID
    
  
  This function checks if the attribute is a defined ID.
  
  According to the DOM standard this requires a DTD which defines the  attribute ID to be of type
  ID. You need to validate your document with  or <return>DOMDocument::validateOnParse</return> before using this
  function.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: DOMCdataSection
type: class
doc:
<comment>Description:</comment>
  The <class>DOMCdataSection</class> inherits from  <class>DOMText</class> for textual representation of CData constructs.


id: DOMCdataSection::__construct
type: function
doc:
<comment>Description:</comment>
  Constructs a new DOMCdataSection object
  
  Constructs a new CDATA node. This works like the <class>DOMText</class> class.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The value of the CDATA node. If not supplied, an empty CDATA node is created.

<comment>See Also:</comment>
   * DOMText::__construct
   * DOMDocument::createTextNode


id: DOMCharacterData
type: class
doc:
<comment>Description:</comment>
  Represents nodes with character data. No nodes directly correspond to this class, but other nodes
  do inherit from it.


id: DOMCharacterData::after
type: function
doc:
<comment>Description:</comment>
  Adds nodes after the character data
  
  Adds the passed <strong>$nodes</strong> after the element.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  Nodes to be added after the node. Strings are automatically converted to
                          text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMChildNode::after
   * DOMCharacterData::before


id: DOMCharacterData::appendData
type: function
doc:
<comment>Description:</comment>
  Append the string to the end of the character data of the node
    
  
  Append the string <strong>$data</strong> to the end of the character data of the node.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The string to append.

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * DOMCharacterData::deleteData
   * DOMCharacterData::insertData
   * DOMCharacterData::replaceData
   * DOMCharacterData::substringData


id: DOMCharacterData::before
type: function
doc:
<comment>Description:</comment>
  Adds nodes before the node
  
  Adds the passed <strong>$nodes</strong> before the node.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  Nodes to be added before the node. Strings are automatically converted to
                          text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMChildNode::before
   * DOMCharacterData::after


id: DOMCharacterData::deleteData
type: function
doc:
<comment>Description:</comment>
  Remove a range of characters from the node
    
  
  Deletes <strong>$count</strong> characters starting from position <strong>$offset</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$offset</strong>  The offset from which to start removing.
  <info>int</info>  <strong>$count</strong>   The number of characters to delete. If the sum of <strong>$offset</strong> and <strong>$count</strong> exceeds the
                length, then all characters to the end of the data are deleted.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMCharacterData::appendData
   * DOMCharacterData::insertData
   * DOMCharacterData::replaceData
   * DOMCharacterData::substringData


id: DOMCharacterData::insertData
type: function
doc:
<comment>Description:</comment>
  Insert a string at the specified 16-bit unit offset
    
  
  Inserts string <strong>$data</strong> at position <strong>$offset</strong>.

<comment>Param:</comment>
  <info>int</info>     <strong>$offset</strong>  The character offset at which to insert.
  <info>string</info>  <strong>$data</strong>    The string to insert.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMCharacterData::appendData
   * DOMCharacterData::deleteData
   * DOMCharacterData::replaceData
   * DOMCharacterData::substringData


id: DOMCharacterData::remove
type: function
doc:
<comment>Description:</comment>
  Removes the character data
  
  Removes the character data.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMChildNode::remove
   * DOMCharacterData::after
   * DOMCharacterData::before
   * DOMCharacterData::replaceWith
   * DOMNode::removeChild


id: DOMCharacterData::replaceData
type: function
doc:
<comment>Description:</comment>
  Replace a substring within the DOMCharacterData node
    
  
  Replace <strong>$count</strong> characters starting from position <strong>$offset</strong> with <strong>$data</strong>.

<comment>Param:</comment>
  <info>int</info>     <strong>$offset</strong>  The offset from which to start replacing.
  <info>int</info>     <strong>$count</strong>   The number of characters to replace. If the sum of <strong>$offset</strong> and <strong>$count</strong> exceeds the
                   length, then all characters to the end of the data are replaced.
  <info>string</info>  <strong>$data</strong>    The string with which the range must be replaced.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMCharacterData::appendData
   * DOMCharacterData::deleteData
   * DOMCharacterData::insertData
   * DOMCharacterData::substringData


id: DOMCharacterData::replaceWith
type: function
doc:
<comment>Description:</comment>
  Replaces the character data with new nodes
  
  Replaces the character data with new <strong>$nodes</strong>.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  The replacement nodes. Strings are automatically converted to text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMChildNode::replaceWith
   * DOMCharacterData::after
   * DOMCharacterData::before
   * DOMCharacterData::remove


id: DOMCharacterData::substringData
type: function
doc:
<comment>Description:</comment>
  Extracts a range of data from the node
    
  
  Returns the specified substring.

<comment>Param:</comment>
  <info>int</info>  <strong>$offset</strong>  Start offset of substring to extract.
  <info>int</info>  <strong>$count</strong>   The number of characters to extract.

<comment>Return:</comment>
  <info>string|false</info>  The specified substring. If the sum of <strong>$offset</strong>  and <strong>$count</strong> exceeds the length, then
                all 16-bit units  to the end of the data are returned.

<comment>See Also:</comment>
   * DOMCharacterData::appendData
   * DOMCharacterData::deleteData
   * DOMCharacterData::insertData
   * DOMCharacterData::replaceData


id: DOMChildNode::after
type: function
doc:
<comment>Description:</comment>
  Adds nodes after the node
  
  Adds the passed <strong>$nodes</strong> after the node.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  Nodes to be added after the node. Strings are automatically converted to
                          text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMChildNode::before
   * DOMChildNode::remove
   * DOMChildNode::replaceWith
   * DOMNode::appendChild


id: DOMChildNode::before
type: function
doc:
<comment>Description:</comment>
  Adds nodes before the node
  
  Adds the passed <strong>$nodes</strong> before the node.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  Nodes to be added before the node. Strings are automatically converted to
                          text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMChildNode::after
   * DOMChildNode::remove
   * DOMChildNode::replaceWith


id: DOMChildNode::remove
type: function
doc:
<comment>Description:</comment>
  Removes the node
  
  Removes the node.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMChildNode::after
   * DOMChildNode::before
   * DOMChildNode::replaceWith
   * DOMNode::removeChild


id: DOMChildNode::replaceWith
type: function
doc:
<comment>Description:</comment>
  Replaces the node with new nodes
  
  Replaces the node with new <strong>$nodes</strong>.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  The replacement nodes. Strings are automatically converted to text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMChildNode::after
   * DOMChildNode::before
   * DOMChildNode::remove
   * DOMNode::replaceChild


id: DOMComment
type: class
doc:
<comment>Description:</comment>
  Represents comment nodes, characters delimited by \<!-- and --&gt;.


id: DOMComment::__construct
type: function
doc:
<comment>Description:</comment>
  Creates a new DOMComment object
    
  
  Creates a new <class>DOMComment</class> object. This object is read only.  It may be appended to a document, but
  additional nodes may not be appended to this node until  the node is associated with a document.
  To create a writeable node, use  .

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The value of the comment.

<comment>See Also:</comment>
   * DOMDocument::createComment


id: DOMDocument
type: class
doc:
<comment>Description:</comment>
  Represents an entire HTML or XML document; serves as the root of the document tree.


id: DOMDocument::__construct
type: function
doc:
<comment>Description:</comment>
  Creates a new DOMDocument object
    
  
  Creates a new <class>DOMDocument</class> object.

<comment>Param:</comment>
  <info>string</info>  <strong>$version</strong>   The version number of the document as part of the XML declaration.
  <info>string</info>  <strong>$encoding</strong>  The encoding of the document as part of the XML declaration.

<comment>See Also:</comment>
   * DOMImplementation::createDocument


id: DOMDocument::adoptNode
type: function
doc:
<comment>Description:</comment>
  Transfer a node from another document
  
  Transfer a node from another document into the current document.

<comment>Param:</comment>
  <info>DOMNode</info>  <strong>$node</strong>  The node to transfer.

<comment>Return:</comment>
  <info>DOMNode|false</info>  The node that was transfered, or <info>false</info> on error.

<comment>See Also:</comment>
   * DOMDocument::importNode


id: DOMDocument::append
type: function
doc:
<comment>Description:</comment>
  Appends nodes after the last child node
  
  Appends one or many <strong>$nodes</strong> to the list of children after the last child node.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  The nodes to append. Strings are automatically converted to text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMParentNode::append
   * DOMDocument::prepend


id: DOMDocument::createAttribute
type: function
doc:
<comment>Description:</comment>
  Create new attribute
  
  This function creates a new instance of class <class>DOMAttr</class>.  This node will not show up in the document
  unless
  it is inserted with (e.g.) <strong>DOMNode::appendChild()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$localName</strong>  The name of the attribute.

<comment>Return:</comment>
  <info>DOMAttr|false</info>  The new <class>DOMAttr</class> or <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * DOMNode::appendChild
   * DOMDocument::createAttributeNS
   * DOMDocument::createCDATASection
   * DOMDocument::createComment
   * DOMDocument::createDocumentFragment
   * DOMDocument::createElement
   * DOMDocument::createElementNS
   * DOMDocument::createEntityReference
   * DOMDocument::createProcessingInstruction
   * DOMDocument::createTextNode


id: DOMDocument::createAttributeNS
type: function
doc:
<comment>Description:</comment>
  Create new attribute node with an associated namespace
    
  
  This function creates a new instance of class <class>DOMAttr</class>. This node will not show up in the document
  unless
  it is inserted with (e.g.) <strong>DOMNode::appendChild()</strong>.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$namespace</strong>      The URI of the namespace.
  <info>string</info>       <strong>$qualifiedName</strong>  The tag name and prefix of the attribute, as <return>prefix:tagname</return>.

<comment>Return:</comment>
  <info>DOMAttr|false</info>  The new <class>DOMAttr</class> or <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * DOMNode::appendChild
   * DOMDocument::createAttribute
   * DOMDocument::createCDATASection
   * DOMDocument::createComment
   * DOMDocument::createDocumentFragment
   * DOMDocument::createElement
   * DOMDocument::createElementNS
   * DOMDocument::createEntityReference
   * DOMDocument::createProcessingInstruction
   * DOMDocument::createTextNode


id: DOMDocument::createCDATASection
type: function
doc:
<comment>Description:</comment>
  Create new cdata node
  
  This function creates a new instance of class <class>DOMCDATASection</class>. This node will not show up in the
  document unless
  it is inserted with (e.g.) <strong>DOMNode::appendChild()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The content of the cdata.

<comment>Return:</comment>
  <info>DOMCdataSection|false</info>  The new <class>DOMCDATASection</class> or <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * DOMNode::appendChild
   * DOMDocument::createAttribute
   * DOMDocument::createAttributeNS
   * DOMDocument::createComment
   * DOMDocument::createDocumentFragment
   * DOMDocument::createElement
   * DOMDocument::createElementNS
   * DOMDocument::createEntityReference
   * DOMDocument::createProcessingInstruction
   * DOMDocument::createTextNode


id: DOMDocument::createComment
type: function
doc:
<comment>Description:</comment>
  Create new comment node
  
  This function creates a new instance of class <class>DOMComment</class>. This node will not show up in the
  document unless
  it is inserted with (e.g.) <strong>DOMNode::appendChild()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The content of the comment.

<comment>Return:</comment>
  <info>DOMComment</info>  The new <class>DOMComment</class>.

<comment>See Also:</comment>
   * DOMNode::appendChild
   * DOMDocument::createAttribute
   * DOMDocument::createAttributeNS
   * DOMDocument::createCDATASection
   * DOMDocument::createDocumentFragment
   * DOMDocument::createElement
   * DOMDocument::createElementNS
   * DOMDocument::createEntityReference
   * DOMDocument::createProcessingInstruction
   * DOMDocument::createTextNode


id: DOMDocument::createDocumentFragment
type: function
doc:
<comment>Description:</comment>
  Create new document fragment
  
  This function creates a new instance of class  <class>DOMDocumentFragment</class>. This node will not show up in
  the document unless
  it is inserted with (e.g.) <strong>DOMNode::appendChild()</strong>.

<comment>Return:</comment>
  <info>DOMDocumentFragment</info>  The new <class>DOMDocumentFragment</class>.

<comment>See Also:</comment>
   * DOMNode::appendChild
   * DOMDocument::createAttribute
   * DOMDocument::createAttributeNS
   * DOMDocument::createCDATASection
   * DOMDocument::createComment
   * DOMDocument::createElement
   * DOMDocument::createElementNS
   * DOMDocument::createEntityReference
   * DOMDocument::createProcessingInstruction
   * DOMDocument::createTextNode


id: DOMDocument::createElement
type: function
doc:
<comment>Description:</comment>
  Create new element node
  
  This function creates a new instance of class <class>DOMElement</class>. This node will not show up in the
  document unless
  it is inserted with (e.g.) <strong>DOMNode::appendChild()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$localName</strong>  The tag name of the element.
  <info>string</info>  <strong>$value</strong>      The value of the element. By default, an empty element will be created. The
                      value can also be set later with DOMElement::$nodeValue.
                      
                      The value is used verbatim except that the
                      \< and &gt; entity references will escaped. Note that & has to be manually escaped; otherwise it is regarded as starting an entity reference. Also " won't be escaped.

<comment>Return:</comment>
  <info>DOMElement|false</info>  Returns a new instance of class <class>DOMElement</class> or <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * DOMNode::appendChild
   * DOMDocument::createAttribute
   * DOMDocument::createAttributeNS
   * DOMDocument::createCDATASection
   * DOMDocument::createComment
   * DOMDocument::createDocumentFragment
   * DOMDocument::createElementNS
   * DOMDocument::createEntityReference
   * DOMDocument::createProcessingInstruction
   * DOMDocument::createTextNode


id: DOMDocument::createElementNS
type: function
doc:
<comment>Description:</comment>
  Create new element node with an associated namespace
    
  
  This function creates a new element node with an associated namespace. This node will not show up
  in the document unless
  it is inserted with (e.g.) <strong>DOMNode::appendChild()</strong>.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$namespace</strong>      The URI of the namespace.
  <info>string</info>       <strong>$qualifiedName</strong>  The qualified name of the element, as <return>prefix:tagname</return>.
  <info>string</info>       <strong>$value</strong>          The value of the element. By default, an empty element will be
                               created. You can also set the value later with
                               DOMElement::$nodeValue.

<comment>Return:</comment>
  <info>DOMElement|false</info>  The new <class>DOMElement</class> or <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * DOMNode::appendChild
   * DOMDocument::createAttribute
   * DOMDocument::createAttributeNS
   * DOMDocument::createCDATASection
   * DOMDocument::createComment
   * DOMDocument::createDocumentFragment
   * DOMDocument::createElement
   * DOMDocument::createEntityReference
   * DOMDocument::createProcessingInstruction
   * DOMDocument::createTextNode


id: DOMDocument::createEntityReference
type: function
doc:
<comment>Description:</comment>
  Create new entity reference node
  
  This function creates a new instance of class <class>DOMEntityReference</class>. This node will not show up in
  the document unless
  it is inserted with (e.g.) <strong>DOMNode::appendChild()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  The content of the entity reference, e.g. the entity reference minus the leading <return>&</return>
                 and the trailing <return>;</return> characters.

<comment>Return:</comment>
  <info>DOMEntityReference|false</info>  The new <class>DOMEntityReference</class> or <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * DOMNode::appendChild
   * DOMDocument::createAttribute
   * DOMDocument::createAttributeNS
   * DOMDocument::createCDATASection
   * DOMDocument::createComment
   * DOMDocument::createDocumentFragment
   * DOMDocument::createElement
   * DOMDocument::createElementNS
   * DOMDocument::createProcessingInstruction
   * DOMDocument::createTextNode


id: DOMDocument::createProcessingInstruction
type: function
doc:
<comment>Description:</comment>
  Creates new PI node
  
  This function creates a new instance of class <class>DOMProcessingInstruction</class>. This node will not show up
  in the document unless
  it is inserted with (e.g.) <strong>DOMNode::appendChild()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$target</strong>  The target of the processing instruction.
  <info>string</info>  <strong>$data</strong>    The content of the processing instruction.

<comment>Return:</comment>
  <info>DOMProcessingInstruction|false</info>  The new <class>DOMProcessingInstruction</class> or <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * DOMNode::appendChild
   * DOMDocument::createAttribute
   * DOMDocument::createAttributeNS
   * DOMDocument::createCDATASection
   * DOMDocument::createComment
   * DOMDocument::createDocumentFragment
   * DOMDocument::createElement
   * DOMDocument::createElementNS
   * DOMDocument::createEntityReference
   * DOMDocument::createTextNode


id: DOMDocument::createTextNode
type: function
doc:
<comment>Description:</comment>
  Create new text node
  
  This function creates a new instance of class <class>DOMText</class>. This node will not show up in the document
  unless
  it is inserted with (e.g.) <strong>DOMNode::appendChild()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The content of the text.

<comment>Return:</comment>
  <info>DOMText</info>  The new <class>DOMText</class>.

<comment>See Also:</comment>
   * DOMNode::appendChild
   * DOMDocument::createAttribute
   * DOMDocument::createAttributeNS
   * DOMDocument::createCDATASection
   * DOMDocument::createComment
   * DOMDocument::createDocumentFragment
   * DOMDocument::createElement
   * DOMDocument::createElementNS
   * DOMDocument::createEntityReference
   * DOMDocument::createProcessingInstruction


id: DOMDocument::getElementById
type: function
doc:
<comment>Description:</comment>
  Searches for an element with a certain id
  
  This function is similar to  but  searches for an element with a given id.
  
  For this function to work, you will need either to set some ID attributes with  or a DTD which
  defines an attribute to be of type ID.  In the later case, you will need to validate your document
  with   or DOMDocument::$validateOnParse before using this function.

<comment>Param:</comment>
  <info>string</info>  <strong>$elementId</strong>  The unique id value for an element.

<comment>Return:</comment>
  <info>DOMElement|null</info>  Returns the <class>DOMElement</class> or <info>null</info> if the element is not found.

<comment>See Also:</comment>
   * DOMDocument::getElementsByTagName


id: DOMDocument::getElementsByTagName
type: function
doc:
<comment>Description:</comment>
  Searches for all elements with given local tag name
  
  This function returns a new instance of class <class>DOMNodeList</class> containing all the elements with a given
  local tag name.

<comment>Param:</comment>
  <info>string</info>  <strong>$qualifiedName</strong>  The local name (without namespace) of the tag to match on. The special
                          value <return>*</return> matches all tags.

<comment>Return:</comment>
  <info>DOMNodeList</info>  A new <class>DOMNodeList</class> object containing all the matched  elements.

<comment>See Also:</comment>
   * DOMDocument::getElementsByTagNameNS


id: DOMDocument::getElementsByTagNameNS
type: function
doc:
<comment>Description:</comment>
  Searches for all elements with given tag name in specified namespace
    
  
  Returns a <class>DOMNodeList</class> of all elements with a given  local name and a namespace URI.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$namespace</strong>  The namespace URI of the elements to match on. The special value <return>"*"</return>
                           matches all namespaces. Passing <info>null</info> matches the empty namespace.
  <info>string</info>       <strong>$localName</strong>  The local name of the elements to match on. The special value <return>"*"</return> matches
                           all local names.

<comment>Return:</comment>
  <info>DOMNodeList</info>  A new <class>DOMNodeList</class> object containing all the matched  elements.

<comment>See Also:</comment>
   * DOMDocument::getElementsByTagName


id: DOMDocument::importNode
type: function
doc:
<comment>Description:</comment>
  Import node into current document
  
  This function returns a copy of the node to import and associates it with  the current document.

<comment>Param:</comment>
  <info>DOMNode</info>  <strong>$node</strong>  The node to import.
  <info>bool</info>     <strong>$deep</strong>  If set to <info>true</info>, this method will recursively import the subtree under the <strong>$node</strong>.
                  
                  To copy the nodes attributes <strong>$deep</strong> needs to be set to <info>true</info>

<comment>Return:</comment>
  <info>DOMNode|false</info>  The copied node or <info>false</info>, if it cannot be copied.


id: DOMDocument::load
type: function
doc:
<comment>Description:</comment>
  Load XML from a file
    
  
  Loads an XML document from a file.
  
  Unix style paths with forward slashes can cause significant performance degradation on Windows
  systems; be sure to call <strong>realpath()</strong> in such a case.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The path to the XML document.
  <info>int</info>     <strong>$options</strong>   Bitwise <return>OR</return> of the libxml option constants.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMDocument::loadXML
   * DOMDocument::save
   * DOMDocument::saveXML


id: DOMDocument::loadHTML
type: function
doc:
<comment>Description:</comment>
  Load HTML from a string
    
  
  The function parses the HTML contained in the string <strong>$source</strong>. Unlike loading XML, HTML does not
  have to be well-formed to load.
  
  This function parses the input using an HTML 4 parser. The parsing rules of HTML 5, which is what
  modern web browsers use, are different. Depending on the input this might result in a different
  DOM structure. Therefore this function cannot be safely used for sanitizing HTML.
  
  As an example, some HTML elements will implicitly close a parent element when encountered. The
  rules for automatically closing parent elements differ between HTML 4 and HTML 5 and thus the
  resulting DOM structure that <class>DOMDocument</class> sees might be different from the DOM structure a web
  browser sees, possibly allowing an attacker to break the resulting HTML.

<comment>Param:</comment>
  <info>string</info>  <strong>$source</strong>   The HTML string.
  <info>int</info>     <strong>$options</strong>  Bitwise <return>OR</return> of the libxml option constants.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMDocument::loadHTMLFile
   * DOMDocument::saveHTML
   * DOMDocument::saveHTMLFile


id: DOMDocument::loadHTMLFile
type: function
doc:
<comment>Description:</comment>
  Load HTML from a file
    
  
  The function parses the HTML document in the file named <strong>$filename</strong>. Unlike loading XML, HTML does
  not have to be well-formed to load.
  
  This function parses the input using an HTML 4 parser. The parsing rules of HTML 5, which is what
  modern web browsers use, are different. Depending on the input this might result in a different
  DOM structure. Therefore this function cannot be safely used for sanitizing HTML.
  
  As an example, some HTML elements will implicitly close a parent element when encountered. The
  rules for automatically closing parent elements differ between HTML 4 and HTML 5 and thus the
  resulting DOM structure that <class>DOMDocument</class> sees might be different from the DOM structure a web
  browser sees, possibly allowing an attacker to break the resulting HTML.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The path to the HTML file.
  <info>int</info>     <strong>$options</strong>   Bitwise <return>OR</return> of the libxml option constants.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMDocument::loadHTML
   * DOMDocument::saveHTML
   * DOMDocument::saveHTMLFile


id: DOMDocument::loadXML
type: function
doc:
<comment>Description:</comment>
  Load XML from a string
    
  
  Loads an XML document from a string.

<comment>Param:</comment>
  <info>string</info>  <strong>$source</strong>   The string containing the XML.
  <info>int</info>     <strong>$options</strong>  Bitwise <return>OR</return> of the libxml option constants.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMDocument::load
   * DOMDocument::save
   * DOMDocument::saveXML


id: DOMDocument::normalizeDocument
type: function
doc:
<comment>Description:</comment>
  Normalizes the document
  
  This method acts as if you saved and then loaded the document, putting the document in a "normal"
  form.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * The DOM Specification
   * DOMNode::normalize


id: DOMDocument::prepend
type: function
doc:
<comment>Description:</comment>
  Prepends nodes before the first child node
  
  Prepends one or many <strong>$nodes</strong> to the list of children before the first child node.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  The nodes to prepend. Strings are automatically converted to text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMParentNode::prepend
   * DOMDocument::append


id: DOMDocument::registerNodeClass
type: function
doc:
<comment>Description:</comment>
  Register extended class used to create base node type
  
  This method allows you to register your own extended DOM class to be used afterward by the PHP DOM
  extension.
  
  This method is not part of the DOM standard.
  
  The constructor of the objects of the registered node classes is not called.

<comment>Param:</comment>
  <info>string</info>       <strong>$baseClass</strong>      The DOM class that you want to extend. You can find a list of these
                               classes in the chapter introduction.
  <info>string|null</info>  <strong>$extendedClass</strong>  Your extended class name. If <info>null</info> is provided, any previously
                               registered class extending <strong>$baseClass</strong> will be removed.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: DOMDocument::relaxNGValidate
type: function
doc:
<comment>Description:</comment>
  Performs relaxNG validation on the document
    
  
  Performs relaxNG validation on the document based on the given RNG schema.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The RNG file.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMDocument::relaxNGValidateSource
   * DOMDocument::schemaValidate
   * DOMDocument::schemaValidateSource
   * DOMDocument::validate


id: DOMDocument::relaxNGValidateSource
type: function
doc:
<comment>Description:</comment>
  Performs relaxNG validation on the document
    
  
  Performs relaxNG validation on the document based on the given RNG source.

<comment>Param:</comment>
  <info>string</info>  <strong>$source</strong>  A string containing the RNG schema.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMDocument::relaxNGValidate
   * DOMDocument::schemaValidate
   * DOMDocument::schemaValidateSource
   * DOMDocument::validate


id: DOMDocument::replaceChildren
type: function
doc:
<comment>Description:</comment>
  Replace children in document
  
  Replaces the children in the document with new <strong>$nodes</strong>.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  The nodes replacing the children. Strings are automatically converted to
                          text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMParentNode::replaceChildren
   * DOMDocument::append
   * DOMDocument::prepend


id: DOMDocument::save
type: function
doc:
<comment>Description:</comment>
  Dumps the internal XML tree back into a file
    
  
  Creates an XML document from the DOM representation. This function is usually  called after
  building a new dom document from scratch as in the example below.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The path to the saved XML document.
  <info>int</info>     <strong>$options</strong>   Additional Options. Currently only LIBXML_NOEMPTYTAG is supported.

<comment>Return:</comment>
  <info>int|false</info>  Returns the number of bytes written or <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * DOMDocument::saveXML
   * DOMDocument::load
   * DOMDocument::loadXML


id: DOMDocument::saveHTML
type: function
doc:
<comment>Description:</comment>
  Dumps the internal document into a string using HTML formatting
    
  
  Creates an HTML document from the DOM representation. This function is usually  called after
  building a new dom document from scratch as in the example below.

<comment>Param:</comment>
  <info>DOMNode|null</info>  <strong>$node</strong>  Optional parameter to output a subset of the document.

<comment>Return:</comment>
  <info>string|false</info>  Returns the HTML, or <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * DOMDocument::saveHTMLFile
   * DOMDocument::loadHTML
   * DOMDocument::loadHTMLFile


id: DOMDocument::saveHTMLFile
type: function
doc:
<comment>Description:</comment>
  Dumps the internal document into a file using HTML formatting
    
  
  Creates an HTML document from the DOM representation. This function is usually  called after
  building a new dom document from scratch as in the example below.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The path to the saved HTML document.

<comment>Return:</comment>
  <info>int|false</info>  Returns the number of bytes written or <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * DOMDocument::saveHTML
   * DOMDocument::loadHTML
   * DOMDocument::loadHTMLFile


id: DOMDocument::saveXML
type: function
doc:
<comment>Description:</comment>
  Dumps the internal XML tree back into a string
    
  
  Creates an XML document from the DOM representation. This function is usually  called after
  building a new dom document from scratch as in the example below.

<comment>Param:</comment>
  <info>DOMNode|null</info>  <strong>$node</strong>     Use this parameter to output only a specific node without XML declaration
                          rather than the entire document.
  <info>int</info>           <strong>$options</strong>  Additional Options. The LIBXML_NOEMPTYTAG and LIBXML_NOXMLDECL options are
                          supported. Prior to PHP 8.3.0, only the LIBXML_NOEMPTYTAG option is
                          supported.

<comment>Return:</comment>
  <info>string|false</info>  Returns the XML, or <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * DOMDocument::save
   * DOMDocument::load
   * DOMDocument::loadXML


id: DOMDocument::schemaValidate
type: function
doc:
<comment>Description:</comment>
  Validates a document based on a schema. Only XML Schema 1.0 is supported.
    
  
  Validates a document based on the given schema file.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The path to the schema.
  <info>int</info>     <strong>$flags</strong>     A bitmask of Libxml schema validation flags. Currently the only supported value
                     is LIBXML_SCHEMA_CREATE. Available since Libxml 2.6.14.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMDocument::schemaValidateSource
   * DOMDocument::relaxNGValidate
   * DOMDocument::relaxNGValidateSource
   * DOMDocument::validate


id: DOMDocument::schemaValidateSource
type: function
doc:
<comment>Description:</comment>
  Validates a document based on a schema
    
  
  Validates a document based on a schema defined in the given string.

<comment>Param:</comment>
  <info>string</info>  <strong>$source</strong>  A string containing the schema.
  <info>int</info>     <strong>$flags</strong>   A bitmask of Libxml schema validation flags. Currently the only supported value
                   is LIBXML_SCHEMA_CREATE. Available since Libxml 2.6.14.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMDocument::schemaValidate
   * DOMDocument::relaxNGValidate
   * DOMDocument::relaxNGValidateSource
   * DOMDocument::validate


id: DOMDocument::validate
type: function
doc:
<comment>Description:</comment>
  Validates the document based on its DTD
    
  
  Validates the document based on its DTD.
  
  You can also use the <return>validateOnParse</return> property of  <class>DOMDocument</class> to make a DTD validation.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure. If the document has no DTD attached, this
        method will return <info>false</info>.

<comment>See Also:</comment>
   * DOMDocument::schemaValidate
   * DOMDocument::schemaValidateSource
   * DOMDocument::relaxNGValidate
   * DOMDocument::relaxNGValidateSource


id: DOMDocument::xinclude
type: function
doc:
<comment>Description:</comment>
  Substitutes XIncludes in a DOMDocument Object
    
  
  This method substitutes XIncludes in a DOMDocument object.
  
  Due to libxml2 automatically resolving entities, this method will produce unexpected results if
  the included XML file have an attached DTD.

<comment>Param:</comment>
  <info>int</info>  <strong>$options</strong>  Bitwise <return>OR</return> of the libxml option constants.

<comment>Return:</comment>
  <info>int|false</info>  Returns the number of XIncludes in the document, -1 if some processing failed, or <info>false</info>
             if there were no substitutions.


id: DOMDocumentFragment::append
type: function
doc:
<comment>Description:</comment>
  Appends nodes after the last child node
  
  Appends one or many <strong>$nodes</strong> to the list of children after the last child node.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  The nodes to append. Strings are automatically converted to text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMParentNode::append
   * DOMDocumentFragment::prepend


id: DOMDocumentFragment::appendXML
type: function
doc:
<comment>Description:</comment>
  Append raw XML data
  
  Appends raw XML data to a DOMDocumentFragment.
  
  This method is not part of the DOM standard. It was created as a simpler approach for appending an
  XML DocumentFragment in a DOMDocument.
  
  If you want to stick to the standards, you will have to create a temporary DOMDocument with a
  dummy root and then loop through the child nodes of the root of your XML data to append them.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  XML to append.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: DOMDocumentFragment::prepend
type: function
doc:
<comment>Description:</comment>
  Prepends nodes before the first child node
  
  Prepends one or many <strong>$nodes</strong> to the list of children before the first child node.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  The nodes to prepend. Strings are automatically converted to text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMParentNode::prepend
   * DOMDocumentFragment::append


id: DOMDocumentFragment::replaceChildren
type: function
doc:
<comment>Description:</comment>
  Replace children in fragment
  
  Replaces the children in the document fragment with new <strong>$nodes</strong>.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  The nodes replacing the children. Strings are automatically converted to
                          text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMParentNode::replaceChildren
   * DOMDocumentFragment::append
   * DOMDocumentFragment::prepend


id: DOMDocumentType
type: class
doc:
<comment>Description:</comment>
  Each <class>DOMDocument</class> has a <return>doctype</return> attribute whose value is either <info>null</info> or a <class>DOMDocumentType</class> object.


id: DOMElement::__construct
type: function
doc:
<comment>Description:</comment>
  Creates a new DOMElement object
    
  
  Creates a new <class>DOMElement</class> object. This object is read only.  It may be appended to a document, but
  additional nodes may not be appended to this node until  the node is associated with a document.
  To create a writeable node, use   or  .

<comment>Param:</comment>
  <info>string</info>       <strong>$qualifiedName</strong>  The tag name of the element. When also passing in namespaceURI, the
                               element name  may take a prefix to be associated with the URI.
  <info>string|null</info>  <strong>$value</strong>          The value of the element.
  <info>string</info>       <strong>$namespace</strong>      A namespace URI to create the element within a specific namespace.

<comment>See Also:</comment>
   * DOMDocument::createElement
   * DOMDocument::createElementNS


id: DOMElement::after
type: function
doc:
<comment>Description:</comment>
  Adds nodes after the element
  
  Adds the passed <strong>$nodes</strong> after the element.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  Nodes to be added after the node. Strings are automatically converted to
                          text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMChildNode::after
   * DOMElement::before


id: DOMElement::append
type: function
doc:
<comment>Description:</comment>
  Appends nodes after the last child node
  
  Appends one or many <strong>$nodes</strong> to the list of children after the last child node.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  The nodes to append. Strings are automatically converted to text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMParentNode::append
   * DOMElement::prepend


id: DOMElement::before
type: function
doc:
<comment>Description:</comment>
  Adds nodes before the element
  
  Adds the passed <strong>$nodes</strong> before the element.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  Nodes to be added before the node. Strings are automatically converted to
                          text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMChildNode::before
   * DOMElement::after


id: DOMElement::getAttribute
type: function
doc:
<comment>Description:</comment>
  Returns value of attribute
  
  Gets the value of the attribute with name <strong>$qualifiedName</strong>  for the current node.

<comment>Param:</comment>
  <info>string</info>  <strong>$qualifiedName</strong>  The name of the attribute.

<comment>Return:</comment>
  <info>string</info>  The value of the attribute, or an empty string if no attribute with the given
          <strong>$qualifiedName</strong> is found.

<comment>See Also:</comment>
   * DOMElement::hasAttribute
   * DOMElement::setAttribute
   * DOMElement::removeAttribute


id: DOMElement::getAttributeNS
type: function
doc:
<comment>Description:</comment>
  Returns value of attribute
  
  Gets the value of the attribute in namespace <strong>$namespace</strong>  with local name <strong>$localName</strong> for the
  current node.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$namespace</strong>  The namespace URI.
  <info>string</info>       <strong>$localName</strong>  The local name.

<comment>Return:</comment>
  <info>string</info>  The value of the attribute, or an empty string if no attribute with the given <strong>$localName</strong>
          and <strong>$namespace</strong>  is found.

<comment>See Also:</comment>
   * DOMElement::hasAttributeNS
   * DOMElement::setAttributeNS
   * DOMElement::removeAttributeNS


id: DOMElement::getAttributeNames
type: function
doc:
<comment>Description:</comment>
  Get attribute names
  
  Get attribute names.

<comment>Return:</comment>
  <info>array</info>  Return attribute names.


id: DOMElement::getAttributeNode
type: function
doc:
<comment>Description:</comment>
  Returns attribute node
  
  Returns the attribute node with name <strong>$qualifiedName</strong> for the current element.

<comment>Param:</comment>
  <info>string</info>  <strong>$qualifiedName</strong>  The name of the attribute.

<comment>Return:</comment>
  <info>DOMAttr|DOMNameSpaceNode|false</info>  The attribute node. Note that for XML namespace declarations
                                  (<return>xmlns</return> and <return>xmlns:*</return> attributes) an  instance of <class>DOMNameSpaceNode</class> is
                                  returned instead of a <class>DOMAttr</class>.

<comment>See Also:</comment>
   * DOMElement::hasAttribute
   * DOMElement::setAttributeNode
   * DOMElement::removeAttributeNode


id: DOMElement::getAttributeNodeNS
type: function
doc:
<comment>Description:</comment>
  Returns attribute node
    
  
  Returns the attribute node in namespace <strong>$namespace</strong>  with local name <strong>$localName</strong> for the current
  node.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$namespace</strong>  The namespace URI.
  <info>string</info>       <strong>$localName</strong>  The local name.

<comment>Return:</comment>
  <info>DOMAttr|DOMNameSpaceNode|null</info>  The attribute node. Note that for XML namespace declarations (<return>xmlns</return>
                                 and <return>xmlns:*</return> attributes) an  instance of <class>DOMNameSpaceNode</class> is
                                 returned instead of a <class>DOMAttr</class> object.

<comment>See Also:</comment>
   * DOMElement::hasAttributeNS
   * DOMElement::setAttributeNodeNS
   * DOMElement::removeAttributeNode


id: DOMElement::getElementsByTagName
type: function
doc:
<comment>Description:</comment>
  Gets elements by tagname
  
  This function returns a new instance of the class <class>DOMNodeList</class> of all descendant elements with a
  given tag <strong>$qualifiedName</strong>, in the order in which they are encountered in a preorder traversal of
  this element tree.

<comment>Param:</comment>
  <info>string</info>  <strong>$qualifiedName</strong>  The tag name. Use <return>*</return> to return all elements within  the element tree.

<comment>Return:</comment>
  <info>DOMNodeList</info>  This function returns a new instance of the class <class>DOMNodeList</class> of all matched
               elements.

<comment>See Also:</comment>
   * DOMElement::getElementsByTagNameNS


id: DOMElement::getElementsByTagNameNS
type: function
doc:
<comment>Description:</comment>
  Get elements by namespaceURI and localName
  
  This function fetch all the descendant elements with a given  <strong>$localName</strong> and <strong>$namespace</strong>.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$namespace</strong>  The namespace URI of the elements to match on. The special value <return>"*"</return>
                           matches all namespaces. Passing <info>null</info> matches the empty namespace.
  <info>string</info>       <strong>$localName</strong>  The local name of the elements to match on. The special value <return>"*"</return> matches
                           all local names.

<comment>Return:</comment>
  <info>DOMNodeList</info>  This function returns a new instance of the class <class>DOMNodeList</class> of all matched elements
               in the order in which they are encountered in a preorder traversal of this element
               tree.

<comment>See Also:</comment>
   * DOMElement::getElementsByTagName


id: DOMElement::hasAttribute
type: function
doc:
<comment>Description:</comment>
  Checks to see if attribute exists
  
  Indicates whether attribute named <strong>$qualifiedName</strong>  exists as a member of the element.

<comment>Param:</comment>
  <info>string</info>  <strong>$qualifiedName</strong>  The attribute name.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMElement::hasAttributeNS
   * DOMElement::getAttribute
   * DOMElement::setAttribute
   * DOMElement::removeAttribute


id: DOMElement::hasAttributeNS
type: function
doc:
<comment>Description:</comment>
  Checks to see if attribute exists
    
  
  Indicates whether attribute in namespace <strong>$namespace</strong>  named <strong>$localName</strong> exists as a member of the
  element.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$namespace</strong>  The namespace URI.
  <info>string</info>       <strong>$localName</strong>  The local name.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMElement::hasAttribute
   * DOMElement::getAttributeNS
   * DOMElement::setAttributeNS
   * DOMElement::removeAttributeNS


id: DOMElement::insertAdjacentElement
type: function
doc:
<comment>Description:</comment>
  Insert adjacent element
  
  Inserts an element at a relative position given by <strong>$where</strong>.

<comment>Param:</comment>
  <info>string</info>      <strong>$where</strong>    <return>beforebegin</return> - Insert before the target element.<return>afterbegin</return> - Insert as the
                        first child of the target element.<return>beforeend</return> - Insert as the last child of
                        the target element.<return>afterend</return> - Insert after the target element.
  <info>DOMElement</info>  <strong>$element</strong>  The element to insert.

<comment>Return:</comment>
  <info>DOMElement|null</info>  Return <class>DOMElement</class> or <info>null</info> on failure.

<comment>See Also:</comment>
   * DOMElement::insertAdjacentText


id: DOMElement::insertAdjacentText
type: function
doc:
<comment>Description:</comment>
  Insert adjacent text
  
  Inserts text at a relative position given by <strong>$where</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$where</strong>  <return>beforebegin</return> - Insert before the target element.<return>afterbegin</return> - Insert as the first
                  child of the target element.<return>beforeend</return> - Insert as the last child of the target
                  element.<return>afterend</return> - Insert after the target element.
  <info>string</info>  <strong>$data</strong>   The string to insert.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMElement::insertAdjacentElement


id: DOMElement::prepend
type: function
doc:
<comment>Description:</comment>
  Prepends nodes before the first child node
  
  Prepends one or many <strong>$nodes</strong> to the list of children before the first child node.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  The nodes to prepend. Strings are automatically converted to text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMParentNode::prepend
   * DOMElement::append


id: DOMElement::remove
type: function
doc:
<comment>Description:</comment>
  Removes the element
  
  Removes the element.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMElement::after
   * DOMElement::before
   * DOMElement::replaceWith
   * DOMNode::removeChild


id: DOMElement::removeAttribute
type: function
doc:
<comment>Description:</comment>
  Removes attribute
  
  Removes attribute named <strong>$qualifiedName</strong> from the element.

<comment>Param:</comment>
  <info>string</info>  <strong>$qualifiedName</strong>  The name of the attribute.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMElement::hasAttribute
   * DOMElement::getAttribute
   * DOMElement::setAttribute


id: DOMElement::removeAttributeNS
type: function
doc:
<comment>Description:</comment>
  Removes attribute
  
  Removes attribute <strong>$localName</strong> in namespace <strong>$namespace</strong> from the element.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$namespace</strong>  The namespace URI.
  <info>string</info>       <strong>$localName</strong>  The local name.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMElement::hasAttributeNS
   * DOMElement::getAttributeNS
   * DOMElement::setAttributeNS


id: DOMElement::removeAttributeNode
type: function
doc:
<comment>Description:</comment>
  Removes attribute
  
  Removes attribute <strong>$attr</strong> from the element.

<comment>Param:</comment>
  <info>DOMAttr</info>  <strong>$attr</strong>  The attribute node.

<comment>Return:</comment>
  <info>DOMAttr|false</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMElement::hasAttribute
   * DOMElement::getAttributeNode
   * DOMElement::setAttributeNode


id: DOMElement::replaceChildren
type: function
doc:
<comment>Description:</comment>
  Replace children in element
  
  Replaces the children in the element with new <strong>$nodes</strong>.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  The nodes replacing the children. Strings are automatically converted to
                          text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMParentNode::replaceChildren
   * DOMElement::replaceWith
   * DOMElement::after
   * DOMElement::before
   * DOMElement::remove


id: DOMElement::replaceWith
type: function
doc:
<comment>Description:</comment>
  Replaces the element with new nodes
  
  Replaces the element with new <strong>$nodes</strong>.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  The replacement nodes. Strings are automatically converted to text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMChildNode::replaceWith
   * DOMElement::replaceChildren
   * DOMElement::after
   * DOMElement::before
   * DOMElement::remove


id: DOMElement::setAttribute
type: function
doc:
<comment>Description:</comment>
  Adds new or modifies existing attribute
  
  Sets an attribute with name <strong>$qualifiedName</strong> to the given value. If the attribute does not exist, it
  will be created.

<comment>Param:</comment>
  <info>string</info>  <strong>$qualifiedName</strong>  The name of the attribute.
  <info>string</info>  <strong>$value</strong>          The value of the attribute.

<comment>Return:</comment>
  <info>DOMAttr|bool</info>  The created or modified <class>DOMAttr</class> or <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * DOMElement::hasAttribute
   * DOMElement::getAttribute
   * DOMElement::removeAttribute


id: DOMElement::setAttributeNS
type: function
doc:
<comment>Description:</comment>
  Adds new attribute
  
  Sets an attribute with namespace <strong>$namespace</strong> and  name <strong>$name</strong> to the given value. If the attribute
  does not exist, it will be created.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$namespace</strong>      The namespace URI.
  <info>string</info>       <strong>$qualifiedName</strong>  The qualified name of the attribute, as <return>prefix:tagname</return>.
  <info>string</info>       <strong>$value</strong>          The value of the attribute.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMElement::hasAttributeNS
   * DOMElement::getAttributeNS
   * DOMElement::removeAttributeNS


id: DOMElement::setAttributeNode
type: function
doc:
<comment>Description:</comment>
  Adds new attribute node to element
  
  Adds new attribute node <strong>$attr</strong> to element.  If an attribute with the same name already exists on
  the element, that attribute is replaced by <strong>$attr</strong>.

<comment>Param:</comment>
  <info>DOMAttr</info>  <strong>$attr</strong>  The attribute node.

<comment>Return:</comment>
  <info>DOMAttr|null|false</info>  Returns the old attribute if it has been replaced or <info>null</info> if there was no old
                      attribute. If a <info>DOM_WRONG_DOCUMENT_ERR</info> error is raised, and
                      strictErrorChecking is <info>false</info>, <info>false</info> is returned.

<comment>See Also:</comment>
   * DOMElement::hasAttribute
   * DOMElement::getAttributeNode
   * DOMElement::removeAttributeNode


id: DOMElement::setAttributeNodeNS
type: function
doc:
<comment>Description:</comment>
  Adds new attribute node to element
  
  Adds new attribute node <strong>$attr</strong> to element, keeping the namespace into account. If an attribute with
  the same name already exists on the element, that attribute is replaced by <strong>$attr</strong>.

<comment>Param:</comment>
  <info>DOMAttr</info>  <strong>$attr</strong>  The attribute node.

<comment>Return:</comment>
  <info>DOMAttr|null|false</info>  Returns the old attribute if it has been replaced or <info>null</info> if there was no old
                      attribute. If a <info>DOM_WRONG_DOCUMENT_ERR</info> error is raised, and
                      strictErrorChecking is <info>false</info>, <info>false</info> is returned.

<comment>See Also:</comment>
   * DOMElement::hasAttributeNS
   * DOMElement::getAttributeNodeNS
   * DOMElement::removeAttributeNode


id: DOMElement::setIdAttribute
type: function
doc:
<comment>Description:</comment>
  Declares the attribute specified by name to be of type ID
  
  Declares the attribute <strong>$qualifiedName</strong> to be of type ID.

<comment>Param:</comment>
  <info>string</info>  <strong>$qualifiedName</strong>  The name of the attribute.
  <info>bool</info>    <strong>$isId</strong>           Set it to <info>true</info> if you want <strong>$qualifiedName</strong> to be of type ID, <info>false</info>
                          otherwise.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMDocument::getElementById
   * DOMElement::setIdAttributeNode
   * DOMElement::setIdAttributeNS


id: DOMElement::setIdAttributeNS
type: function
doc:
<comment>Description:</comment>
  Declares the attribute specified by local name and namespace URI to be of type ID
  
  Declares the attribute specified by <strong>$qualifiedName</strong> and  <strong>$namespace</strong> to be of type ID.

<comment>Param:</comment>
  <info>string</info>  <strong>$namespace</strong>      The namespace URI of the attribute.
  <info>string</info>  <strong>$qualifiedName</strong>  The local name of the attribute, as <return>prefix:tagname</return>.
  <info>bool</info>    <strong>$isId</strong>           Set it to <info>true</info> if you want <strong>$name</strong> to be of type ID, <info>false</info> otherwise.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMDocument::getElementById
   * DOMElement::setIdAttribute
   * DOMElement::setIdAttributeNode


id: DOMElement::setIdAttributeNode
type: function
doc:
<comment>Description:</comment>
  Declares the attribute specified by node to be of type ID
  
  Declares the attribute specified by <strong>$attr</strong> to be of type ID.

<comment>Param:</comment>
  <info>DOMAttr</info>  <strong>$attr</strong>  The attribute node.
  <info>bool</info>     <strong>$isId</strong>  Set it to <info>true</info> if you want <strong>$name</strong> to be of type ID, <info>false</info> otherwise.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMDocument::getElementById
   * DOMElement::setIdAttribute
   * DOMElement::setIdAttributeNS


id: DOMElement::toggleAttribute
type: function
doc:
<comment>Description:</comment>
  Toggle attribute
  
  Toggle the attribute.

<comment>Param:</comment>
  <info>string</info>     <strong>$qualifiedName</strong>  The qualified name of the attribute.
  <info>bool|null</info>  <strong>$force</strong>          if <info>null</info>, the function will toggle the attribute.if <info>true</info>, the function
                             adds the attribute.if <info>false</info>, the function removes the attribute.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the attribute is present after finishing the call, <info>false</info> otherwise.


id: DOMEntity
type: class
doc:
<comment>Description:</comment>
  This interface represents a known entity, either parsed or unparsed, in an XML document.


id: DOMEntityReference::__construct
type: function
doc:
<comment>Description:</comment>
  Creates a new DOMEntityReference object
    
  
  Creates a new <class>DOMEntityReference</class> object.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  The name of the entity reference.

<comment>See Also:</comment>
   * DOMDocument::createEntityReference


id: DOMImplementation
type: class
doc:
<comment>Description:</comment>
  The <class>DOMImplementation</class> class provides a number of methods for performing operations that are
  independent of any  particular instance of the document object model.


id: DOMImplementation::__construct
type: function
doc:
<comment>Description:</comment>
  Creates a new DOMImplementation object
    
  
  Creates a new <class>DOMImplementation</class> object.


id: DOMImplementation::createDocument
type: function
doc:
<comment>Description:</comment>
  Creates a DOMDocument object of the specified type with its document element
    
  
  Creates a <class>DOMDocument</class> object of the specified type with its document element.

<comment>Param:</comment>
  <info>string|null</info>           <strong>$namespace</strong>      The namespace URI of the document element to create.
  <info>string</info>                <strong>$qualifiedName</strong>  The qualified name of the document element to create.
  <info>DOMDocumentType|null</info>  <strong>$doctype</strong>        The type of document to create or <info>null</info>.

<comment>Return:</comment>
  <info>DOMDocument|false</info>  A new <class>DOMDocument</class> object or <info>false</info> on error. If <strong>$namespace</strong>, <strong>$qualifiedName</strong>, and
                     <strong>$doctype</strong> are null, the returned <class>DOMDocument</class> is empty with no document element

<comment>See Also:</comment>
   * DOMDocument::__construct
   * DOMImplementation::createDocumentType


id: DOMImplementation::createDocumentType
type: function
doc:
<comment>Description:</comment>
  Creates an empty DOMDocumentType object
    
  
  Creates an empty <class>DOMDocumentType</class> object. Entity  declarations and notations are not made
  available. Entity reference  expansions and default attribute additions do not occur.

<comment>Param:</comment>
  <info>string</info>  <strong>$qualifiedName</strong>  The qualified name of the document type to create.
  <info>string</info>  <strong>$publicId</strong>       The external subset public identifier.
  <info>string</info>  <strong>$systemId</strong>       The external subset system identifier.

<comment>Return:</comment>
  <info>DOMDocumentType|false</info>  A new <class>DOMDocumentType</class> node with its  <return>ownerDocument</return> set to <info>null</info> or <info>false</info> on
                         error.

<comment>See Also:</comment>
   * DOMImplementation::createDocument


id: DOMImplementation::hasFeature
type: function
doc:
<comment>Description:</comment>
  Test if the DOM implementation implements a specific feature
    
  
  Test if the DOM implementation implements a specific  <strong>$feature</strong>.
  
  You can find a list of all features in the Conformance section of the DOM specification.

<comment>Param:</comment>
  <info>string</info>  <strong>$feature</strong>  The feature to test.
  <info>string</info>  <strong>$version</strong>  The version number of the <strong>$feature</strong> to test. In  level 2, this can be either <return>2.0</return>
                    or <return>1.0</return>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMNode::isSupported


id: DOMNamedNodeMap::count
type: function
doc:
<comment>Description:</comment>
  Get number of nodes in the map
  
  Gets the number of nodes in the map.

<comment>Return:</comment>
  <info>int</info>  Returns the number of nodes in the map, which is identical to the length property.


id: DOMNamedNodeMap::getIterator
type: function
doc:
<comment>Description:</comment>
  Retrieve an external iterator
  
  Returns an external iterator for the named node map.

<comment>Return:</comment>
  <info>Iterator</info>  An instance of an object implementing <class>Iterator</class> or <class>Traversable</class>

<comment>See Also:</comment>
   * IteratorAggregate::getIterator


id: DOMNamedNodeMap::getNamedItem
type: function
doc:
<comment>Description:</comment>
  Retrieves a node specified by name
    
  
  Retrieves a node specified by its <return>nodeName</return>.

<comment>Param:</comment>
  <info>string</info>  <strong>$qualifiedName</strong>  The <return>nodeName</return> of the node to retrieve.

<comment>Return:</comment>
  <info>DOMNode|null</info>  A node (of any type) with the specified <return>nodeName</return>, or  <info>null</info> if no node is found.

<comment>See Also:</comment>
   * DOMNamedNodeMap::getNamedItemNS


id: DOMNamedNodeMap::getNamedItemNS
type: function
doc:
<comment>Description:</comment>
  Retrieves a node specified by local name and namespace URI
    
  
  Retrieves a node specified by <strong>$localName</strong> and  <strong>$namespace</strong>.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$namespace</strong>  The namespace URI of the node to retrieve.
  <info>string</info>       <strong>$localName</strong>  The local name of the node to retrieve.

<comment>Return:</comment>
  <info>DOMNode|null</info>  A node (of any type) with the specified local name and namespace URI, or  <info>null</info> if no
                node is found.

<comment>See Also:</comment>
   * DOMNamedNodeMap::getNamedItem


id: DOMNamedNodeMap::item
type: function
doc:
<comment>Description:</comment>
  Retrieves a node specified by index
  
  Retrieves a node specified by <strong>$index</strong> within the  <class>DOMNamedNodeMap</class> object.

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>  Index into this map.

<comment>Return:</comment>
  <info>DOMNode|null</info>  The node at the <strong>$index</strong>th position in the map, or <info>null</info> if that is not a valid index
                (greater than or equal to the number of nodes  in this map).


id: DOMNode::C14N
type: function
doc:
<comment>Description:</comment>
  Canonicalize nodes to a string
  
  Canonicalize nodes to a string

<comment>Param:</comment>
  <info>bool</info>        <strong>$exclusive</strong>     Enable exclusive parsing of only the nodes matched by the provided
                             xpath or namespace prefixes.
  <info>bool</info>        <strong>$withComments</strong>  Retain comments in output.
  <info>array|null</info>  <strong>$xpath</strong>         An array of <return>xpath</return>s to filter the nodes by.
  <info>array|null</info>  <strong>$nsPrefixes</strong>    An array of namespace prefixes to filter the nodes by.

<comment>Return:</comment>
  <info>string|false</info>  Returns canonicalized nodes as a string or <info>false</info> on failure

<comment>See Also:</comment>
   * DOMNode::C14NFile


id: DOMNode::C14NFile
type: function
doc:
<comment>Description:</comment>
  Canonicalize nodes to a file
  
  Canonicalize nodes to a file.

<comment>Param:</comment>
  <info>string</info>      <strong>$uri</strong>           Path to write the output to.
  <info>bool</info>        <strong>$exclusive</strong>     Enable exclusive parsing of only the nodes matched by the provided
                             xpath or namespace prefixes.
  <info>bool</info>        <strong>$withComments</strong>  Retain comments in output.
  <info>array|null</info>  <strong>$xpath</strong>         An array of <return>xpath</return>s to filter the nodes by.
  <info>array|null</info>  <strong>$nsPrefixes</strong>    An array of namespace prefixes to filter the nodes by.

<comment>Return:</comment>
  <info>int|false</info>  Number of bytes written or <info>false</info> on failure

<comment>See Also:</comment>
   * DOMNode::C14N


id: DOMNode::appendChild
type: function
doc:
<comment>Description:</comment>
  Adds new child at the end of the children
    
  
  This function appends a child to an existing list of children or creates a new list of children.
  The child can be created with e.g.  DOMDocument::createElement, DOMDocument::createTextNode etc.
  or simply by using any other node.
  
  When using an existing node it will be moved.

<comment>Param:</comment>
  <info>DOMNode</info>  <strong>$node</strong>  The appended child.

<comment>Return:</comment>
  <info>DOMNode|false</info>  The node added or <info>false</info> on error.

<comment>See Also:</comment>
   * DOMChildNode::after
   * DOMNode::insertBefore
   * DOMNode::removeChild
   * DOMNode::replaceChild


id: DOMNode::cloneNode
type: function
doc:
<comment>Description:</comment>
  Clones a node
    
  
  Creates a copy of the node.

<comment>Param:</comment>
  <info>bool</info>  <strong>$deep</strong>  Indicates whether to copy all descendant nodes. This parameter is  defaulted to
               <info>false</info>.

<comment>Return:</comment>
  <info>DOMNode|false</info>  The cloned node.


id: DOMNode::contains
type: function
doc:
<comment>Description:</comment>
  Checks if node contains other node
  
  Checks if node contains <strong>$other</strong> node.

<comment>Param:</comment>
  <info>DOMNode|DOMNameSpaceNode|null</info>  <strong>$other</strong>  Node to be checked.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if node contains <strong>$other</strong> node, <info>false</info> otherwise.


id: DOMNode::getLineNo
type: function
doc:
<comment>Description:</comment>
  Get line number for a node
  
  Gets line number for where the node is defined.

<comment>Return:</comment>
  <info>int</info>  Always returns the line number where the node was defined in.


id: DOMNode::getNodePath
type: function
doc:
<comment>Description:</comment>
  Get an XPath for a node
  
  Gets an XPath location path for the node.

<comment>Return:</comment>
  <info>string|null</info>  Returns a <info>string</info> containing the XPath, or <info>null</info> in case of an error.

<comment>See Also:</comment>
   * <class>DOMXPath</class>


id: DOMNode::getRootNode
type: function
doc:
<comment>Description:</comment>
  Get root node
  
  Get root node.

<comment>Param:</comment>
  <info>array</info>  <strong>$options</strong>  This parameter has no effect yet.

<comment>Return:</comment>
  <info>DOMNode</info>  Returns the root node.


id: DOMNode::hasAttributes
type: function
doc:
<comment>Description:</comment>
  Checks if node has attributes
    
  
  This method checks if the node has attributes. The tested node has to be an <info>XML_ELEMENT_NODE</info>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMNode::hasChildNodes


id: DOMNode::hasChildNodes
type: function
doc:
<comment>Description:</comment>
  Checks if node has children
    
  
  This function checks if the node has children.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMNode::hasAttributes


id: DOMNode::insertBefore
type: function
doc:
<comment>Description:</comment>
  Adds a new child before a reference node
    
  
  This function inserts a new node right before the reference node. If you plan to do further
  modifications on the appended child you must use the returned node.
  
  When using an existing node it will be moved.

<comment>Param:</comment>
  <info>DOMNode</info>       <strong>$node</strong>   The new node.
  <info>DOMNode|null</info>  <strong>$child</strong>  The reference node. If not supplied, <strong>$node</strong> is appended to the children.

<comment>Return:</comment>
  <info>DOMNode|false</info>  The inserted node or <info>false</info> on error.

<comment>See Also:</comment>
   * DOMNode::appendChild


id: DOMNode::isDefaultNamespace
type: function
doc:
<comment>Description:</comment>
  Checks if the specified namespaceURI is the default namespace or not
  
  Tells whether <strong>$namespace</strong> is the default namespace.

<comment>Param:</comment>
  <info>string</info>  <strong>$namespace</strong>  The namespace URI to look for.

<comment>Return:</comment>
  <info>bool</info>  Return <info>true</info> if <strong>$namespace</strong> is the default namespace, <info>false</info> otherwise.


id: DOMNode::isEqualNode
type: function
doc:
<comment>Description:</comment>
  Checks that both nodes are equal
  
  Checks that both nodes are equal.

<comment>Param:</comment>
  <info>DOMNode|null</info>  <strong>$otherNode</strong>  The node.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if both nodes are equal, <info>false</info> otherwise.


id: DOMNode::isSameNode
type: function
doc:
<comment>Description:</comment>
  Indicates if two nodes are the same node
    
  
  This function indicates if two nodes are the same node. The comparison is not based on content

<comment>Param:</comment>
  <info>DOMNode</info>  <strong>$otherNode</strong>  The compared node.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: DOMNode::isSupported
type: function
doc:
<comment>Description:</comment>
  Checks if feature is supported for specified version
    
  
  Checks if the asked <strong>$feature</strong> is supported for the  specified <strong>$version</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$feature</strong>  The feature to test. See the example of  DOMImplementation::hasFeature for a
                    list of features.
  <info>string</info>  <strong>$version</strong>  The version number of the <strong>$feature</strong> to test.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * DOMImplementation::hasFeature


id: DOMNode::lookupNamespaceURI
type: function
doc:
<comment>Description:</comment>
  Gets the namespace URI of the node based on the prefix
    
  
  Gets the namespace URI of the node based on the  <strong>$prefix</strong>.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$prefix</strong>  The prefix to look for. If this parameter is <info>null</info>, the method will return
                        the default namespace URI, if any.

<comment>Return:</comment>
  <info>string|null</info>  Returns the associated namespace URI or <info>null</info> if none is found.

<comment>See Also:</comment>
   * DOMNode::lookupPrefix


id: DOMNode::lookupPrefix
type: function
doc:
<comment>Description:</comment>
  Gets the namespace prefix of the node based on the namespace URI
    
  
  Gets the namespace prefix of the node based on the namespace URI.

<comment>Param:</comment>
  <info>string</info>  <strong>$namespace</strong>  The namespace URI.

<comment>Return:</comment>
  <info>string|null</info>  The prefix of the namespace or <info>null</info> on error.

<comment>See Also:</comment>
   * DOMNode::lookupNamespaceUri


id: DOMNode::normalize
type: function
doc:
<comment>Description:</comment>
  Normalizes the node
    
  
  Remove empty text nodes and merge adjacent text nodes in this node and all its children.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * The DOM Specification
   * DOMDocument::normalizeDocument


id: DOMNode::removeChild
type: function
doc:
<comment>Description:</comment>
  Removes child from list of children
    
  
  This functions removes a child from a list of children.

<comment>Param:</comment>
  <info>DOMNode</info>  <strong>$child</strong>  The removed child.

<comment>Return:</comment>
  <info>DOMNode|false</info>  If the child could be removed the function returns the old child or <info>false</info> on error.

<comment>See Also:</comment>
   * DOMChildNode::remove
   * DOMNode::appendChild
   * DOMNode::replaceChild


id: DOMNode::replaceChild
type: function
doc:
<comment>Description:</comment>
  Replaces a child
    
  
  This function replaces the child <strong>$child</strong>  with the passed new node. If the <strong>$node</strong> is already a child
  it  will not be added a second time. If the replacement succeeds the  old node is returned.

<comment>Param:</comment>
  <info>DOMNode</info>  <strong>$node</strong>   The new node. It must be a member of the target document, i.e. created by one of
                   the DOMDocument-&gt;createXXX() methods or imported in the document by .
  <info>DOMNode</info>  <strong>$child</strong>  The old node.

<comment>Return:</comment>
  <info>DOMNode|false</info>  The old node or <info>false</info> if an error occur.

<comment>See Also:</comment>
   * DOMChildNode::replaceWith
   * DOMNode::appendChild
   * DOMNode::removeChild


id: DOMNodeList::count
type: function
doc:
<comment>Description:</comment>
  Get number of nodes in the list
  
  Gets the number of nodes in the list.

<comment>Return:</comment>
  <info>int</info>  Returns the number of nodes in the list, which is identical to the length property.


id: DOMNodeList::getIterator
type: function
doc:
<comment>Description:</comment>
  Retrieve an external iterator
  
  Returns an external iterator for the node list.

<comment>Return:</comment>
  <info>Iterator</info>  An instance of an object implementing <class>Iterator</class> or <class>Traversable</class>

<comment>See Also:</comment>
   * IteratorAggregate::getIterator


id: DOMNodeList::item
type: function
doc:
<comment>Description:</comment>
  Retrieves a node specified by index
    
  
  Retrieves a node specified by <strong>$index</strong> within the  <class>DOMNodeList</class> object.
  
  If you need to know the number of nodes in the collection, use  the <return>length</return> property of the
  <class>DOMNodeList</class> object.

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>  Index of the node into the collection.

<comment>Return:</comment>
  <info>DOMElement|DOMNode|DOMNameSpaceNode|null</info>  The node at the <strong>$index</strong>th position in the  <class>DOMNodeList</class>,
                                            or <info>null</info> if that is not a valid index.


id: DOMParentNode::append
type: function
doc:
<comment>Description:</comment>
  Appends nodes after the last child node
  
  Appends one or many <strong>$nodes</strong> to the list of children after the last child node.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  The nodes to append. Strings are automatically converted to text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMParentNode::prepend


id: DOMParentNode::prepend
type: function
doc:
<comment>Description:</comment>
  Prepends nodes before the first child node
  
  Prepends one or many <strong>$nodes</strong> to the list of children before the first child node.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  The nodes to prepend. Strings are automatically converted to text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMParentNode::append


id: DOMParentNode::replaceChildren
type: function
doc:
<comment>Description:</comment>
  Replace children in node
  
  Replace children in node.

<comment>Param:</comment>
  <info>DOMNode|string</info>  <strong>$nodes</strong>  The nodes replacing the children. Strings are automatically converted to
                          text nodes.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: DOMProcessingInstruction::__construct
type: function
doc:
<comment>Description:</comment>
  Creates a new DOMProcessingInstruction object
    
  
  Creates a new <class>DOMProcessingInstruction</class> object. This object is read only. It may be appended to a
  document, but  additional nodes may not be appended to this node until  the node is associated
  with a document. To create a writeable node, use  .

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>   The tag name of the processing instruction.
  <info>string</info>  <strong>$value</strong>  The value of the processing instruction.

<comment>See Also:</comment>
   * DOMDocument::createProcessingInstruction


id: DOMSTRING_SIZE_ERR
type: constant
doc:
<comment>Description:</comment>
  If the specified range of text does not fit into a  <class>DOMString</class>.


id: DOMText
type: class
doc:
<comment>Description:</comment>
  The <class>DOMText</class> class inherits from  <class>DOMCharacterData</class> and represents the textual content of a
  <class>DOMElement</class> or  <class>DOMAttr</class>.


id: DOMText::__construct
type: function
doc:
<comment>Description:</comment>
  Creates a new DOMText object
    
  
  Creates a new <class>DOMText</class> object.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The value of the text node. If not supplied an empty text node is created.

<comment>See Also:</comment>
   * DOMDocument::createTextNode


id: DOMText::isElementContentWhitespace
type: function
doc:
<comment>Description:</comment>
  Returns whether this text node contains whitespace in element content

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: DOMText::isWhitespaceInElementContent
type: function
doc:
<comment>Description:</comment>
  Indicates whether this text node contains whitespace
    
  
  Indicates whether this text node contains only whitespace or it is empty. The text node is
  determined to contain whitespace in element content during the load of the document.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if node contains zero or more whitespace characters and nothing else. Returns
        <info>false</info> otherwise.


id: DOMText::splitText
type: function
doc:
<comment>Description:</comment>
  Breaks this node into two nodes at the specified offset
    
  
  Breaks this node into two nodes at the specified <strong>$offset</strong>,  keeping both in the tree as siblings.
  
  After being split, this node will contain all the content up to the  <strong>$offset</strong>. If the original node
  had a parent node,  the new node is inserted as the next sibling of the original node.  When the
  <strong>$offset</strong> is equal to the length of this node, the new node has no data.

<comment>Param:</comment>
  <info>int</info>  <strong>$offset</strong>  The offset at which to split, starting from 0.

<comment>Return:</comment>
  <info>DOMText|false</info>  The new node of the same type, which contains all the content at and after the
                 <strong>$offset</strong>.


id: DOMXPath::__construct
type: function
doc:
<comment>Description:</comment>
  Creates a new DOMXPath object
    
  
  Creates a new <class>DOMXPath</class> object.

<comment>Param:</comment>
  <info>DOMDocument</info>  <strong>$document</strong>  The <class>DOMDocument</class> associated with the  <class>DOMXPath</class>.


id: DOMXPath::evaluate
type: function
doc:
<comment>Description:</comment>
  Evaluates the given XPath expression and returns a typed result if possible
    
  
  Executes the given XPath <strong>$expression</strong> and returns a typed result if possible.

<comment>Param:</comment>
  <info>string</info>        <strong>$expression</strong>      The XPath expression to execute.
  <info>DOMNode|null</info>  <strong>$contextNode</strong>     The optional <strong>$contextNode</strong> can be specified for doing relative XPath
                                 queries. By default, the queries are relative to  the root element.
  <info>bool</info>          <strong>$registerNodeNS</strong>  The optional <strong>$registerNodeNS</strong> can be specified to  disable automatic
                                 registration of the context node.

<comment>Return:</comment>
  <info>mixed</info>  Returns a typed result if possible or a <class>DOMNodeList</class>  containing all nodes matching the
         given XPath <strong>$expression</strong>.
         
         If the <strong>$expression</strong> is malformed or the <strong>$contextNode</strong> is invalid, DOMXPath::evaluate returns
         <info>false</info>.

<comment>See Also:</comment>
   * DOMXPath::query


id: DOMXPath::query
type: function
doc:
<comment>Description:</comment>
  Evaluates the given XPath expression 
    
  
  Executes the given XPath <strong>$expression</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$expression</strong>      The XPath expression to execute.
  <info>DOMNode|null</info>  <strong>$contextNode</strong>     The optional <strong>$contextNode</strong> can be specified for doing relative XPath
                                 queries. By default, the queries are relative to  the root element.
  <info>bool</info>          <strong>$registerNodeNS</strong>  The optional <strong>$registerNodeNS</strong> can be specified to  disable automatic
                                 registration of the context node.

<comment>Return:</comment>
  <info>mixed</info>  Returns a <class>DOMNodeList</class> containing all nodes matching the given XPath <strong>$expression</strong>. Any
         expression which does not return nodes will return an empty <class>DOMNodeList</class>.
         
         If the <strong>$expression</strong> is malformed or the <strong>$contextNode</strong> is invalid, DOMXPath::query returns
         <info>false</info>.

<comment>See Also:</comment>
   * DOMXPath::evaluate


id: DOMXPath::registerNamespace
type: function
doc:
<comment>Description:</comment>
  Registers the namespace with the DOMXPath object
    
  
  Registers the <strong>$namespace</strong> and  <strong>$prefix</strong> with the DOMXPath object.

<comment>Param:</comment>
  <info>string</info>  <strong>$prefix</strong>     The prefix.
  <info>string</info>  <strong>$namespace</strong>  The URI of the namespace.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: DOMXPath::registerPhpFunctions
type: function
doc:
<comment>Description:</comment>
  Register PHP functions as XPath functions
  
  This method enables the ability to use PHP functions within XPath expressions.

<comment>Param:</comment>
  <info>string|array|null</info>  <strong>$restrict</strong>  Use this parameter to only allow certain functions to be called from
                                XPath.
                                
                                This parameter can be either a <info>string</info> (a function name) or  an <info>array</info>
                                of function names.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DOMXPath::registerNamespace
   * DOMXPath::query
   * DOMXPath::evaluate


id: DOM_INUSE_ATTRIBUTE_ERR
type: constant
doc:
<comment>Description:</comment>
  If an attempt is made to add an attribute that is already in use elsewhere.


id: DOM_INVALID_ACCESS_ERR
type: constant
doc:
<comment>Description:</comment>
  If a parameter or an operation is not supported by the underlying object.


id: DOM_INVALID_CHARACTER_ERR
type: constant
doc:
<comment>Description:</comment>
  If an invalid or illegal character is specified, such as in a name.


id: DOM_INVALID_MODIFICATION_ERR
type: constant
doc:
<comment>Description:</comment>
  If an attempt is made to modify the type of the underlying object.


id: DOM_INVALID_STATE_ERR
type: constant
doc:
<comment>Description:</comment>
  If an attempt is made to use an object that is not, or is no longer, usable.


id: DOM_NAMESPACE_ERR
type: constant
doc:
<comment>Description:</comment>
  If an attempt is made to create or change an object in a way which is  incorrect with regard to
  namespaces.


id: DOM_NOT_FOUND_ERR
type: constant
doc:
<comment>Description:</comment>
  If an attempt is made to reference a node in a context where it does not exist.


id: DOM_NOT_SUPPORTED_ERR
type: constant
doc:
<comment>Description:</comment>
  If the implementation does not support the requested type of object or operation.


id: DOM_NO_MODIFICATION_ALLOWED_ERR
type: constant
doc:
<comment>Description:</comment>
  If an attempt is made to modify an object where modifications are not allowed.


id: DOM_PHP_ERR
type: constant
doc:
<comment>Description:</comment>
  Error code not part of the DOM specification. Meant for PHP errors.


id: DOM_VALIDATION_ERR
type: constant
doc:
<comment>Description:</comment>
  If a call to a method such as insertBefore or removeChild would make the Node invalid with respect
  to "partial validity", this exception would be raised and  the operation would not be done.


id: DOM_WRONG_DOCUMENT_ERR
type: constant
doc:
<comment>Description:</comment>
  If a node is used in a different document than the one that created it.


id: DatabaseObject::existsInDatabase
type: function
doc:
<comment>Description:</comment>
  Check if object exists in database
  
  Verifies if the database object refers to an object that exists in the database.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if object exists in the database, else <info>false</info> if it does not.


id: DatabaseObject::getName
type: function
doc:
<comment>Description:</comment>
  Get object name
  
  Fetch name of this database object.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>string</info>  The name of this database object.


id: DatabaseObject::getSession
type: function
doc:
<comment>Description:</comment>
  Get session name
  
  Fetch session associated to the database object.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>mysql_xdevapi\Session</info>  The Session object.


id: DateInterval
type: class
doc:
<comment>Description:</comment>
  Represents a date interval.
  
  A date interval stores either a fixed amount of time (in years, months, days, hours etc) or a
  relative time string in the format that <class>DateTimeImmutable</class>'s and <class>DateTime</class>'s constructors support.
  
  More specifically, the information in an object of the <class>DateInterval</class> class is an instruction to get
  from one date/time to another date/time. This process is not always reversible.
  
  A common way to create a <class>DateInterval</class> object is by calculating the difference between two
  date/time objects through DateTimeInterface::diff.
  
  Since there is no well defined way to compare date intervals, <class>DateInterval</class> instances are
  incomparable.


id: DateInterval::__construct
type: function
doc:
<comment>Description:</comment>
  Creates a new DateInterval object
  
  Creates a new DateInterval object.

<comment>Param:</comment>
  <info>string</info>  <strong>$duration</strong>  An interval specification.
                     
                     The format starts with the letter <return>P</return>, for period. Each duration period is
                     represented by an integer value followed by a period designator. If the
                     duration contains time elements, that portion of the specification is preceded
                     by the letter <return>T</return>.
                     
                     <strong>$duration</strong> Period Designators Period DesignatorDescription<return>Y</return>years<return>M</return>months<return>D</return>days<return>W</return>
                     weeks. Converted into days. Prior to PHP 8.0.0, can not be combined with <return>D</return>.
                     <return>H</return>hours<return>M</return>minutes<return>S</return>seconds
                     
                     Here are some simple examples. Two days is <return>P2D</return>. Two seconds is <return>PT2S</return>. Six years
                     and five minutes is <return>P6YT5M</return>.
                     
                     The unit types must be entered from the largest scale unit on the left to the
                     smallest scale unit on the right. So years before months, months before days,
                     days before minutes, etc. Thus one year and four days must be represented as
                     <return>P1Y4D</return>, not <return>P4D1Y</return>.
                     
                     The specification can also be represented as a date time. A sample of one year
                     and four days would be <return>P0001-00-04T00:00:00</return>. But the values in this format can
                     not exceed a given period's roll-over-point (e.g. <return>25</return> hours is invalid).
                     
                     These formats are based on the ISO 8601 duration specification.

<comment>See Also:</comment>
   * <strong>DateInterval::format()</strong>
   * <strong>DateTime::add()</strong>
   * <strong>DateTime::sub()</strong>
   * <strong>DateTime::diff()</strong>


id: DateInterval::createFromDateString
type: function
doc:
<comment>Description:</comment>
  Sets up a DateInterval from the relative parts of the string
  
  Object-oriented style
  
  Procedural style
  
  Uses the date/time parsers as used in the <class>DateTimeImmutable</class> constructor to create a <class>DateInterval</class>
  from the relative parts of the parsed string.

<comment>Param:</comment>
  <info>string</info>  <strong>$datetime</strong>  A date with relative parts. Specifically, the relative formats supported by the
                     parser used for <class>DateTimeImmutable</class>, <class>DateTime</class>, and <strong>strtotime()</strong> will be used to
                     construct the DateInterval.
                     
                     To use an ISO-8601 format string like <return>P7D</return>, you must use the constructor.

<comment>Return:</comment>
  <info>DateInterval|false</info>  Returns a new <class>DateInterval</class> instance on success,  or <info>false</info> on failure.


id: DateInterval::format
type: function
doc:
<comment>Description:</comment>
  Formats the interval
  
  Formats the interval.

<comment>Param:</comment>
  <info>string</info>  <strong>$format</strong>   The following characters are recognized in the <strong>$format</strong> parameter string. Each
                   format character must be prefixed by a percent sign (<return>%</return>). <strong>$format</strong>
                   characterDescriptionExample values<return>%</return>Literal <return>%</return><return>%</return><return>Y</return>Years, numeric, at least 2 digits
                   with leading 0<return>01</return>, <return>03</return><return>y</return>Years, numeric<return>1</return>, <return>3</return><return>M</return>Months, numeric, at least 2 digits with
                   leading 0<return>01</return>, <return>03</return>, <return>12</return><return>m</return>Months, numeric<return>1</return>, <return>3</return>, <return>12</return><return>D</return>Days, numeric, at least 2 digits with
                   leading 0<return>01</return>, <return>03</return>, <return>31</return><return>d</return>Days, numeric<return>1</return>, <return>3</return>, <return>31</return><return>a</return>Total number of days as a result of a
                   DateTime::diff or <return>(unknown)</return> otherwise<return>4</return>, <return>18</return>, <return>8123</return><return>H</return>Hours, numeric, at least 2
                   digits with leading 0<return>01</return>, <return>03</return>, <return>23</return><return>h</return>Hours, numeric<return>1</return>, <return>3</return>, <return>23</return><return>I</return>Minutes, numeric, at least
                   2 digits with leading 0<return>01</return>, <return>03</return>, <return>59</return><return>i</return>Minutes, numeric<return>1</return>, <return>3</return>, <return>59</return><return>S</return>Seconds, numeric, at
                   least 2 digits with leading 0<return>01</return>, <return>03</return>, <return>57</return><return>s</return>Seconds, numeric<return>1</return>, <return>3</return>, <return>57</return><return>F</return>Microseconds,
                   numeric, at least 6 digits with leading 0<return>007701</return>, <return>052738</return>, <return>428291</return><return>f</return>Microseconds,
                   numeric<return>7701</return>, <return>52738</return>, <return>428291</return><return>R</return>Sign "<return>-</return>" when negative, "<return>+</return>" when positive<return>-</return>, <return>+</return><return>r</return>Sign "<return>-</return>"
                   when negative, empty when positive<return>-</return>,

<comment>Return:</comment>
  <info>string</info>  Returns the formatted interval.

<comment>See Also:</comment>
   * DateTime::diff


id: DatePeriod
type: class
doc:
<comment>Description:</comment>
  Represents a date period.
  
  A date period allows iteration over a set of dates and times, recurring at regular intervals, over
  a given period.


id: DatePeriod::EXCLUDE_START_DATE
type: constant
doc:
<comment>Description:</comment>
  Exclude start date, used in <strong>DatePeriod::__construct()</strong>.


id: DatePeriod::INCLUDE_END_DATE
type: constant
doc:
<comment>Description:</comment>
  Include end date, used in <strong>DatePeriod::__construct()</strong>.


id: DatePeriod::__construct
type: function
doc:
<comment>Description:</comment>
  Creates a new DatePeriod object
  
  This variant of the constructor has been deprecated, use DatePeriod::createFromISO8601String
  instead.
  
  Creates a new DatePeriod object.
  
  <class>DatePeriod</class> objects can be used as an iterator to generate a number of <class>DateTimeImmutable</class> or
  <class>DateTime</class> object from a <strong>$start</strong> date, a <strong>$interval</strong>, and an <strong>$end</strong> date or the number of <strong>$recurrences</strong>.
  
  The class of returned objects is equivalent to the <class>DateTimeImmutable</class> or <class>DateTime</class> ancestor class of
  the <strong>$start</strong> object.

<comment>Param:</comment>
  <info>DateTimeInterface</info>  <strong>$start</strong>        The start date of the period. Included by default in the result
                                   set.
  <info>DateInterval</info>       <strong>$interval</strong>     The interval between recurrences within the period.
  <info>int</info>                <strong>$recurrences</strong>  The number of recurrences. The number of returned results is one
                                   higher than this, as the start date is included in the result set
                                   by default. Must be greater than <return>0</return>.
  <info>DateTimeInterface</info>  <strong>$end</strong>          The end date of the period. Excluded by default from the result
                                   set.
  <info>string</info>             <strong>$isostr</strong>       A subset of the ISO 8601 repeating interval specification.
                                   
                                   Examples of some ISO 8601 interval specification features that
                                   PHP does not support are:
                                   
                                   zero occurrences (<return>R0/</return>)
                                   
                                   time offsets other than UTC (<return>Z</return>), such as <return>+02:00</return>.
  <info>int</info>                <strong>$options</strong>      A bit field which can be used to control certain behaviour with
                                   start- and end- dates.
                                   
                                   With <info>DatePeriod::EXCLUDE_START_DATE</info> you exclude the start date
                                   from the set of recurring dates within the period.
                                   
                                   With <info>DatePeriod::INCLUDE_END_DATE</info> you include the end date in the
                                   set of recurring dates within the period.


id: DatePeriod::createFromISO8601String
type: function
doc:
<comment>Description:</comment>
  Creates a new DatePeriod object from an ISO8601 string
  
  Creates a new DatePeriod object from an ISO8601 string, as specified with <strong>$specification</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$specification</strong>  A subset of the ISO 8601 repeating interval specification.
                          
                          An example of an accepted ISO 8601 interval specifications is
                          <return>R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M</return>, which specifies:
                          
                          5 iterations (<return>R5/</return>)
                          
                          Starting at <return>2008-03-01T13:00:00Z</return>.
                          
                          Each iteration is an 1 year, 2 months, 10 days, 2 hours, and 30 minute
                          interval (<return>/P1Y2M10DT2H30M</return>).
                          
                          Examples of some ISO 8601 interval specification features that PHP does
                          not support are:
                          
                          zero occurrences (<return>R0/</return>)
                          
                          time offsets other than UTC (<return>Z</return>), such as <return>+02:00</return>.
  <info>int</info>     <strong>$options</strong>        A bit field which can be used to control certain behaviour with start- and
                          end- dates.
                          
                          With <info>DatePeriod::EXCLUDE_START_DATE</info> you exclude the start date from the
                          set of recurring dates within the period.
                          
                          With <info>DatePeriod::INCLUDE_END_DATE</info> you include the end date in the set of
                          recurring dates within the period.

<comment>Return:</comment>
  <info>static</info>  Creates a new DatePeriod object.
          
          <class>DatePeriod</class> objects created with this method can be used as an iterator to generate a
          number of <class>DateTimeImmutable</class> objects.


id: DatePeriod::getDateInterval
type: function
doc:
<comment>Description:</comment>
  Gets the interval
    
  
  Object-oriented style
  
  Gets a <class>DateInterval</class> <info>object</info> representing the interval used for the period.

<comment>Return:</comment>
  <info>DateInterval</info>  Returns a <class>DateInterval</class> <info>object</info>

<comment>See Also:</comment>
   * DatePeriod::getStartDate
   * DatePeriod::getEndDate


id: DatePeriod::getEndDate
type: function
doc:
<comment>Description:</comment>
  Gets the end date
    
  
  Object-oriented style
  
  Gets the end date of the period.

<comment>Return:</comment>
  <info>DateTimeInterface|null</info>  Returns <info>null</info> if the <class>DatePeriod</class> does not have an end date. For example,
                          when initialized with the <strong>$recurrences</strong> parameter, or the <strong>$isostr</strong> parameter
                          without an end date.
                          
                          Returns a <class>DateTimeImmutable</class> <info>object</info> when the <class>DatePeriod</class> is initialized with
                          a <class>DateTimeImmutable</class> <info>object</info> as the <strong>$end</strong> parameter.
                          
                          Returns a cloned <class>DateTime</class> <info>object</info> representing the end date otherwise.

<comment>See Also:</comment>
   * DatePeriod::getStartDate
   * DatePeriod::getDateInterval


id: DatePeriod::getRecurrences
type: function
doc:
<comment>Description:</comment>
  Gets the number of recurrences
  
  Object-oriented style
  
  Get the number of recurrences.

<comment>Return:</comment>
  <info>int|null</info>  The number of recurrences as set by explicitly passing the <return>$recurrences</return> to the
            contructor of the <class>DatePeriod</class> class, or <info>null</info> otherwise.

<comment>See Also:</comment>
   * DatePeriod::$recurrences


id: DatePeriod::getStartDate
type: function
doc:
<comment>Description:</comment>
  Gets the start date
    
  
  Object-oriented style
  
  Gets the start date of the period.

<comment>Return:</comment>
  <info>DateTimeInterface</info>  Returns a <class>DateTimeImmutable</class> <info>object</info> when the <class>DatePeriod</class> is initialized with a
                     <class>DateTimeImmutable</class> <info>object</info> as the <strong>$start</strong> parameter.
                     
                     Returns a <class>DateTime</class> <info>object</info> otherwise.

<comment>See Also:</comment>
   * DatePeriod::getEndDate
   * DatePeriod::getDateInterval


id: DateTime
type: class
doc:
<comment>Description:</comment>
  Representation of date and time.
  
  This class behaves the same as <class>DateTimeImmutable</class>, except objects are modified itself when
  modification methods such as <strong>DateTime::modify()</strong> are called.
  
  Calling methods on objects of the class <class>DateTime</class> will change the information encapsulated in these
  objects, if you want to prevent that you will have to use <return>clone</return> operator to create a new object.
  Use <class>DateTimeImmutable</class> instead of <class>DateTime</class> to obtain this recommended behaviour by default.


id: DateTime::__construct
type: function
doc:
<comment>Description:</comment>
  Returns new DateTime object
  
  Like DateTimeImmutable::__construct but works with <class>DateTime</class>. Consider using the <class>DateTimeImmutable</class>
  and features instead.
  
  Returns a new DateTime object.

<comment>Param:</comment>
  <info>string</info>             <strong>$datetime</strong>  A date/time string. Valid formats are explained in Date and Time
                                Formats.
                                
                                Enter <return>"now"</return> here to obtain the current time when using the <strong>$timezone</strong>
                                parameter.
  <info>DateTimeZone|null</info>  <strong>$timezone</strong>  A <class>DateTimeZone</class> object representing the timezone of <strong>$datetime</strong>.
                                
                                If <strong>$timezone</strong> is omitted or <info>null</info>, the current timezone will be used.
                                
                                The <strong>$timezone</strong> parameter and the current timezone are ignored when
                                the <strong>$datetime</strong> parameter either is a UNIX timestamp (e.g. <return>@946684800</return>)
                                or specifies a timezone (e.g. <return>2010-01-28T15:00:00+02:00</return>).

<comment>Return:</comment>
  <info>unknown</info>  Returns a new DateTime instance.

<comment>See Also:</comment>
   * DateTimeImmutable::__construct


id: DateTime::__set_state
type: function
doc:
<comment>Description:</comment>
  The __set_state handler
  
  The __set_state() handler.
  
  Like DateTimeImmutable::__set_state but works with <class>DateTime</class>.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  Initialization array.

<comment>Return:</comment>
  <info>DateTime</info>  Returns a new instance of a DateTime object.


id: DateTime::__wakeup
type: function
doc:
<comment>Description:</comment>
  The __wakeup handler
  
  The __wakeup() handler.

<comment>Return:</comment>
  <info>void</info>  Initializes a DateTime object.


id: DateTime::add
type: function
doc:
<comment>Description:</comment>
  Modifies a DateTime object, with added amount of days, months, years, hours, minutes and seconds
    
  
  Object-oriented style
  
  Procedural style
  
  Adds the specified <class>DateInterval</class> object to the specified <class>DateTime</class> object.
  
  Like DateTimeImmutable::add but works with <class>DateTime</class>.
  
  The procedural version takes the <class>DateTime</class> object as its first argument.

<comment>Param:</comment>
  <info>DateTime</info>      <strong>$object</strong>    Procedural style only: A <class>DateTime</class> object
                           returned by <strong>date_create()</strong>.
                           The function modifies this object.
  <info>DateInterval</info>  <strong>$interval</strong>  A <class>DateInterval</class> object

<comment>Return:</comment>
  <info>DateTime</info>  Returns the modified <class>DateTime</class> object for method chaining.

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::add()</strong>


id: DateTime::createFromFormat
type: function
doc:
<comment>Description:</comment>
  Parses a time string according to a specified format
  
  Object-oriented style
  
  Procedural style
  
  Returns a new DateTime object representing the date and time specified by the <strong>$datetime</strong> string,
  which was formatted in the given <strong>$format</strong>.
  
  Like DateTimeImmutable::createFromFormat and <strong>date_create_immutable_from_format()</strong>, respectively,
  but creates a <class>DateTime</class> object.
  
  This method, including parameters, examples, and considerations are documented on the
  DateTimeImmutable::createFromFormat page.

<comment>Return:</comment>
  <info>DateTime|false</info>  Returns a new DateTime instance or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::createFromFormat()</strong>


id: DateTime::createFromImmutable
type: function
doc:
<comment>Description:</comment>
  Returns new DateTime instance encapsulating the given DateTimeImmutable object

<comment>Param:</comment>
  <info>DateTimeImmutable</info>  <strong>$object</strong>  The immutable <class>DateTimeImmutable</class> object that needs to be converted to a
                              mutable version. This object is not modified, but instead a new
                              <class>DateTime</class> instance is created containing the same date, time, and
                              timezone information.

<comment>Return:</comment>
  <info>static</info>  Returns a new <class>DateTime</class> instance.


id: DateTime::createFromInterface
type: function
doc:
<comment>Description:</comment>
  Returns new DateTime object encapsulating the given DateTimeInterface object

<comment>Param:</comment>
  <info>DateTimeInterface</info>  <strong>$object</strong>  The <class>DateTimeInterface</class> object that needs to be converted to a mutable
                              version. This object is not modified, but instead a new <class>DateTime</class>
                              object is created containing the same date, time, and timezone
                              information.

<comment>Return:</comment>
  <info>DateTime</info>  Returns a new <class>DateTime</class> instance.


id: DateTime::diff
type: function
doc:
<comment>Description:</comment>
  Returns the difference between two DateTime objects
  
  Object-oriented style
  
  Procedural style
  
  Returns the difference between two <class>DateTimeInterface</class> objects.

<comment>Param:</comment>
  <info></info>      <strong>$datetime</strong>  The date to compare to.
  <info>bool</info>  <strong>$absolute</strong>  Should the interval be forced to be positive?

<comment>Return:</comment>
  <info>DateInterval</info>  The <class>DateInterval</class> object represents the difference between the two dates.
                
                The return value more specifically represents the clock-time interval to apply to
                the original object (<strong>$this</strong> or <strong>$originObject</strong>) to arrive at the <strong>$targetObject</strong>. This
                process is not always reversible.
                
                The method is aware of DST changeovers, and hence can return an interval of <return>24 hours
                and 30 minutes</return>, as per one of the examples. If you want to calculate with absolute
                time, you need to convert both the <strong>$this</strong>/<strong>$baseObject</strong>, and <strong>$targetObject</strong> to UTC
                first.

<comment>See Also:</comment>
   * <strong>DateInterval::format()</strong>
   * <strong>DateTime::add()</strong>
   * <strong>DateTime::sub()</strong>


id: DateTime::format
type: function
doc:
<comment>Description:</comment>
  Returns date formatted according to given format
  
  Object-oriented style
  
  Procedural style
  
  Returns date formatted according to given format.

<comment>Param:</comment>
  <info>DateTimeInterface</info>  <strong>$object</strong>  Procedural style only: A <class>DateTime</class> object
                              returned by <strong>date_create()</strong>
  <info>string</info>             <strong>$format</strong>  The format of the outputted date <info>string</info>. See the formatting options
                              below. There are also several predefined date constants that may be
                              used instead, so for example <info>DATE_RSS</info> contains the format string <return>'D, d
                              M Y H:i:s'</return>.
                              
                              The following characters are recognized in the <strong>$format</strong> parameter
                              string<strong>$format</strong> characterDescriptionExample returned valuesDay------<return>d</return>Day
                              of the month, 2 digits with leading zeros<return>01</return> to <return>31</return><return>D</return>A textual
                              representation of a day, three letters<return>Mon</return> through <return>Sun</return><return>j</return>Day of the month
                              without leading zeros<return>1</return> to <return>31</return><return>l</return> (lowercase 'L')A full textual
                              representation of the day of the week<return>Sunday</return> through <return>Saturday</return><return>N</return>ISO 8601
                              numeric representation of the day of the week<return>1</return> (for Monday) through <return>7</return>
                              (for Sunday)<return>S</return>English ordinal suffix for the day of the month, 2
                              characters<return>st</return>, <return>nd</return>, <return>rd</return> or <return>th</return>.  Works well with <return>j</return> <return>w</return>Numeric representation
                              of the day of the week<return>0</return> (for Sunday) through <return>6</return> (for Saturday)<return>z</return>The day
                              of the year (starting from 0)<return>0</return> through <return>365</return>Week------<return>W</return>ISO 8601 week
                              number of year, weeks starting on MondayExample: <return>42</return> (the 42nd week in
                              the year)Month------<return>F</return>A full textual representation of a month, such as
                              January or March<return>January</return> through <return>December</return><return>m</return>Numeric representation of a
                              month, with leading zeros<return>01</return> through <return>12</return><return>M</return>A short textual representation
                              of a month, three letters<return>Jan</return> through <return>Dec</return><return>n</return>Numeric representation of a
                              month, without leading zeros<return>1</return> through <return>12</return><return>t</return>Number of days in the given
                              month<return>28</return> through <return>31</return>Year------<return>L</return>Whether it's a leap year<return>1</return> if it is a leap
                              year, <return>0</return> otherwise.<return>o</return>ISO 8601 week-numbering year. This has the same
                              value as <return>Y</return>, except that if the ISO week number (<return>W</return>) belongs to the
                              previous or next year, that year is used instead.Examples: <return>1999</return> or
                              <return>2003</return><return>X</return>An expanded full numeric representation of a year, at least 4
                              digits, with <return>-</return> for years BCE, and <return>+</return> for years CE.Examples: <return>-0055</return>,
                              <return>+0787</return>, <return>+1999</return>, <return>+10191</return><return>x</return>An expanded full numeric representation if
                              required, or a standard full numeral representation if possible (like
                              <return>Y</return>). At least four digits. Years BCE are prefixed with a <return>-</return>. Years
                              beyond (and including) <return>10000</return> are prefixed by a <return>+</return>.Examples: <return>-0055</return>,
                              <return>0787</return>, <return>1999</return>, <return>+10191</return><return>Y</return>A full numeric representation of a year, at least 4
                              digits, with <return>-</return> for years BCE.Examples: <return>-0055</return>, <return>0787</return>, <return>1999</return>, <return>2003</return>,
                              <return>10191</return><return>y</return>A two digit representation of a yearExamples: <return>99</return> or
                              <return>03</return>Time------<return>a</return>Lowercase Ante meridiem and Post meridiem<return>am</return> or
                              <return>pm</return><return>A</return>Uppercase Ante meridiem and Post meridiem<return>AM</return> or <return>PM</return><return>B</return>Swatch Internet
                              time<return>000</return> through <return>999</return><return>g</return>12-hour format of an hour without leading zeros<return>1</return>
                              through <return>12</return><return>G</return>24-hour format of an hour without leading zeros<return>0</return> through
                              <return>23</return><return>h</return>12-hour format of an hour with leading zeros<return>01</return> through <return>12</return><return>H</return>24-hour
                              format of an hour with leading zeros<return>00</return> through <return>23</return><return>i</return>Minutes with leading
                              zeros<return>00</return> to <return>59</return><return>s</return>Seconds with leading zeros<return>00</return> through <return>59</return><return>u</return> Microseconds.
                              Note that <strong>date()</strong> will always generate <return>000000</return> since it takes an <info>int</info>
                              parameter, whereas DateTime::format does support microseconds if
                              <class>DateTime</class> was created with microseconds. Example: <return>654321</return><return>v</return> Milliseconds.
                              Same note applies as for <return>u</return>. Example: <return>654</return>Timezone------<return>e</return>Timezone
                              identifierExamples: <return>UTC</return>, <return>GMT</return>, <return>Atlantic/Azores</return><return>I</return> (capital i)Whether or
                              not the date is in daylight saving time<return>1</return> if Daylight Saving Time, <return>0</return>
                              otherwise.<return>O</return>Difference to Greenwich time (GMT) without colon between
                              hours and minutesExample: <return>+0200</return><return>P</return>Difference to Greenwich time (GMT)
                              with colon between hours and minutesExample: <return>+02:00</return><return>p</return> The same as <return>P</return>,
                              but returns <return>Z</return> instead of <return>+00:00</return> (available as of PHP 8.0.0) Examples:
                              <return>Z</return> or <return>+02:00</return><return>T</return>Timezone abbreviation, if known; otherwise the GMT
                              offset.Examples: <return>EST</return>, <return>MDT</return>, <return>+05</return><return>Z</return>Timezone offset in seconds. The offset
                              for timezones west of UTC is always negative, and for those east of
                              UTC is always positive.<return>-43200</return> through <return>50400</return>Full Date/Time------<return>c</return>ISO
                              8601 date2004-02-12T15:19:21+00:00<return>r</return>RFC 2822/RFC 5322 formatted
                              dateExample: <return>Thu, 21 Dec 2000 16:01:07 +0200</return><return>U</return>Seconds since the Unix
                              Epoch (January 1 1970 00:00:00 GMT)See also <strong>time()</strong>
                              
                              Unrecognized characters in the format string will be printed as-is.
                              The <return>Z</return> format will always return <return>0</return> when using <strong>gmdate()</strong>.
                              
                              Since this function only accepts <info>int</info> timestamps the <return>u</return> format character
                              is only useful when using the <strong>date_format()</strong> function with user based
                              timestamps created with <strong>date_create()</strong>.

<comment>Return:</comment>
  <info>string</info>  Returns the formatted date string on success.

<comment>See Also:</comment>
   * IntlDateFormatter::format


id: DateTime::getLastErrors
type: function
doc:
<comment>Description:</comment>
  Alias of DateTimeImmutable::getLastErrors
  
  This function is an alias of:  DateTimeImmutable::getLastErrors


id: DateTime::getOffset
type: function
doc:
<comment>Description:</comment>
  Returns the timezone offset
  
  Object-oriented style
  
  Procedural style
  
  Returns the timezone offset.

<comment>Param:</comment>
  <info>DateTimeInterface</info>  <strong>$object</strong>  Procedural style only: A <class>DateTime</class> object
                              returned by <strong>date_create()</strong>

<comment>Return:</comment>
  <info>int</info>  Returns the timezone offset in seconds from UTC on success.


id: DateTime::getTimestamp
type: function
doc:
<comment>Description:</comment>
  Gets the Unix timestamp
  
  Object-oriented style
  
  Procedural style
  
  Gets the Unix timestamp.

<comment>Return:</comment>
  <info>int</info>  Returns the Unix timestamp representing the date.

<comment>See Also:</comment>
   * <strong>DateTime::setTimestamp()</strong>
   * <strong>DateTimeImmutable::setTimestamp()</strong>
   * <strong>DateTimeInterface::format()</strong>


id: DateTime::getTimezone
type: function
doc:
<comment>Description:</comment>
  Return time zone relative to given DateTime
  
  Object-oriented style
  
  Procedural style
  
  Return time zone relative to given DateTime.

<comment>Param:</comment>
  <info>DateTimeInterface</info>  <strong>$object</strong>  Procedural style only: A <class>DateTime</class> object
                              returned by <strong>date_create()</strong>

<comment>Return:</comment>
  <info>DateTimeZone|false</info>  Returns a <class>DateTimeZone</class> object on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>DateTime::setTimezone()</strong>


id: DateTime::modify
type: function
doc:
<comment>Description:</comment>
  Alters the timestamp
  
  Object-oriented style
  
  Procedural style
  
  Alter the timestamp of a DateTime object by incrementing or decrementing in a format accepted by
  <strong>DateTimeImmutable::__construct()</strong>.

<comment>Param:</comment>
  <info>DateTime</info>  <strong>$object</strong>    Procedural style only: A <class>DateTime</class> object
                       returned by <strong>date_create()</strong>.
                       The function modifies this object.
  <info>string</info>    <strong>$modifier</strong>  A date/time string. Valid formats are explained in Date and Time Formats.

<comment>Return:</comment>
  <info>DateTime|false</info>  Returns the modified <class>DateTime</class> object for method chaining or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>strtotime()</strong>
   * <strong>DateTimeImmutable::modify()</strong>
   * <strong>DateTime::add()</strong>
   * <strong>DateTime::sub()</strong>
   * <strong>DateTime::setDate()</strong>
   * <strong>DateTime::setISODate()</strong>
   * <strong>DateTime::setTime()</strong>
   * <strong>DateTime::setTimestamp()</strong>


id: DateTime::setDate
type: function
doc:
<comment>Description:</comment>
  Sets the date
  
  Object-oriented style
  
  Procedural style
  
  Resets the current date of the DateTime object to a different date.
  
  Like DateTimeImmutable::setDate but works with <class>DateTime</class>, and changes the existing object.
  
  The procedural version takes the <class>DateTime</class> object as its first argument.

<comment>Param:</comment>
  <info>DateTime</info>  <strong>$object</strong>  Procedural style only: A <class>DateTime</class> object
                     returned by <strong>date_create()</strong>.
                     The function modifies this object.
  <info>int</info>       <strong>$year</strong>    Year of the date.
  <info>int</info>       <strong>$month</strong>   Month of the date.
  <info>int</info>       <strong>$day</strong>     Day of the date.

<comment>Return:</comment>
  <info>DateTime</info>  Returns the modified <class>DateTime</class> object for method chaining.

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::setDate()</strong>


id: DateTime::setISODate
type: function
doc:
<comment>Description:</comment>
  Sets the ISO date
  
  Object-oriented style
  
  Procedural style
  
  Set a date according to the ISO 8601 standard - using weeks and day offsets rather than specific
  dates.
  
  Like DateTimeImmutable::setISODate but works with <class>DateTime</class>.
  
  The procedural version takes the <class>DateTime</class> object as its first argument.

<comment>Param:</comment>
  <info>DateTime</info>  <strong>$object</strong>     Procedural style only: A <class>DateTime</class> object
                        returned by <strong>date_create()</strong>.
                        The function modifies this object.
  <info>int</info>       <strong>$year</strong>       Year of the date.
  <info>int</info>       <strong>$week</strong>       Week of the date.
  <info>int</info>       <strong>$dayOfWeek</strong>  Offset from the first day of the week.

<comment>Return:</comment>
  <info>DateTime</info>  Returns the modified <class>DateTime</class> object for method chaining.

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::setISODate()</strong>


id: DateTime::setTime
type: function
doc:
<comment>Description:</comment>
  Sets the time
  
  Object-oriented style
  
  Procedural style
  
  Resets the current time of the DateTime object to a different time.
  
  Like DateTimeImmutable::setTime but works with <class>DateTime</class>.
  
  The procedural version takes the <class>DateTime</class> object as its first argument.

<comment>Param:</comment>
  <info>DateTime</info>  <strong>$object</strong>       Procedural style only: A <class>DateTime</class> object
                          returned by <strong>date_create()</strong>.
                          The function modifies this object.
  <info>int</info>       <strong>$hour</strong>         Hour of the time.
  <info>int</info>       <strong>$minute</strong>       Minute of the time.
  <info>int</info>       <strong>$second</strong>       Second of the time.
  <info>int</info>       <strong>$microsecond</strong>  Microsecond of the time.

<comment>Return:</comment>
  <info>DateTime</info>  Returns the modified <class>DateTime</class> object for method chaining.

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::setTime()</strong>


id: DateTime::setTimestamp
type: function
doc:
<comment>Description:</comment>
  Sets the date and time based on an Unix timestamp
  
  Object-oriented style
  
  Procedural style
  
  Sets the date and time based on an Unix timestamp.
  
  Like DateTimeImmutable::setTimestamp but works with <class>DateTime</class>.
  
  The procedural version takes the <class>DateTime</class> object as its first argument.

<comment>Param:</comment>
  <info>DateTime</info>  <strong>$object</strong>     Procedural style only: A <class>DateTime</class> object
                        returned by <strong>date_create()</strong>.
                        The function modifies this object.
  <info>int</info>       <strong>$timestamp</strong>  Unix timestamp representing the date. Setting timestamps outside the range
                        of <info>int</info> is possible by using DateTimeImmutable::modify with the <return>@</return> format.

<comment>Return:</comment>
  <info>DateTime</info>  Returns the modified <class>DateTime</class> object for method chaining.

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::setTimestamp()</strong>


id: DateTime::setTimezone
type: function
doc:
<comment>Description:</comment>
  Sets the time zone for the DateTime object
  
  Object-oriented style
  
  Procedural style
  
  Sets a new timezone for a <class>DateTime</class> <info>object</info>.
  
  Like DateTimeImmutable::setTimezone but works with <class>DateTime</class>.
  
  The procedural version takes the <class>DateTime</class> object as its first argument.

<comment>Param:</comment>
  <info>DateTime</info>      <strong>$object</strong>    Procedural style only: A <class>DateTime</class> object
                           returned by <strong>date_create()</strong>.
                           The function modifies this object.
  <info>DateTimeZone</info>  <strong>$timezone</strong>  A <class>DateTimeZone</class> object representing the desired time zone.

<comment>Return:</comment>
  <info>DateTime</info>  Returns the <class>DateTime</class> object for method chaining. The underlaying point-in-time is not
            changed when calling this method.

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::setTimezone()</strong>
   * <strong>DateTime::getTimezone()</strong>
   * <strong>DateTimeZone::__construct()</strong>


id: DateTime::sub
type: function
doc:
<comment>Description:</comment>
  Subtracts an amount of days, months, years, hours, minutes and seconds from
     a DateTime object
    
  
  Object-oriented style
  
  Procedural style
  
  Modifies the specified DateTime object, by subtracting the specified <class>DateInterval</class> object.
  
  Like DateTimeImmutable::sub but works with <class>DateTime</class>.
  
  The procedural version takes the <class>DateTime</class> object as its first argument.

<comment>Param:</comment>
  <info>DateTime</info>      <strong>$object</strong>    Procedural style only: A <class>DateTime</class> object
                           returned by <strong>date_create()</strong>.
                           The function modifies this object.
  <info>DateInterval</info>  <strong>$interval</strong>  A <class>DateInterval</class> object

<comment>Return:</comment>
  <info>DateTime</info>  Returns the modified <class>DateTime</class> object for method chaining.

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::sub()</strong>


id: DateTimeImmutable
type: class
doc:
<comment>Description:</comment>
  Representation of date and time.
  
  This class behaves the same as <class>DateTime</class> except new objects are returned when modification methods
  such as <strong>DateTime::modify()</strong> are called.


id: DateTimeImmutable::__construct
type: function
doc:
<comment>Description:</comment>
  Returns new DateTimeImmutable object
  
  Object-oriented style
  
  Procedural style
  
  Returns new a DateTimeImmutable object.

<comment>Param:</comment>
  <info>string</info>             <strong>$datetime</strong>  A date/time string. Valid formats are explained in Date and Time
                                Formats.
                                
                                Enter <return>"now"</return> here to obtain the current time when using the <strong>$timezone</strong>
                                parameter.
  <info>DateTimeZone|null</info>  <strong>$timezone</strong>  A <class>DateTimeZone</class> object representing the timezone of <strong>$datetime</strong>.
                                
                                If <strong>$timezone</strong> is omitted or <info>null</info>, the current timezone will be used.
                                
                                The <strong>$timezone</strong> parameter and the current timezone are ignored when
                                the <strong>$datetime</strong> parameter either is a UNIX timestamp (e.g. <return>@946684800</return>)
                                or specifies a timezone (e.g. <return>2010-01-28T15:00:00+02:00</return>, or
                                <return>2010-07-05T06:00:00Z</return>).

<comment>Return:</comment>
  <info>DateTimeImmutable|false</info>  Returns a new DateTimeImmutable instance.


id: DateTimeImmutable::__set_state
type: function
doc:
<comment>Description:</comment>
  The __set_state handler
  
  The __set_state() handler.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  Initialization array.

<comment>Return:</comment>
  <info>DateTimeImmutable</info>  Returns a new instance of a DateTimeImmutable object.


id: DateTimeImmutable::add
type: function
doc:
<comment>Description:</comment>
  Returns a new object, with added amount of days, months, years, hours, minutes and seconds
    
  
  Creates a new <class>DateTimeImmutable</class> object, and adds the specified <class>DateInterval</class> object to this, to
  represent the new value.

<comment>Param:</comment>
  <info>DateInterval</info>  <strong>$interval</strong>  A <class>DateInterval</class> object

<comment>Return:</comment>
  <info>DateTimeImmutable</info>  Returns a new <class>DateTimeImmutable</class> object with the modified data.

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::sub()</strong>
   * <strong>DateTimeImmutable::diff()</strong>
   * <strong>DateTimeImmutable::modify()</strong>


id: DateTimeImmutable::createFromFormat
type: function
doc:
<comment>Description:</comment>
  Parses a time string according to a specified format
  
  Object-oriented style
  
  Procedural style
  
  Returns a new DateTimeImmutable object representing the date and time specified by the <strong>$datetime</strong>
  string, which was formatted in the given <strong>$format</strong>.

<comment>Param:</comment>
  <info>string</info>             <strong>$format</strong>    The format that the passed in <info>string</info> should be in. See the
                                formatting options below. In most cases, the same letters as for the
                                <strong>date()</strong> can be used.
                                
                                All fields are initialised with the current date/time. In most cases
                                you would want to reset these to "zero" (the Unix epoch, <return>1970-01-01
                                00:00:00 UTC</return>). You do that by including the <return>!</return> character as first
                                character in your <strong>$format</strong>, or <return>|</return> as your last. Please see the
                                documentation for each character below for more information.
                                
                                The format is parsed from left to right, which means that in some
                                situations the order in which the format characters are present
                                affects the result. In the case of <return>z</return> (the day of the year), it is
                                required that a year has already been parsed, for example through
                                the <return>Y</return> or <return>y</return> characters.
                                
                                Letters that are used for parsing numbers allow a wide range of
                                values, outside of what the logical range would be. For example, the
                                <return>d</return> (day of the month) accepts values in the range from <return>00</return> to <return>99</return>. The
                                only constraint is on the amount of digits. The date/time parser's
                                overflow mechanism is used when out-of-range values are given. The
                                examples below show some of this behaviour.
                                
                                This also means that the data parsed for a format letter is greedy,
                                and will read up to the amount of digits its format allows for. That
                                can then also mean that there are no longer enough characters in the
                                <strong>$datetime</strong> string for following format characters. An example on this
                                page also illustrates this issue.
                                
                                The following characters are recognized in the <strong>$format</strong> parameter
                                string<strong>$format</strong> characterDescriptionExample parsable valuesDay------<return>d</return>
                                and <return>j</return>Day of the month, 2 digits with or without leading zeros<return>01</return> to
                                <return>31</return> or <return>1</return> to <return>31</return>. (2 digit numbers higher than the number of days in
                                the month are accepted, in which case they will make the month
                                overflow. For example using 33 with January, means February 2nd) <return>D</return>
                                and <return>l</return>A textual representation of a day<return>Mon</return> through <return>Sun</return> or <return>Sunday</return>
                                through <return>Saturday</return>. If the day name given is different then the day
                                name belonging to a parsed (or default) date is different, then an
                                overflow occurs to the next date with the given day name. See the
                                examples below for an explanation. <return>S</return>English ordinal suffix for the
                                day of the month, 2 characters. It's ignored while processing.<return>st</return>,
                                <return>nd</return>, <return>rd</return> or <return>th</return>. <return>z</return> The day of the year (starting from 0); must be
                                preceded by <return>Y</return> or <return>y</return>. <return>0</return> through <return>365</return>. (3 digit numbers higher than the
                                numbers in a year are accepted, in which case they will make the
                                year overflow. For example using 366 with 2022, means January 2nd,
                                2023) Month------<return>F</return> and <return>M</return>A textual representation of a month, such as
                                January or Sept<return>January</return> through <return>December</return> or <return>Jan</return> through <return>Dec</return> <return>m</return> and
                                <return>n</return>Numeric representation of a month, with or without leading zeros<return>01</return>
                                through <return>12</return> or <return>1</return> through <return>12</return>. (2 digit numbers higher than 12 are
                                accepted, in which case they will make the year overflow. For
                                example using 13 means January in the next year) Year------<return>X</return> and <return>x</return>A
                                full numeric representation of a year, up to 19 digits, optionally
                                prefixed by <return>+</return> or <return>-</return>Examples: <return>0055</return>, <return>787</return>, <return>1999</return>, <return>-2003</return>, <return>+10191</return><return>Y</return>A full
                                numeric representation of a year, up to 4 digitsExamples: <return>0055</return>, <return>787</return>,
                                <return>1999</return>, <return>2003</return><return>y</return> A two digit representation of a year (which is assumed
                                to be in the range 1970-2069, inclusive)  Examples: <return>99</return> or <return>03</return> (which
                                will be interpreted as <return>1999</return> and <return>2003</return>, respectively) Time------<return>a</return> and
                                <return>A</return>Ante meridiem and Post meridiem<return>am</return> or <return>pm</return><return>g</return> and <return>h</return>12-hour format of an
                                hour with or without leading zero<return>1</return> through <return>12</return> or <return>01</return> through <return>12</return> (2
                                digit numbers higher than 12 are accepted, in which case they will
                                make the day overflow. For example using <return>14</return> means <return>02</return> in the next
                                AM/PM period) <return>G</return> and <return>H</return>24-hour format of an hour with or without
                                leading zeros<return>0</return> through <return>23</return> or <return>00</return> through <return>23</return> (2 digit numbers higher
                                than 24 are accepted, in which case they will make the day overflow.
                                For example using <return>26</return> means <return>02:00</return> the next day) <return>i</return>Minutes with leading
                                zeros<return>00</return> to <return>59</return>. (2 digit numbers higher than 59 are accepted, in
                                which case they will make the hour overflow. For example using <return>66</return>
                                means <return>:06</return> the next hour) <return>s</return>Seconds, with leading zeros<return>00</return> through <return>59</return>
                                (2 digit numbers higher than 59 are accepted, in which case they
                                will make the minute overflow. For example using <return>90</return> means <return>:30</return> the
                                next minute) <return>v</return>Fraction in milliseconds (up to three digits)Example:
                                <return>12</return> (<return>0.12</return> seconds), <return>345</return> (<return>0.345</return> seconds)<return>u</return>Fraction in microseconds (up
                                to six digits)Example: <return>45</return> (<return>0.45</return> seconds), <return>654321</return> (<return>0.654321</return>
                                seconds)Timezone------<return>e</return>, <return>O</return>, <return>P</return> and <return>T</return> Timezone identifier, or
                                difference to UTC in hours, or difference to UTC with colon between
                                hours and minutes, or timezone abbreviationExamples: <return>UTC</return>, <return>GMT</return>,
                                <return>Atlantic/Azores</return> or <return>+0200</return> or <return>+02:00</return> or <return>EST</return>, <return>MDT</return> Full
                                Date/Time------<return>U</return>Seconds since the Unix Epoch (January 1 1970
                                00:00:00 GMT)Example: <return>1292177455</return>Whitespace and Separators------<return> </return>
                                (space)Zero or more spaces, tabs, NBSP (U+A0), or NNBSP (U+202F)
                                charactersExample: <return>"\t"</return>, <return>"  "</return><return>#</return> One of the following separation
                                symbol: <return>;</return>, <return>:</return>, <return>/</return>, <return>.</return>, <return>,</return>, <return>-</return>, <return>(</return> or <return>)</return> Example: <return>/</return><return>;</return>, <return>:</return>, <return>/</return>, <return>.</return>, <return>,</return>, <return>-</return>, <return>(</return> or <return>)</return>
                                The specified character.Example: <return>-</return><return>?</return>A random byteExample: <return>^</return> (Be aware
                                that for UTF-8 characters you might need more than one <return>?</return>. In this
                                case, using <return>*</return> is probably what you want instead)<return>*</return>Random bytes until
                                the next separator or digitExample: <return>*</return> in <return>Y-*-d</return> with the string
                                <return>2009-aWord-08</return> will match <return>aWord</return><return>!</return>Resets all fields (year, month, day,
                                hour, minute, second, fraction and timezone information) to
                                zero-like values ( <return>0</return> for hour, minute, second and fraction, <return>1</return> for
                                month and day, <return>1970</return> for year and <return>UTC</return> for timezone
                                information)Without <return>!,</return> all fields will be set to the current date
                                and time.<return>|</return>Resets all fields (year, month, day, hour, minute, second,
                                fraction and timezone information) to zero-like values if they have
                                not been parsed yet<return>Y-m-d|</return> will set the year, month and day to the
                                information found in the string to parse, and sets the hour, minute
                                and second to 0.<return>+</return>If this format specifier is present, trailing data
                                in the string will not cause an error, but a warning insteadUse
                                DateTimeImmutable::getLastErrors to find out whether trailing data
                                was present.
                                
                                Unrecognized characters in the format string will cause the parsing
                                to fail and an error message is appended to the returned structure.
                                You can query error messages with DateTimeImmutable::getLastErrors.
                                
                                To include literal characters in <strong>$format</strong>, you have to escape them
                                with a backslash (<return>\</return>).
                                
                                If <strong>$format</strong> does not contain the character <return>!</return> then portions of the
                                generated date/time which are not specified in <strong>$format</strong> will be set
                                to the current system time.
                                
                                If <strong>$format</strong> contains the character <return>!</return>, then portions of the generated
                                date/time not provided in <strong>$format</strong>, as well as values to the
                                left-hand side of the <return>!</return>, will be set to corresponding values from
                                the Unix epoch.
                                
                                If any time character is parsed, then all other time-related fields
                                are set to "0", unless also parsed.
                                
                                The Unix epoch is 1970-01-01 00:00:00 UTC.
  <info>string</info>             <strong>$datetime</strong>  String representing the time.
  <info>DateTimeZone|null</info>  <strong>$timezone</strong>  A <class>DateTimeZone</class> object representing the desired time zone.
                                
                                If <strong>$timezone</strong> is omitted or <info>null</info> and <strong>$datetime</strong> contains no timezone,
                                the current timezone will be used.
                                
                                The <strong>$timezone</strong> parameter and the current timezone are ignored when
                                the <strong>$datetime</strong> parameter either contains a UNIX timestamp (e.g.
                                <return>946684800</return>) or specifies a timezone (e.g. <return>2010-01-28T15:00:00+02:00</return>).

<comment>Return:</comment>
  <info>DateTimeImmutable|false</info>  Returns a new DateTimeImmutable instance or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::__construct()</strong>
   * <strong>DateTimeImmutable::getLastErrors()</strong>
   * <strong>checkdate()</strong>
   * <strong>strptime()</strong>


id: DateTimeImmutable::createFromInterface
type: function
doc:
<comment>Description:</comment>
  Returns new DateTimeImmutable object encapsulating the given DateTimeInterface object

<comment>Param:</comment>
  <info>DateTimeInterface</info>  <strong>$object</strong>  The <class>DateTimeInterface</class> object that needs to be converted to an
                              immutable version. This object is not modified, but instead a new
                              <class>DateTimeImmutable</class> object is created containing the same date, time,
                              and timezone information.

<comment>Return:</comment>
  <info>DateTimeImmutable</info>  Returns a new <class>DateTimeImmutable</class> instance.


id: DateTimeImmutable::createFromMutable
type: function
doc:
<comment>Description:</comment>
  Returns new DateTimeImmutable instance encapsulating the given DateTime object

<comment>Param:</comment>
  <info>DateTime</info>  <strong>$object</strong>  The mutable <class>DateTime</class> object that you want to convert to an immutable version.
                     This object is not modified, but instead a new <class>DateTimeImmutable</class> instance is
                     created containing the same date time and timezone information.

<comment>Return:</comment>
  <info>static</info>  Returns a new <class>DateTimeImmutable</class> instance.


id: DateTimeImmutable::getLastErrors
type: function
doc:
<comment>Description:</comment>
  Returns the warnings and errors
  
  Returns an array of warnings and errors found while parsing a date/time string.

<comment>Return:</comment>
  <info>array|false</info>  Returns array containing info about warnings and errors, or <info>false</info> if there are
               neither warnings nor errors.


id: DateTimeImmutable::modify
type: function
doc:
<comment>Description:</comment>
  Creates a new object with modified timestamp
  
  Creates a new <info>DateTimeImmutable</info> object with modified timestamp. The original object is not
  modified.

<comment>Param:</comment>
  <info>string</info>  <strong>$modifier</strong>  A date/time string. Valid formats are explained in Date and Time Formats.

<comment>Return:</comment>
  <info>DateTimeImmutable|false</info>  Returns a new modified DateTimeImmutable object or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::add()</strong>
   * <strong>DateTimeImmutable::sub()</strong>
   * <strong>DateTimeImmutable::setDate()</strong>
   * <strong>DateTimeImmutable::setISODate()</strong>
   * <strong>DateTimeImmutable::setTime()</strong>
   * <strong>DateTimeImmutable::setTimestamp()</strong>


id: DateTimeImmutable::setDate
type: function
doc:
<comment>Description:</comment>
  Sets the date
  
  Returns a new DateTimeImmutable object with the current date of the DateTimeImmutable object set
  to the given date.

<comment>Param:</comment>
  <info></info>     <strong>$object</strong>  Procedural style only: A <class>DateTime</class> object
                returned by <strong>date_create()</strong>.
                The function modifies this object.
  <info>int</info>  <strong>$year</strong>    Year of the date.
  <info>int</info>  <strong>$month</strong>   Month of the date.
  <info>int</info>  <strong>$day</strong>     Day of the date.

<comment>Return:</comment>
  <info>DateTimeImmutable</info>  Returns a new <class>DateTimeImmutable</class> object with the modified data.

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::setISODate()</strong>
   * <strong>DateTimeImmutable::setTime()</strong>


id: DateTimeImmutable::setISODate
type: function
doc:
<comment>Description:</comment>
  Sets the ISO date
  
  Returns a new DateTimeImmutable object with the date set according to the ISO 8601 standard -
  using weeks and day offsets rather than specific dates.

<comment>Param:</comment>
  <info>int</info>  <strong>$year</strong>       Year of the date.
  <info>int</info>  <strong>$week</strong>       Week of the date.
  <info>int</info>  <strong>$dayOfWeek</strong>  Offset from the first day of the week.

<comment>Return:</comment>
  <info>DateTimeImmutable</info>  Returns a new <class>DateTimeImmutable</class> object with the modified data.

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::setDate()</strong>
   * <strong>DateTimeImmutable::setTime()</strong>


id: DateTimeImmutable::setTime
type: function
doc:
<comment>Description:</comment>
  Sets the time
  
  Returns a new DateTimeImmutable object with the time set to the given time.

<comment>Param:</comment>
  <info>int</info>  <strong>$hour</strong>         Hour of the time.
  <info>int</info>  <strong>$minute</strong>       Minute of the time.
  <info>int</info>  <strong>$second</strong>       Second of the time.
  <info>int</info>  <strong>$microsecond</strong>  Microsecond of the time.

<comment>Return:</comment>
  <info>DateTimeImmutable</info>  Returns a new <class>DateTimeImmutable</class> object with the modified data.

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::setDate()</strong>
   * <strong>DateTimeImmutable::setISODate()</strong>


id: DateTimeImmutable::setTimestamp
type: function
doc:
<comment>Description:</comment>
  Sets the date and time based on a Unix timestamp
  
  Returns a new <info>DateTimeImmutable</info> object constructed from the old one, with the date and time set
  based on an Unix timestamp.

<comment>Param:</comment>
  <info>int</info>  <strong>$timestamp</strong>  Unix timestamp representing the date. Setting timestamps outside the range of <info>int</info>
                   is possible by using DateTimeImmutable::modify with the <return>@</return> format.

<comment>Return:</comment>
  <info>DateTimeImmutable</info>  Returns a new <class>DateTimeImmutable</class> object with the modified data.

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::getTimestamp()</strong>


id: DateTimeImmutable::setTimezone
type: function
doc:
<comment>Description:</comment>
  Sets the time zone
  
  Returns a new DateTimeImmutable object with a new timezone set.

<comment>Param:</comment>
  <info>DateTimeZone</info>  <strong>$timezone</strong>  A <class>DateTimeZone</class> object representing the desired time zone.

<comment>Return:</comment>
  <info>DateTimeImmutable</info>  Returns a new modified <class>DateTimeImmutable</class> object for method chaining. The
                     underlaying point-in-time is not changed when calling this method.

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::getTimezone()</strong>
   * <strong>DateTimeZone::__construct()</strong>


id: DateTimeImmutable::sub
type: function
doc:
<comment>Description:</comment>
  Subtracts an amount of days, months, years, hours, minutes and seconds
    
  
  Returns a new <class>DateTimeImmutable</class> object, with the specified <class>DateInterval</class> object subtracted from the
  specified DateTimeImmutable object.

<comment>Param:</comment>
  <info>DateInterval</info>  <strong>$interval</strong>  A <class>DateInterval</class> object

<comment>Return:</comment>
  <info>DateTimeImmutable</info>  Returns a new <class>DateTimeImmutable</class> object with the modified data.

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::add()</strong>
   * <strong>DateTimeImmutable::diff()</strong>
   * <strong>DateTimeImmutable::modify()</strong>


id: DateTimeInterface
type: class
doc:
<comment>Description:</comment>
  DateTimeInterface was created so that parameter, return, or property type declarations may accept
  either  <class>DateTimeImmutable</class> or <class>DateTime</class> as a value. It is not possible to implement this interface
  with userland classes.
  
  Common constants that allow for formatting <class>DateTimeImmutable</class> or <class>DateTime</class> objects through
  DateTimeImmutable::format and DateTime::format are also defined on this interface.


id: DateTimeZone::__construct
type: function
doc:
<comment>Description:</comment>
  Creates new DateTimeZone object
  
  Object-oriented style
  
  Procedural style
  
  Creates a new DateTimeZone object.
  
  A DateTimeZone object provides access to three different types of timezone rules: UTC offset (type
  <return>1</return>), timezone abbreviation (type <return>2</return>), and timezone identifiers as published in the IANA timezone
  database (type <return>3</return>).
  
  The DateTimeZone object can be attached to <class>DateTime</class> and <class>DateTimeImmutable</class> objects to be able to
  render the timezone encapsulated by these objects in a local timezone.

<comment>Param:</comment>
  <info>string</info>  <strong>$timezone</strong>  One of the supported timezone names, an offset value (+0200), or a timezone
                     abbreviation (BST).

<comment>Return:</comment>
  <info>DateTimeZone|false</info>  Returns <class>DateTimeZone</class> on success. Procedural style returns <info>false</info> on failure.


id: DateTimeZone::getLocation
type: function
doc:
<comment>Description:</comment>
  Returns location information for a timezone
  
  Object-oriented style
  
  Procedural style
  
  Returns location information for a timezone, including country code, latitude/longitude and
  comments.

<comment>Param:</comment>
  <info>DateTimeZone</info>  <strong>$object</strong>  Procedural style only: A <class>DateTimeZone</class> object
                         returned by <strong>timezone_open()</strong>

<comment>Return:</comment>
  <info>array|false</info>  Array containing location information about timezone or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>DateTimeZone::listIdentifiers()</strong> to get a full or
   partial list of all supported timezone identifiers


id: DateTimeZone::getName
type: function
doc:
<comment>Description:</comment>
  Returns the name of the timezone
  
  Object-oriented style
  
  Procedural style
  
  Returns the name of the timezone.

<comment>Param:</comment>
  <info>DateTimeZone</info>  <strong>$object</strong>  The <class>DateTimeZone</class> for which to get a name.

<comment>Return:</comment>
  <info>string</info>  Depending on zone type, UTC offset (type 1), timezone abbreviation (type 2), and timezone
          identifiers as published in the IANA timezone database (type 3), the descriptor string to
          create a new <class>DateTimeZone</class> object with the same offset and/or rules. For example <return>02:00</return>,
          <return>CEST</return>, or one of the timezone names in the list of timezones.


id: DateTimeZone::getOffset
type: function
doc:
<comment>Description:</comment>
  Returns the timezone offset from GMT
  
  Object-oriented style
  
  Procedural style
  
  This function returns the offset to GMT for the date/time specified in the <strong>$datetime</strong> parameter.
  The GMT offset is calculated with the timezone information contained in the DateTimeZone object
  being used.

<comment>Param:</comment>
  <info>DateTimeZone</info>       <strong>$object</strong>    Procedural style only: A <class>DateTimeZone</class> object
                                returned by <strong>timezone_open()</strong>
  <info>DateTimeInterface</info>  <strong>$datetime</strong>  DateTime that contains the date/time to compute the offset from.

<comment>Return:</comment>
  <info>int</info>  Returns time zone offset in seconds.


id: DateTimeZone::getTransitions
type: function
doc:
<comment>Description:</comment>
  Returns all transitions for the timezone
  
  Object-oriented style
  
  Procedural style

<comment>Param:</comment>
  <info>DateTimeZone</info>  <strong>$object</strong>          Procedural style only: A <class>DateTimeZone</class> object
                                 returned by <strong>timezone_open()</strong>
  <info>int</info>           <strong>$timestampBegin</strong>  Begin timestamp.
  <info>int</info>           <strong>$timestampEnd</strong>    End timestamp.

<comment>Return:</comment>
  <info>array|false</info>  Returns a numerically indexed array of transition arrays on success,  or <info>false</info> on
               failure. DateTimeZone objects wrapping type 1 (UTC offsets) and type 2
               (abbreviations) do not contain any transitions, and calling this method on them will
               return <info>false</info>.
               
               If <strong>$timestampBegin</strong> is given, the first entry in the returned array will contain a
               transition element at the time of <strong>$timestampBegin</strong>.
               
               Transition Array StructureKeyTypeDescription<return>ts</return><info>int</info>Unix
               timestamp<return>time</return><info>string</info><info>DateTimeInterface::ISO8601_EXPANDED</info> (PHP 8.2 and later), or
               <info>DateTimeInterface::ISO8601</info> (PHP 8.1 and lower) time string<return>offset</return><info>int</info>Offset to UTC in
               seconds<return>isdst</return><info>bool</info>Whether daylight saving time is active<return>abbr</return><info>string</info>Timezone abbreviation


id: DateTimeZone::listAbbreviations
type: function
doc:
<comment>Description:</comment>
  Returns associative array containing dst, offset and the timezone name
  
  Object-oriented style
  
  Procedural style
  
  The returned list of abbreviations includes all historical use of abbreviations, which can lead to
  correct, but confusing entries. There are also conflicts, as <return>PST</return> is used both in the US and in the
  Philippines.
  
  The list that this function returns is therefore not suitable for building an array with options
  to present a choice of timezone to users.
  
  The data for this function are precompiled for performance reasons, and are not updated when using
  a newer timezonedb.

<comment>Return:</comment>
  <info>array</info>  Returns the array of timezone abbreviations.

<comment>See Also:</comment>
   * <strong>timezone_identifiers_list()</strong>


id: DateTimeZone::listIdentifiers
type: function
doc:
<comment>Description:</comment>
  Returns a numerically indexed array containing all defined timezone identifiers
  
  Object-oriented style
  
  Procedural style

<comment>Param:</comment>
  <info>int</info>          <strong>$timezoneGroup</strong>  One of the <class>DateTimeZone</class> class constants (or a combination).
  <info>string|null</info>  <strong>$countryCode</strong>    A two-letter (uppercase) ISO 3166-1 compatible country code.
                               
                               This option is only used when <strong>$timezoneGroup</strong> is set to
                               <info>DateTimeZone::PER_COUNTRY</info>.

<comment>Return:</comment>
  <info>array</info>  Returns the array of timezone identifiers. Only non-outdated items are returned. To get
         all, including outdated timezone identifiers, use the <return>DateTimeZone::ALL_WITH_BC</return> as value
         for <strong>$timezoneGroup</strong>.

<comment>See Also:</comment>
   * <strong>timezone_abbreviations_list()</strong>


id: DeflateContext
type: class
doc:
<comment>Description:</comment>
  A fully opaque class which replaces <return>zlib.deflate</return> resources as of PHP 8.0.0.


id: Directory
type: class
doc:
<comment>Description:</comment>
  Instances of <class>Directory</class> are created by calling the <strong>dir()</strong> function, not by the new operator.


id: Directory::close
type: function
doc:
<comment>Description:</comment>
  Close directory handle

<comment>Return:</comment>
  <info>void</info>  


id: Directory::read
type: function
doc:
<comment>Description:</comment>
  Read entry from directory handle

<comment>Return:</comment>
  <info>string|false</info>  


id: Directory::rewind
type: function
doc:
<comment>Description:</comment>
  Rewind directory handle

<comment>Return:</comment>
  <info>void</info>  


id: DirectoryIterator
type: class
doc:
<comment>Description:</comment>
  The DirectoryIterator class provides a simple interface for viewing the contents of filesystem
  directories.


id: DirectoryIterator::__construct
type: function
doc:
<comment>Description:</comment>
  Constructs a new directory iterator from a path
  
  Constructs a new directory iterator from a path.

<comment>Param:</comment>
  <info>string</info>  <strong>$directory</strong>  The path of the directory to traverse.

<comment>See Also:</comment>
   * <class>SplFileInfo</class>
   * <class>Iterator</class>


id: DirectoryIterator::__toString
type: function
doc:
<comment>Description:</comment>
  Get file name as a string
  
  Get the file name of the current <class>DirectoryIterator</class> item.

<comment>Return:</comment>
  <info>string</info>  Returns the file name of the current <class>DirectoryIterator</class> item.

<comment>See Also:</comment>
   * DirectoryIterator::getFilename
   * The __toString() magic method


id: DirectoryIterator::current
type: function
doc:
<comment>Description:</comment>
  Return the current DirectoryIterator item
  
  Get the current <class>DirectoryIterator</class> item.

<comment>Return:</comment>
  <info>mixed</info>  The current <class>DirectoryIterator</class> item.

<comment>See Also:</comment>
   * DirectoryIterator::key
   * DirectoryIterator::next
   * DirectoryIterator::rewind
   * DirectoryIterator::valid
   * Iterator::current


id: DirectoryIterator::getBasename
type: function
doc:
<comment>Description:</comment>
  Get base name of current DirectoryIterator item
  
  Get the base name of the current <class>DirectoryIterator</class> item.

<comment>Param:</comment>
  <info>string</info>  <strong>$suffix</strong>  If the base name ends in <strong>$suffix</strong>,  this will be cut.

<comment>Return:</comment>
  <info>string</info>  The base name of the current <class>DirectoryIterator</class> item.

<comment>See Also:</comment>
   * DirectoryIterator::getFilename
   * DirectoryIterator::getPath
   * DirectoryIterator::getPathname
   * <strong>basename()</strong>
   * <strong>pathinfo()</strong>


id: DirectoryIterator::getExtension
type: function
doc:
<comment>Description:</comment>
  Gets the file extension
  
  Retrieves the file extension.

<comment>Return:</comment>
  <info>string</info>  Returns a <info>string</info> containing the file extension, or an empty <info>string</info> if the file has no
          extension.

<comment>See Also:</comment>
   * DirectoryIterator::getFilename
   * DirectoryIterator::getBasename
   * <strong>pathinfo()</strong>


id: DirectoryIterator::getFilename
type: function
doc:
<comment>Description:</comment>
  Return file name of current DirectoryIterator item
  
  Get the file name of the current <class>DirectoryIterator</class> item.

<comment>Return:</comment>
  <info>string</info>  Returns the file name of the current <class>DirectoryIterator</class> item.

<comment>See Also:</comment>
   * DirectoryIterator::getBasename
   * DirectoryIterator::getPath
   * DirectoryIterator::getPathname
   * <strong>pathinfo()</strong>


id: DirectoryIterator::isDot
type: function
doc:
<comment>Description:</comment>
  Determine if current DirectoryIterator item is '.' or '..'
  
  Determines if the current <class>DirectoryIterator</class> item is a directory and either <return>.</return> or <return>..</return>

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if the entry is <return>.</return> or <return>..</return>, otherwise <info>false</info>

<comment>See Also:</comment>
   * DirectoryIterator::getType
   * DirectoryIterator::isDir
   * DirectoryIterator::isFile
   * DirectoryIterator::isLink


id: DirectoryIterator::key
type: function
doc:
<comment>Description:</comment>
  Return the key for the current DirectoryIterator item
  
  Get the key for the current <class>DirectoryIterator</class> item.

<comment>Return:</comment>
  <info>mixed</info>  The key for the current <class>DirectoryIterator</class> item as an <info>int</info>.

<comment>See Also:</comment>
   * DirectoryIterator::current
   * DirectoryIterator::next
   * DirectoryIterator::rewind
   * DirectoryIterator::valid
   * Iterator::key


id: DirectoryIterator::next
type: function
doc:
<comment>Description:</comment>
  Move forward to next DirectoryIterator item
  
  Move forward to the next <class>DirectoryIterator</class> item.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DirectoryIterator::current
   * DirectoryIterator::key
   * DirectoryIterator::rewind
   * DirectoryIterator::valid
   * Iterator::next


id: DirectoryIterator::rewind
type: function
doc:
<comment>Description:</comment>
  Rewind the DirectoryIterator back to the start
  
  Rewind the <class>DirectoryIterator</class> back to the start.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DirectoryIterator::current
   * DirectoryIterator::key
   * DirectoryIterator::next
   * DirectoryIterator::valid
   * Iterator::rewind


id: DirectoryIterator::seek
type: function
doc:
<comment>Description:</comment>
  Seek to a DirectoryIterator item
  
  Seek to a given position in the <class>DirectoryIterator</class>.

<comment>Param:</comment>
  <info>int</info>  <strong>$offset</strong>  The zero-based numeric position to seek to.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * DirectoryIterator::rewind
   * DirectoryIterator::next
   * SeekableIterator::seek


id: DirectoryIterator::valid
type: function
doc:
<comment>Description:</comment>
  Check whether current DirectoryIterator position is a valid file
  
  Check whether current <class>DirectoryIterator</class> position is a valid file.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the position is valid, otherwise <info>false</info>

<comment>See Also:</comment>
   * DirectoryIterator::current
   * DirectoryIterator::key
   * DirectoryIterator::next
   * DirectoryIterator::rewind
   * Iterator::valid


id: DocResult::__construct
type: function
doc:
<comment>Description:</comment>
  DocResult constructor
  
  Fetch document results and warnings,  and is instantiated by CollectionFind.


id: DocResult::fetchAll
type: function
doc:
<comment>Description:</comment>
  Get all rows
  
  Fetch all results from a result set.

<comment>Return:</comment>
  <info>array</info>  A numerical array with all results from the query; each result is an associative array. An
         empty array is returned if no rows are present.


id: DocResult::fetchOne
type: function
doc:
<comment>Description:</comment>
  Get one row
  
  Fetch one result from a result set.

<comment>Return:</comment>
  <info>array</info>  The result, as an associative array  or <info>null</info> if no results are present.


id: DocResult::getWarnings
type: function
doc:
<comment>Description:</comment>
  Get warnings from last operation
  
  Fetches warnings generated by MySQL server's last operation.

<comment>Return:</comment>
  <info>Array</info>  An array of Warning objects from the last operation. Each object defines an error
         'message', error 'level', and error 'code'. An empty array is returned if no errors are
         present.


id: DocResult::getWarningsCount
type: function
doc:
<comment>Description:</comment>
  Get warning count from last operation
  
  Returns the number of warnings raised by the last operation. Specifically,  these warnings are
  raised by the MySQL server.

<comment>Return:</comment>
  <info>int</info>  The number of warnings from the last operation.


id: Ds\Collection
type: class
doc:
<comment>Description:</comment>
  <class>Collection</class> is the base interface which covers functionality common to all the data structures in
  this library. It guarantees that all structures are traversable, countable, and can be converted
  to json using <strong>json_encode()</strong>.


id: Ds\Collection::clear
type: function
doc:
<comment>Description:</comment>
  Removes all values
  
  Removes all values from the collection.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: Ds\Collection::copy
type: function
doc:
<comment>Description:</comment>
  Returns a shallow copy of the collection
  
  Returns a shallow copy of the collection.

<comment>Return:</comment>
  <info>Ds\Collection</info>  Returns a shallow copy of the collection.


id: Ds\Collection::isEmpty
type: function
doc:
<comment>Description:</comment>
  Returns whether the collection is empty
  
  Returns whether the collection is empty.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the collection is empty, <info>false</info> otherwise.


id: Ds\Collection::toArray
type: function
doc:
<comment>Description:</comment>
  Converts the collection to an array
    
  
  Converts the collection to an <info>array</info>.
  
  Casting to an <info>array</info> is not supported yet.

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> containing all the values in the same order as the collection.


id: Ds\Deque
type: class
doc:
<comment>Description:</comment>
  A Deque (pronounced “deck”) is a sequence of values in a contiguous buffer that grows and shrinks
  automatically. The name is a common abbreviation of “double-ended queue” and is used internally by
  <class>Ds\Queue</class>.
  
  Two pointers are used to keep track of a head and a tail. The pointers can “wrap around” the end
  of the buffer, which avoids the need to move other values around to make room. This makes shift
  and unshift very fast —  something a <class>Ds\Vector</class> can’t compete with.
  
  Accessing a value by index requires a translation between the index and its corresponding position
  in the buffer: ((head + position) % capacity).


id: Ds\Deque::__construct
type: function
doc:
<comment>Description:</comment>
  Creates a new instance
  
  Creates a new instance, using either a <class>traversable</class> object or an <info>array</info> for the initial <strong>$values</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$values</strong>  A traversable object or an <info>array</info> to use for the initial values.


id: Ds\Deque::allocate
type: function
doc:
<comment>Description:</comment>
  Allocates enough memory for a required capacity
  
  Ensures that enough memory is allocated for a required capacity. This removes the need to
  reallocate the internal as values are added.

<comment>Param:</comment>
  <info>int</info>  <strong>$capacity</strong>  The number of values for which capacity should be allocated.
                  
                  Capacity will stay the same if this value is less than or equal to the current
                  capacity.
                  
                  Capacity will always be rounded up to the nearest power of 2.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: Ds\Deque::apply
type: function
doc:
<comment>Description:</comment>
  Updates all values by applying a callback function to each value
  
  Updates all values by applying a <strong>$callback</strong> function to each value in the deque.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  <info>mixed</info>callback<info>mixed</info><strong>$value</strong>
                       
                       A <info>callable</info> to apply to each value in the deque.
                       
                       The callback should return what the value should be replaced by.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: Ds\Deque::capacity
type: function
doc:
<comment>Description:</comment>
  Returns the current capacity
  
  Returns the current capacity.

<comment>Return:</comment>
  <info>int</info>  The current capacity.


id: Ds\Deque::clear
type: function
doc:
<comment>Description:</comment>
  Removes all values from the deque
  
  Removes all values from the deque.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: Ds\Deque::contains
type: function
doc:
<comment>Description:</comment>
  Determines if the deque contains given values
  
  Determines if the deque contains all values.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$values</strong>  Values to check.

<comment>Return:</comment>
  <info>bool</info>  <info>false</info> if any of the provided <strong>$values</strong> are not in the deque, <info>true</info> otherwise.


id: Ds\Deque::copy
type: function
doc:
<comment>Description:</comment>
  Returns a shallow copy of the deque
  
  Returns a shallow copy of the deque.

<comment>Return:</comment>
  <info>Ds\Deque</info>  A shallow copy of the deque.


id: Ds\Deque::count
type: function
doc:
<comment>Description:</comment>
  Returns the number of values in the collection
  
  See <strong>Countable::count()</strong>


id: Ds\Deque::filter
type: function
doc:
<comment>Description:</comment>
  Creates a new deque using a callable to
      determine which values to include
   
  
  Creates a new deque using a <info>callable</info> to determine which values to include.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  <info>bool</info>callback<info>mixed</info><strong>$value</strong>
                       
                       Optional <info>callable</info> which returns <info>true</info> if the value should be included, <info>false</info>
                       otherwise.
                       
                       If a callback is not provided, only values which are <info>true</info> (see converting to
                       boolean) will be included.

<comment>Return:</comment>
  <info>Ds\Deque</info>  A new deque containing all the values for which either the <strong>$callback</strong> returned <info>true</info>, or
            all values that convert to <info>true</info> if a <strong>$callback</strong> was not provided.


id: Ds\Deque::find
type: function
doc:
<comment>Description:</comment>
  Attempts to find a value's index
    
  
  Returns the index of the <strong>$value</strong>, or <info>false</info> if not found.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The value to find.

<comment>Return:</comment>
  <info>mixed</info>  The index of the value, or <info>false</info> if not found.
         
         Values will be compared by value and by type.


id: Ds\Deque::first
type: function
doc:
<comment>Description:</comment>
  Returns the first value in the deque
  
  Returns the first value in the deque.

<comment>Return:</comment>
  <info>mixed</info>  The first value in the deque.


id: Ds\Deque::get
type: function
doc:
<comment>Description:</comment>
  Returns the value at a given index
  
  Returns the value at a given index.

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>  The index to access, starting at 0.

<comment>Return:</comment>
  <info>mixed</info>  The value at the requested index.


id: Ds\Deque::insert
type: function
doc:
<comment>Description:</comment>
  Inserts values at a given index
  
  Inserts values into the deque at a given index.

<comment>Param:</comment>
  <info>int</info>    <strong>$index</strong>   The index at which to insert. 0 \<= index \<= count
                  
                  You can insert at the index equal to the number of values.
  <info>mixed</info>  <strong>$values</strong>  The value or values to insert.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: Ds\Deque::isEmpty
type: function
doc:
<comment>Description:</comment>
  Returns whether the deque is empty
  
  Returns whether the deque is empty.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the deque is empty, <info>false</info> otherwise.


id: Ds\Deque::join
type: function
doc:
<comment>Description:</comment>
  Joins all values together as a string
  
  Joins all values together as a string using an optional separator between each value.

<comment>Param:</comment>
  <info>string</info>  <strong>$glue</strong>  An optional string to separate each value.

<comment>Return:</comment>
  <info>string</info>  All values of the deque joined together as a string.


id: Ds\Deque::jsonSerialize
type: function
doc:
<comment>Description:</comment>
  Returns a representation that can be converted to JSON
  
  See <strong>JsonSerializable::jsonSerialize()</strong>
  
  You should never need to call this directly.


id: Ds\Deque::last
type: function
doc:
<comment>Description:</comment>
  Returns the last value
  
  Returns the last value in the deque.

<comment>Return:</comment>
  <info>mixed</info>  The last value in the deque.


id: Ds\Deque::map
type: function
doc:
<comment>Description:</comment>
  Returns the result of applying a callback to each value
  
  Returns the result of applying a <strong>$callback</strong> function to each value in the deque.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  <info>mixed</info>callback<info>mixed</info><strong>$value</strong>
                       
                       A <info>callable</info> to apply to each value in the deque.
                       
                       The callable should return what the new value will be in the new deque.

<comment>Return:</comment>
  <info>Ds\Deque</info>  The result of applying a <strong>$callback</strong> to each value in the deque.
            
            The values of the current instance won't be affected.


id: Ds\Deque::merge
type: function
doc:
<comment>Description:</comment>
  Returns the result of adding all given values to the deque
  
  Returns the result of adding all given values to the deque.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$values</strong>  A <class>traversable</class> object or an <info>array</info>.

<comment>Return:</comment>
  <info>Ds\Deque</info>  The result of adding all given values to the deque, effectively the same as adding the
            values to a copy, then returning that copy.
            
            The current instance won't be affected.


id: Ds\Deque::pop
type: function
doc:
<comment>Description:</comment>
  Removes and returns the last value
  
  Removes and returns the last value.

<comment>Return:</comment>
  <info>mixed</info>  The removed last value.


id: Ds\Deque::push
type: function
doc:
<comment>Description:</comment>
  Adds values to the end of the deque
  
  Adds values to the end of the deque.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$values</strong>  The values to add.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: Ds\Deque::reduce
type: function
doc:
<comment>Description:</comment>
  Reduces the deque to a single value using a callback function
  
  Reduces the deque to a single value using a callback function.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  The return value of the previous callback, or <strong>$initial</strong> if it's the first
                       iteration.
                       
                       The value of the current iteration.
  <info>mixed</info>     <strong>$carry</strong>     The return value of the previous callback, or <strong>$initial</strong> if it's the first
                       iteration.
  <info>mixed</info>     <strong>$value</strong>     The value of the current iteration.
  <info>mixed</info>     <strong>$initial</strong>   The initial value of the carry value. Can be <info>null</info>.

<comment>Return:</comment>
  <info>mixed</info>  The return value of the final callback.


id: Ds\Deque::remove
type: function
doc:
<comment>Description:</comment>
  Removes and returns a value by index
  
  Removes and returns a value by index.

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>  The index of the value to remove.

<comment>Return:</comment>
  <info>mixed</info>  The value that was removed.


id: Ds\Deque::reverse
type: function
doc:
<comment>Description:</comment>
  Reverses the deque in-place
    
  
  Reverses the deque in-place.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: Ds\Deque::reversed
type: function
doc:
<comment>Description:</comment>
  Returns a reversed copy
  
  Returns a reversed copy of the deque.

<comment>Return:</comment>
  <info>Ds\Deque</info>  A reversed copy of the deque.
              The current instance is not affected. 
            
            The current instance is not affected.


id: Ds\Deque::rotate
type: function
doc:
<comment>Description:</comment>
  Rotates the deque by a given number of rotations
  
  Rotates the deque by a given number of rotations, which is equivalent to successively calling
  $deque-&gt;push($deque-&gt;shift()) if the number of rotations is positive, or
  $deque-&gt;unshift($deque-&gt;pop()) if negative.

<comment>Param:</comment>
  <info>int</info>  <strong>$rotations</strong>  The number of times the deque should be rotated.

<comment>Return:</comment>
  <info>void</info>  No value is returned.. The deque of the current instance will be rotated.


id: Ds\Deque::set
type: function
doc:
<comment>Description:</comment>
  Updates a value at a given index
  
  Updates a value at a given index.

<comment>Param:</comment>
  <info>int</info>    <strong>$index</strong>  The index of the value to update.
  <info>mixed</info>  <strong>$value</strong>  The new value.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: Ds\Deque::shift
type: function
doc:
<comment>Description:</comment>
  Removes and returns the first value
  
  Removes and returns the first value.

<comment>Return:</comment>
  <info>mixed</info>  The first value, which was removed.


id: Ds\Deque::slice
type: function
doc:
<comment>Description:</comment>
  Returns a sub-deque of a given range
    
  
  Creates a sub-deque of a given range.

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>   The index at which the sub-deque starts.
                
                If positive, the deque will start at that index in the deque. If negative, the deque
                will start that far from the end.
  <info>int</info>  <strong>$length</strong>  If a length is given and is positive, the resulting deque will have up to that many
                values in it.
                 If the length results in an overflow, only values up to the end of the deque will
                be included.
                 If a length is given and is negative, the deque will stop that many values from the
                end.
                 If a length is not provided, the resulting deque will contain all values between
                the index and the end of the deque.

<comment>Return:</comment>
  <info>Ds\Deque</info>  A sub-deque of the given range.


id: Ds\Deque::sort
type: function
doc:
<comment>Description:</comment>
  Sorts the deque in-place
   
  
  Sorts the deque in-place, using an optional <strong>$comparator</strong> function.

<comment>Param:</comment>
  <info>callable</info>  <strong>$comparator</strong>  The comparison function must return an integer less than, equal to, or
                         greater than zero if the first argument is considered to be respectively
                         less than, equal to, or greater than the second.
                         
                         Returning non-integer values from the comparison function, such as <info>float</info>,
                         will result in an internal cast to <info>int</info> of the callback's return value. So
                         values such as <return>0.99</return> and <return>0.1</return> will both be cast to an integer value of <return>0</return>,
                         which will compare such values as equal.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: Ds\Deque::sorted
type: function
doc:
<comment>Description:</comment>
  Returns a sorted copy
  
  Returns a sorted copy, using an optional <strong>$comparator</strong> function.

<comment>Param:</comment>
  <info>callable</info>  <strong>$comparator</strong>  The comparison function must return an integer less than, equal to, or
                         greater than zero if the first argument is considered to be respectively
                         less than, equal to, or greater than the second.
                         
                         Returning non-integer values from the comparison function, such as <info>float</info>,
                         will result in an internal cast to <info>int</info> of the callback's return value. So
                         values such as <return>0.99</return> and <return>0.1</return> will both be cast to an integer value of <return>0</return>,
                         which will compare such values as equal.

<comment>Return:</comment>
  <info>Ds\Deque</info>  Returns a sorted copy of the deque.


id: Ds\Deque::sum
type: function
doc:
<comment>Description:</comment>
  Returns the sum of all values in the deque
  
  Returns the sum of all values in the deque.
  
  Arrays and objects are considered equal to zero when calculating the sum.

<comment>Return:</comment>
  <info>int|float</info>  The sum of all the values in the deque as either a <info>float</info> or <info>int</info> depending on the values
             in the deque.


id: Ds\Deque::toArray
type: function
doc:
<comment>Description:</comment>
  Converts the deque to an array
    
  
  Converts the deque to an <info>array</info>.
  
  Casting to an <info>array</info> is not supported yet.

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> containing all the values in the same order as the deque.


id: Ds\Deque::unshift
type: function
doc:
<comment>Description:</comment>
  Adds values to the front of the deque
  
  Adds values to the front of the deque, moving all the current values forward to make room for the
  new values.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$values</strong>  The values to add to the front of the deque.  Multiple values will be added in the
                  same order that they are passed.
                  
                  Multiple values will be added in the same order that they are passed.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: Ds\Hashable
type: class
doc:
<comment>Description:</comment>
  Hashable is an interface which allows objects to be used as keys. It’s an alternative to
  <strong>spl_object_hash()</strong>, which determines an object’s hash based on its handle: this means that two
  objects that are considered equal by an implicit definition would not treated as equal because
  they are not the same instance.
  
  <strong>hash()</strong> is used to return a scalar value to be used as the object's hash value, which determines
  where it goes in the hash table. While this value does not have to be unique, objects which are
  equal must have the same hash value.
  
  <strong>equals()</strong> is used to determine if two objects are equal. It's guaranteed that the comparing object
  will be an instance of the same class as the subject.


id: Ds\Hashable::equals
type: function
doc:
<comment>Description:</comment>
  Determines whether an object is equal to the current instance
  
  Determines whether another object is equal to the current instance.
  
  This method allows objects to be used as keys in structures such as <class>Ds\Map</class> and <class>Ds\Set</class>, or any
  other lookup structure that honors this interface.
  
  It's guaranteed that <strong>$obj</strong> is an instance of the same class.
  
  It's important that objects which are equal also have the same hash value. See
  <strong>Ds\Hashable::hash()</strong>.

<comment>Param:</comment>
  <info>object</info>  <strong>$obj</strong>  The object to compare the current instance to, which is always an instance of the
                same class.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if equal, <info>false</info> otherwise.


id: Ds\Hashable::hash
type: function
doc:
<comment>Description:</comment>
  Returns a scalar value to be used as a hash value
  
  Returns a scalar value to be used as the hash value of the objects.
  
  While the hash value does not define equality, all objects that are equal according to
  <strong>Ds\Hashable::equals()</strong> must have the same hash value. Hash values of equal objects don't have to be
  unique, for example you could just return <info>true</info> for all objects and nothing would break - the only
  implication would be that hash tables then turn into linked lists because all your objects will be
  hashed to the same bucket. It's therefore very important that you pick a good hash value, such as
  an ID or email address.
  
  This method allows objects to be used as keys in structures such as <class>Ds\Map</class> and <class>Ds\Set</class>, or any
  other lookup structure that honors this interface.
  
  Do not pick a value that might change within the object, such as a public property. Hash table
  lookups would fail because the hash has changed.
  
  All objects that are equal must have the same hash value.

<comment>Return:</comment>
  <info>mixed</info>  A scalar value to be used as this object's hash value.


id: Ds\Map
type: class
doc:
<comment>Description:</comment>
  A Map is a sequential collection of key-value pairs, almost identical to an <info>array</info> used in a
  similar context. Keys can be any type, but must be unique. Values are replaced if added to the map
  using the same key.


id: Ds\Map::allocate
type: function
doc:
<comment>Description:</comment>
  Allocates enough memory for a required capacity
  
  Allocates enough memory for a required capacity.

<comment>Param:</comment>
  <info>int</info>  <strong>$capacity</strong>  The number of values for which capacity should be allocated.
                  
                  Capacity will stay the same if this value is less than or equal to the current
                  capacity.
                  
                  Capacity will always be rounded up to the nearest power of 2.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: Ds\Map::apply
type: function
doc:
<comment>Description:</comment>
  Updates all values by applying a callback function to each value
  
  Updates all values by applying a <strong>$callback</strong> function to each value in the map.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  <info>mixed</info>callback<info>mixed</info><strong>$key</strong><info>mixed</info><strong>$value</strong>
                       
                       A <info>callable</info> to apply to each value in the map.
                       
                       The callback should return what the value should be replaced by.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: Ds\Map::clear
type: function
doc:
<comment>Description:</comment>
  Removes all values
  
  Removes all values from the map.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: Ds\Map::copy
type: function
doc:
<comment>Description:</comment>
  Returns a shallow copy of the map
  
  Returns a shallow copy of the map.

<comment>Return:</comment>
  <info>Ds\Map</info>  Returns a shallow copy of the map.


id: Ds\Map::count
type: function
doc:
<comment>Description:</comment>
  Returns the number of values in the map
  
  See <strong>Countable::count()</strong>


id: Ds\Map::diff
type: function
doc:
<comment>Description:</comment>
  Creates a new map using keys that aren't in another map
  
  Returns the result of removing all keys from the current instance that are present in a given
  <strong>$map</strong>.
  
  A \ B = {x ∈ A | x ∉ B}

<comment>Param:</comment>
  <info>Ds\Map</info>  <strong>$map</strong>  The map containing the keys to exclude in the resulting map.

<comment>Return:</comment>
  <info>Ds\Map</info>  The result of removing all keys from the current instance that are present in a given
          <strong>$map</strong>.

<comment>See Also:</comment>
   * Complement on Wikipedia


id: Ds\Map::filter
type: function
doc:
<comment>Description:</comment>
  Creates a new map using a callable to determine which pairs to include
    
  
  Creates a new map using a <info>callable</info> to determine which pairs to include.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  <info>bool</info>callback<info>mixed</info><strong>$key</strong><info>mixed</info><strong>$value</strong>
                       
                       Optional <info>callable</info> which returns <info>true</info> if the pair should be included, <info>false</info>
                       otherwise.
                       
                       If a callback is not provided, only values which are <info>true</info> (see converting to
                       boolean) will be included.

<comment>Return:</comment>
  <info>Ds\Map</info>  A new map containing all the pairs for which either the <strong>$callback</strong> returned <info>true</info>, or all
          values that convert to <info>true</info> if a <strong>$callback</strong> was not provided.


id: Ds\Map::first
type: function
doc:
<comment>Description:</comment>
  Returns the first pair in the map
  
  Returns the first pair in the map.

<comment>Return:</comment>
  <info>Ds\Pair</info>  The first pair in the map.


id: Ds\Map::get
type: function
doc:
<comment>Description:</comment>
  Returns the value for a given key
  
  Returns the value for a given key, or an optional default value if the key could not be found.
  
  Keys of type <info>object</info> are supported.
   If an object implements <class>Ds\Hashable</class>, equality will be determined by the object's equals function.
   If an object does not implement <class>Ds\Hashable</class>, objects must be references to the same instance to
  be considered equal.
  
  You can also use array syntax to access values by key, eg. $map["key"].
  
  Be careful when using array syntax. Scalar keys will be coerced to integers by the engine. For
  example, $map["1"] will attempt to access int(1), while $map-&gt;get("1") will correctly look up
  the string key.
  
  See Arrays.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$key</strong>      The key to look up.
  <info>mixed</info>  <strong>$default</strong>  The optional default value, returned if the key could not be found.

<comment>Return:</comment>
  <info>mixed</info>  The value mapped to the given <strong>$key</strong>, or the <strong>$default</strong> value if provided and the key could not
         be found in the map.


id: Ds\Map::hasKey
type: function
doc:
<comment>Description:</comment>
  Determines whether the map contains a given key
  
  Determines whether the map contains a given key.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$key</strong>  The key to look for.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the key could found, <info>false</info> otherwise.


id: Ds\Map::hasValue
type: function
doc:
<comment>Description:</comment>
  Determines whether the map contains a given value
  
  Determines whether the map contains a given value.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The value to look for.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the value could found, <info>false</info> otherwise.


id: Ds\Map::intersect
type: function
doc:
<comment>Description:</comment>
  Creates a new map by intersecting keys with another map
  
  Creates a new map containing the pairs of the current instance whose keys are also present in the
  given <strong>$map</strong>.
   In other words, returns a copy of the current instance with all keys removed that are not also in
  the other <strong>$map</strong>.
  
  A ∩ B = {x : x ∈ A ∧ x ∈ B}
  
  Values from the current instance will be kept.

<comment>Param:</comment>
  <info>Ds\Map</info>  <strong>$map</strong>  The other map, containing the keys to intersect with.

<comment>Return:</comment>
  <info>Ds\Map</info>  The key intersection of the current instance and another <strong>$map</strong>.

<comment>See Also:</comment>
   * Intersection on Wikipedia


id: Ds\Map::isEmpty
type: function
doc:
<comment>Description:</comment>
  Returns whether the map is empty
  
  Returns whether the map is empty.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the map is empty, <info>false</info> otherwise.


id: Ds\Map::keys
type: function
doc:
<comment>Description:</comment>
  Returns a set of the map's keys
  
  Returns a set containing all the keys of the map, in the same order.

<comment>Return:</comment>
  <info>Ds\Set</info>  A <class>Ds\Set</class> containing all the keys of the map.


id: Ds\Map::ksort
type: function
doc:
<comment>Description:</comment>
  Sorts the map in-place by key
   
  
  Sorts the map in-place by key, using an optional <strong>$comparator</strong> function.

<comment>Param:</comment>
  <info>callable</info>  <strong>$comparator</strong>  The comparison function must return an integer less than, equal to, or
                         greater than zero if the first argument is considered to be respectively
                         less than, equal to, or greater than the second.
                         
                         Returning non-integer values from the comparison function, such as <info>float</info>,
                         will result in an internal cast to <info>int</info> of the callback's return value. So
                         values such as <return>0.99</return> and <return>0.1</return> will both be cast to an integer value of <return>0</return>,
                         which will compare such values as equal.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: Ds\Map::ksorted
type: function
doc:
<comment>Description:</comment>
  Returns a copy, sorted by key
  
  Returns a copy sorted by key, using an optional <strong>$comparator</strong> function.

<comment>Param:</comment>
  <info>callable</info>  <strong>$comparator</strong>  The comparison function must return an integer less than, equal to, or
                         greater than zero if the first argument is considered to be respectively
                         less than, equal to, or greater than the second.
                         
                         Returning non-integer values from the comparison function, such as <info>float</info>,
                         will result in an internal cast to <info>int</info> of the callback's return value. So
                         values such as <return>0.99</return> and <return>0.1</return> will both be cast to an integer value of <return>0</return>,
                         which will compare such values as equal.

<comment>Return:</comment>
  <info>Ds\Map</info>  Returns a copy of the map, sorted by key.


id: Ds\Map::last
type: function
doc:
<comment>Description:</comment>
  Returns the last pair of the map
  
  Returns the last pair of the map.

<comment>Return:</comment>
  <info>Ds\Pair</info>  The last pair of the map.


id: Ds\Map::map
type: function
doc:
<comment>Description:</comment>
  Returns the result of applying a callback to each value
  
  Returns the result of applying a <strong>$callback</strong> function to each value of the map.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  <info>mixed</info>callback<info>mixed</info><strong>$key</strong><info>mixed</info><strong>$value</strong>
                       
                       A <info>callable</info> to apply to each value in the map.
                       
                       The callable should return what the key will be mapped to in the resulting
                       map.

<comment>Return:</comment>
  <info>Ds\Map</info>  The result of applying a <strong>$callback</strong> to each value in the map.
          
          The keys and values of the current instance won't be affected.


id: Ds\Map::merge
type: function
doc:
<comment>Description:</comment>
  Returns the result of adding all given associations
  
  Returns the result of associating all keys of a given <class>traversable</class> object or <info>array</info> with their
  corresponding values, combined with the current instance.
  
  Values of the current instance will be overwritten by those provided where keys are equal.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$values</strong>  A <class>traversable</class> object or an <info>array</info>.

<comment>Return:</comment>
  <info>Ds\Map</info>  The result of associating all keys of a given <class>traversable</class> object or <info>array</info> with their
          corresponding values, combined with the current instance.
          
          The current instance won't be affected.


id: Ds\Map::pairs
type: function
doc:
<comment>Description:</comment>
  Returns a sequence containing all the pairs of the map
  
  Returns a <class>Ds\Sequence</class> containing all the pairs of the map.

<comment>Return:</comment>
  <info>Ds\Sequence</info>  <class>Ds\Sequence</class> containing all the pairs of the map.


id: Ds\Map::put
type: function
doc:
<comment>Description:</comment>
  Associates a key with a value
  
  Associates a <strong>$key</strong> with a <strong>$value</strong>, overwriting a previous association if one exists.
  
  Keys of type <info>object</info> are supported.
   If an object implements <class>Ds\Hashable</class>, equality will be determined by the object's equals function.
   If an object does not implement <class>Ds\Hashable</class>, objects must be references to the same instance to
  be considered equal.
  
  You can also use array syntax to associate values by key, eg. $map["key"] = $value.
  
  Be careful when using array syntax. Scalar keys will be coerced to integers by the engine. For
  example, $map["1"] will attempt to access int(1), while $map-&gt;get("1") will correctly look up
  the string key.
  
  See Arrays.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$key</strong>    The key to associate the value with.
  <info>mixed</info>  <strong>$value</strong>  The value to be associated with the key.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: Ds\Map::putAll
type: function
doc:
<comment>Description:</comment>
  Associates all key-value pairs of a traversable object or array
  
  Associates all key-value <strong>$pairs</strong> of a <class>traversable</class> object or <info>array</info>.
  
  Keys of type <info>object</info> are supported.
   If an object implements <class>Ds\Hashable</class>, equality will be determined by the object's equals function.
   If an object does not implement <class>Ds\Hashable</class>, objects must be references to the same instance to
  be considered equal.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$pairs</strong>  <class>traversable</class> object or <info>array</info>.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: Ds\Map::reduce
type: function
doc:
<comment>Description:</comment>
  Reduces the map to a single value using a callback function
  
  Reduces the map to a single value using a callback function.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  The return value of the previous callback, or <strong>$initial</strong> if it's the first
                       iteration.
                       
                       The key of the current iteration.
                       
                       The value of the current iteration.
  <info>mixed</info>     <strong>$carry</strong>     The return value of the previous callback, or <strong>$initial</strong> if it's the first
                       iteration.
  <info>mixed</info>     <strong>$key</strong>       The key of the current iteration.
  <info>mixed</info>     <strong>$value</strong>     The value of the current iteration.
  <info>mixed</info>     <strong>$initial</strong>   The initial value of the carry value. Can be <info>null</info>.

<comment>Return:</comment>
  <info>mixed</info>  The return value of the final callback.


id: Ds\Map::remove
type: function
doc:
<comment>Description:</comment>
  Removes and returns a value by key
  
  Removes and returns a value by key, or return an optional default value if the key could not be
  found.
  
  Keys of type <info>object</info> are supported.
   If an object implements <class>Ds\Hashable</class>, equality will be determined by the object's equals function.
   If an object does not implement <class>Ds\Hashable</class>, objects must be references to the same instance to
  be considered equal.
  
  You can also use array syntax to access values by key, eg. $map["key"].
  
  Be careful when using array syntax. Scalar keys will be coerced to integers by the engine. For
  example, $map["1"] will attempt to access int(1), while $map-&gt;get("1") will correctly look up
  the string key.
  
  See Arrays.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$key</strong>      The key to remove.
  <info>mixed</info>  <strong>$default</strong>  The optional default value, returned if the key could not be found.

<comment>Return:</comment>
  <info>mixed</info>  The value that was removed, or the <strong>$default</strong> value if provided and the <strong>$key</strong> could not be
         found in the map.


id: Ds\Map::reverse
type: function
doc:
<comment>Description:</comment>
  Reverses the map in-place
    
  
  Reverses the map in-place.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: Ds\Map::reversed
type: function
doc:
<comment>Description:</comment>
  Returns a reversed copy
  
  Returns a reversed copy of the map.

<comment>Return:</comment>
  <info>Ds\Map</info>  A reversed copy of the map.
            The current instance is not affected. 
          
          The current instance is not affected.


id: Ds\Map::skip
type: function
doc:
<comment>Description:</comment>
  Returns the pair at a given positional index
  
  Returns the pair at a given zero-based <strong>$position</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$position</strong>  The zero-based positional index to return.

<comment>Return:</comment>
  <info>Ds\Pair</info>  Returns the <class>Ds\Pair</class> at the given <strong>$position</strong>.


id: Ds\Map::slice
type: function
doc:
<comment>Description:</comment>
  Returns a subset of the map defined by a starting index and length
    
  
  Returns a subset of the map defined by a starting <strong>$index</strong> and <strong>$length</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>   The index at which the range starts.
                
                If positive, the range will start at that index in the map. If negative, the range
                will start that far from the end.
  <info>int</info>  <strong>$length</strong>  If a length is given and is positive, the resulting map will have up to that many
                pairs in it.
                 If a length is given and is negative, the range will stop that many pairs from the
                end.
                 If the length results in an overflow, only pairs up to the end of the map will be
                included.
                 If a length is not provided, the resulting map will contain all pairs between the
                index and the end of the map.

<comment>Return:</comment>
  <info>Ds\Map</info>  A subset of the map defined by a starting index and length.


