# php_manual

id: APCUIterator
type: class
doc:
<comment>Description:</comment>
  <class>APCUIterator</class> 类可以更轻松的迭代大型 APCu 缓存。 它所支持的逐步迭代功能对于遍历大型缓存非常有用，每
  次加锁后只会获取指定数量（默认 100 条）的缓存条目就会释放锁而非一直锁住整个缓存，以便其他活动对缓
  存进行操作。 此外，使用正则表达式匹配是更高效的，因为它已经被移到了 C 语言层级（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.
  
  本函数还未编写文档，仅有参数列表。

<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.
  
  本函数还未编写文档，仅有参数列表。

<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.
  
  本函数还未编写文档，仅有参数列表。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  没有返回值。

<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> 用于 <strong>array_filter()</strong> 将值和键传递给指定回调函数。


id: ARRAY_FILTER_USE_KEY
type: constant
doc:
<comment>Description:</comment>
  <info>ARRAY_FILTER_USE_KEY</info> 用于 <strong>array_filter()</strong> 将每个键作为第一个参数传递给指定回调函数。


id: ASSERT_ACTIVE
type: constant
doc:
<comment>Description:</comment>
  assert.active
  
  启用 <strong>assert()</strong>。 本特性已自 PHP 8.3.0
  起废弃。强烈建议不要使用本特性。


id: ASSERT_CALLBACK
type: constant
doc:
<comment>Description:</comment>
  assert.callback
  
  失败断言的回调函数。 本特性已自 PHP 8.3.0
  起废弃。强烈建议不要使用本特性。


id: ASSERT_EXCEPTION
type: constant
doc:
<comment>Description:</comment>
  assert.exception
  
  为每个失败的断言产生一条 PHP 警告。 本特性已自 PHP 8.3.0
  起废弃。强烈建议不要使用本特性。


id: ASSERT_QUIET_EVAL
type: constant
doc:
<comment>Description:</comment>
  assert.quiet_eval
  
  在执行断言表达式时禁用 <return>error_reporting</return>。 此功能自 PHP 8.0.0 起移除。


id: ASSERT_WARNING
type: constant
doc:
<comment>Description:</comment>
  assert.warning
  
  为每个失败的断言产生一条 PHP 警告。 本特性已自 PHP 8.3.0
  起废弃。强烈建议不要使用本特性。


id: AllowDynamicProperties::__construct
type: function
doc:
<comment>Description:</comment>
  构造新的 AllowDynamicProperties 注解实例
  
  构造新 <class>AllowDynamicProperties</class> 实例。


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>  没有返回值。

<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>  没有返回值。

<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>  没有返回值。

<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>
  检查一个偏移位置是否存在
  
  检查一个偏移位置是否存在。
  
  对一个实现了 <class>ArrayAccess</class> 接口的对象使用 <strong>isset()</strong> 或 <strong>empty()</strong> 时，此方法将执行。
  
  当使用 <strong>empty()</strong> 并且仅当 <strong>ArrayAccess::offsetExists()</strong> 返回 <info>true</info> 时，<strong>ArrayAccess::offsetGet()</strong> 将被调
  用以检查是为否空。

<comment>Param:</comment>
  <info>mixed</info>  <strong>$offset</strong>  需要检查的偏移位置。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。
        
        如果一个非布尔型返回值被返回，将被转换为 <info>bool</info> 。


id: ArrayAccess::offsetGet
type: function
doc:
<comment>Description:</comment>
  获取一个偏移位置的值
  
  返回指定偏移位置的值。
  
  当检查一个偏移位置是否为 <strong>empty()</strong> 时，会执行此方法。

<comment>Param:</comment>
  <info>mixed</info>  <strong>$offset</strong>  需要获取的偏移位置。

<comment>Return:</comment>
  <info>mixed</info>  可返回任何类型。

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


id: ArrayAccess::offsetSet
type: function
doc:
<comment>Description:</comment>
  设置一个偏移位置的值
  
  为指定的偏移位置设置一个值。

<comment>Param:</comment>
  <info>mixed</info>  <strong>$offset</strong>  待设置的偏移位置。
  <info>mixed</info>  <strong>$value</strong>   需要设置的值。

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: ArrayAccess::offsetUnset
type: function
doc:
<comment>Description:</comment>
  复位一个偏移位置的值
  
  复位一个偏移位置的值。
  
  当使用 (unset) 进行类型转换时，该方法不会被调用。

<comment>Param:</comment>
  <info>mixed</info>  <strong>$offset</strong>  待复位的偏移位置。

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: ArrayIterator
type: class
doc:
<comment>Description:</comment>
  允许在迭代数组和对象时删除元素以及更新值或键。
  
  当你想多次遍历相同数组时你需要实例化 ArrayObject，然后让这个实例创建一个 ArrayIterator 实例。 当你
  想遍历相同数组时多次你需要实例 ArrayObject 并且让这个实例创建一个 ArrayIterator 实例，然后使用
  foreach 或者手动调用 getIterator() 方法。


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>.
  
  本函数还未编写文档，仅有参数列表。

<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.
  
  本函数还未编写文档，仅有参数列表。

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

<comment>Return:</comment>
  <info>void</info>  没有返回值。

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


id: ArrayIterator::asort
type: function
doc:
<comment>Description:</comment>
  Sort entries by values
  
  Sorts entries by their values.
  
  如果两个成员完全相同，那么它们将保持原来的顺序。 在 PHP 8.0.0 之前，它们在排序数组中的相对顺序是未
  定义的。

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  可选的第二个参数 <strong>$flags</strong> 可以用以下值改变排序的行为：
               
               排序类型标记： <info>SORT_REGULAR</info>  - 正常比较单元 详细描述参见 比较运算符 章节<info>SORT_NUMERIC</info>
               - 单元被作为数字来比较<info>SORT_STRING</info> - 单元被作为字符串来比较<info>SORT_LOCALE_STRING</info> - 根据当
               前的区域（locale）设置来把单元当作字符串比较，可以用 <strong>setlocale()</strong> 来改变。
               <info>SORT_NATURAL</info> - 和 <strong>natsort()</strong> 类似对每个单元以“自然的顺序”对字符串进行排序。
               <info>SORT_FLAG_CASE</info> - 能够与 <info>SORT_STRING</info> 或 <info>SORT_NATURAL</info> 合并（OR 位运算），不区分大小写排
               序字符串。
               
               <info>SORT_REGULAR</info>  - 正常比较单元 详细描述参见 比较运算符 章节
               
               <info>SORT_NUMERIC</info> - 单元被作为数字来比较
               
               <info>SORT_STRING</info> - 单元被作为字符串来比较
               
               <info>SORT_LOCALE_STRING</info> - 根据当前的区域（locale）设置来把单元当作字符串比较，可以用
               <strong>setlocale()</strong> 来改变。
               
               <info>SORT_NATURAL</info> - 和 <strong>natsort()</strong> 类似对每个单元以“自然的顺序”对字符串进行排序。
               
               <info>SORT_FLAG_CASE</info> - 能够与 <info>SORT_STRING</info> 或 <info>SORT_NATURAL</info> 合并（OR 位运算），不区分大小写排
               序字符串。

<comment>Return:</comment>
  <info>true</info>  总是返回 <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>.
  
  本函数还未编写文档，仅有参数列表。

<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.
  
  本函数还未编写文档，仅有参数列表。

<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.
  
  如果两个成员完全相同，那么它们将保持原来的顺序。 在 PHP 8.0.0 之前，它们在排序数组中的相对顺序是未
  定义的。

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  可选的第二个参数 <strong>$flags</strong> 可以用以下值改变排序的行为：
               
               排序类型标记： <info>SORT_REGULAR</info>  - 正常比较单元 详细描述参见 比较运算符 章节<info>SORT_NUMERIC</info>
               - 单元被作为数字来比较<info>SORT_STRING</info> - 单元被作为字符串来比较<info>SORT_LOCALE_STRING</info> - 根据当
               前的区域（locale）设置来把单元当作字符串比较，可以用 <strong>setlocale()</strong> 来改变。
               <info>SORT_NATURAL</info> - 和 <strong>natsort()</strong> 类似对每个单元以“自然的顺序”对字符串进行排序。
               <info>SORT_FLAG_CASE</info> - 能够与 <info>SORT_STRING</info> 或 <info>SORT_NATURAL</info> 合并（OR 位运算），不区分大小写排
               序字符串。
               
               <info>SORT_REGULAR</info>  - 正常比较单元 详细描述参见 比较运算符 章节
               
               <info>SORT_NUMERIC</info> - 单元被作为数字来比较
               
               <info>SORT_STRING</info> - 单元被作为字符串来比较
               
               <info>SORT_LOCALE_STRING</info> - 根据当前的区域（locale）设置来把单元当作字符串比较，可以用
               <strong>setlocale()</strong> 来改变。
               
               <info>SORT_NATURAL</info> - 和 <strong>natsort()</strong> 类似对每个单元以“自然的顺序”对字符串进行排序。
               
               <info>SORT_FLAG_CASE</info> - 能够与 <info>SORT_STRING</info> 或 <info>SORT_NATURAL</info> 合并（OR 位运算），不区分大小写排
               序字符串。

<comment>Return:</comment>
  <info>true</info>  总是返回 <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.
  
  如果两个成员完全相同，那么它们将保持原来的顺序。 在 PHP 8.0.0 之前，它们在排序数组中的相对顺序是未
  定义的。

<comment>Return:</comment>
  <info>true</info>  总是返回 <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.
  
  如果两个成员完全相同，那么它们将保持原来的顺序。 在 PHP 8.0.0 之前，它们在排序数组中的相对顺序是未
  定义的。

<comment>Return:</comment>
  <info>true</info>  总是返回 <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>  没有返回值。


id: ArrayIterator::offsetExists
type: function
doc:
<comment>Description:</comment>
  Check if offset exists
  
  Checks if the offset exists.
  
  本函数还未编写文档，仅有参数列表。

<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.
  
  本函数还未编写文档，仅有参数列表。

<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.
  
  本函数还未编写文档，仅有参数列表。

<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>  没有返回值。

<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>  没有返回值。

<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>  没有返回值。


id: ArrayIterator::seek
type: function
doc:
<comment>Description:</comment>
  Seek to position
  
  本函数还未编写文档，仅有参数列表。

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

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: ArrayIterator::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize
  
  Serialize.
  
  本函数还未编写文档，仅有参数列表。

<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>  没有返回值。

<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.
  
  如果两个成员完全相同，那么它们将保持原来的顺序。 在 PHP 8.0.0 之前，它们在排序数组中的相对顺序是未
  定义的。

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  在第一个参数小于，等于或大于第二个参数时，该比较函数必须相应地返回一个小于，
                       等于或大于 0 的整数。
                       
                       从比较函数中返回非整数值，例如 <info>float</info>，将导致内部强制转换为 callback 返回值为
                       <info>int</info>。因此，诸如 <return>0.99</return> 和 <return>0.1</return> 之类的值都将被转换为整数值 <return>0</return>，将这些值比较的话将
                       会是相等。

<comment>Return:</comment>
  <info>true</info>  总是返回 <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.
  
  如果两个成员完全相同，那么它们将保持原来的顺序。 在 PHP 8.0.0 之前，它们在排序数组中的相对顺序是未
  定义的。

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  在第一个参数小于，等于或大于第二个参数时，该比较函数必须相应地返回一个小于，
                       等于或大于 0 的整数。
                       
                       从比较函数中返回非整数值，例如 <info>float</info>，将导致内部强制转换为 callback 返回值为
                       <info>int</info>。因此，诸如 <return>0.99</return> 和 <return>0.1</return> 之类的值都将被转换为整数值 <return>0</return>，将这些值比较的话将
                       会是相等。

<comment>Return:</comment>
  <info>true</info>  总是返回 <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.
  
  本函数还未编写文档，仅有参数列表。

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

<comment>Return:</comment>
  <info>void</info>  没有返回值。

<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>
  追加新的值作为最后一个元素。
  
  追加新的值作为最后一个元素。
  
  当 <class>ArrayObject</class> 从 object 初始化时不能调用此方法。使用 ArrayObject::offsetSet 代替。

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  将要被追加的值

<comment>Return:</comment>
  <info>void</info>  没有返回值。

<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.
  
  如果两个成员完全相同，那么它们将保持原来的顺序。 在 PHP 8.0.0 之前，它们在排序数组中的相对顺序是未
  定义的。

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  可选的第二个参数 <strong>$flags</strong> 可以用以下值改变排序的行为：
               
               排序类型标记： <info>SORT_REGULAR</info>  - 正常比较单元 详细描述参见 比较运算符 章节<info>SORT_NUMERIC</info>
               - 单元被作为数字来比较<info>SORT_STRING</info> - 单元被作为字符串来比较<info>SORT_LOCALE_STRING</info> - 根据当
               前的区域（locale）设置来把单元当作字符串比较，可以用 <strong>setlocale()</strong> 来改变。
               <info>SORT_NATURAL</info> - 和 <strong>natsort()</strong> 类似对每个单元以“自然的顺序”对字符串进行排序。
               <info>SORT_FLAG_CASE</info> - 能够与 <info>SORT_STRING</info> 或 <info>SORT_NATURAL</info> 合并（OR 位运算），不区分大小写排
               序字符串。
               
               <info>SORT_REGULAR</info>  - 正常比较单元 详细描述参见 比较运算符 章节
               
               <info>SORT_NUMERIC</info> - 单元被作为数字来比较
               
               <info>SORT_STRING</info> - 单元被作为字符串来比较
               
               <info>SORT_LOCALE_STRING</info> - 根据当前的区域（locale）设置来把单元当作字符串比较，可以用
               <strong>setlocale()</strong> 来改变。
               
               <info>SORT_NATURAL</info> - 和 <strong>natsort()</strong> 类似对每个单元以“自然的顺序”对字符串进行排序。
               
               <info>SORT_FLAG_CASE</info> - 能够与 <info>SORT_STRING</info> 或 <info>SORT_NATURAL</info> 合并（OR 位运算），不区分大小写排
               序字符串。

<comment>Return:</comment>
  <info>true</info>  总是返回 <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>
  统计 ArrayObject 内 public 属性的数量
  
  获取 <class>ArrayObject</class> 的 public 属性数量

<comment>Return:</comment>
  <info>int</info>  对象 <class>ArrayObject</class> 的 public 属性数量
       
       当对象 <class>ArrayObject</class> 是从数组构造而来时，所有属性都是 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.
  
  如果两个成员完全相同，那么它们将保持原来的顺序。 在 PHP 8.0.0 之前，它们在排序数组中的相对顺序是未
  定义的。

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  可选的第二个参数 <strong>$flags</strong> 可以用以下值改变排序的行为：
               
               排序类型标记： <info>SORT_REGULAR</info>  - 正常比较单元 详细描述参见 比较运算符 章节<info>SORT_NUMERIC</info>
               - 单元被作为数字来比较<info>SORT_STRING</info> - 单元被作为字符串来比较<info>SORT_LOCALE_STRING</info> - 根据当
               前的区域（locale）设置来把单元当作字符串比较，可以用 <strong>setlocale()</strong> 来改变。
               <info>SORT_NATURAL</info> - 和 <strong>natsort()</strong> 类似对每个单元以“自然的顺序”对字符串进行排序。
               <info>SORT_FLAG_CASE</info> - 能够与 <info>SORT_STRING</info> 或 <info>SORT_NATURAL</info> 合并（OR 位运算），不区分大小写排
               序字符串。
               
               <info>SORT_REGULAR</info>  - 正常比较单元 详细描述参见 比较运算符 章节
               
               <info>SORT_NUMERIC</info> - 单元被作为数字来比较
               
               <info>SORT_STRING</info> - 单元被作为字符串来比较
               
               <info>SORT_LOCALE_STRING</info> - 根据当前的区域（locale）设置来把单元当作字符串比较，可以用
               <strong>setlocale()</strong> 来改变。
               
               <info>SORT_NATURAL</info> - 和 <strong>natsort()</strong> 类似对每个单元以“自然的顺序”对字符串进行排序。
               
               <info>SORT_FLAG_CASE</info> - 能够与 <info>SORT_STRING</info> 或 <info>SORT_NATURAL</info> 合并（OR 位运算），不区分大小写排
               序字符串。

<comment>Return:</comment>
  <info>true</info>  总是返回 <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".
  
  如果两个成员完全相同，那么它们将保持原来的顺序。 在 PHP 8.0.0 之前，它们在排序数组中的相对顺序是未
  定义的。

<comment>Return:</comment>
  <info>true</info>  没有返回值。

<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.
  
  如果两个成员完全相同，那么它们将保持原来的顺序。 在 PHP 8.0.0 之前，它们在排序数组中的相对顺序是未
  定义的。

<comment>Return:</comment>
  <info>true</info>  没有返回值。

<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>
  为指定索引设定新值
  
  设置指定的索引为新值。

<comment>Param:</comment>
  <info>mixed</info>  <strong>$key</strong>    将要被设置的索引。
  <info>mixed</info>  <strong>$value</strong>  参数 <strong>$key</strong> 所对应的新值。

<comment>Return:</comment>
  <info>void</info>  没有返回值。

<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>  没有返回值。


id: ArrayObject::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize an ArrayObject
  
  Serializes an <class>ArrayObject</class>.
  
  本函数还未编写文档，仅有参数列表。

<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>  没有返回值。


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>  没有返回值。


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.
  
  如果两个成员完全相同，那么它们将保持原来的顺序。 在 PHP 8.0.0 之前，它们在排序数组中的相对顺序是未
  定义的。

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  在第一个参数小于，等于或大于第二个参数时，该比较函数必须相应地返回一个小于，
                       等于或大于 0 的整数。
                       
                       从比较函数中返回非整数值，例如 <info>float</info>，将导致内部强制转换为 callback 返回值为
                       <info>int</info>。因此，诸如 <return>0.99</return> 和 <return>0.1</return> 之类的值都将被转换为整数值 <return>0</return>，将这些值比较的话将
                       会是相等。

<comment>Return:</comment>
  <info>true</info>  总是返回 <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.
  
  如果两个成员完全相同，那么它们将保持原来的顺序。 在 PHP 8.0.0 之前，它们在排序数组中的相对顺序是未
  定义的。

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  在第一个参数小于，等于或大于第二个参数时，该比较函数必须相应地返回一个小于，
                       等于或大于 0 的整数。
                       
                       从比较函数中返回非整数值，例如 <info>float</info>，将导致内部强制转换为 callback 返回值为
                       <info>int</info>。因此，诸如 <return>0.99</return> 和 <return>0.1</return> 之类的值都将被转换为整数值 <return>0</return>，将这些值比较的话将
                       会是相等。

<comment>Return:</comment>
  <info>true</info>  总是返回 <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>.
  
  本函数还未编写文档，仅有参数列表。

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

<comment>Return:</comment>
  <info>void</info>  没有返回值。

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


id: BackedEnum
type: class
doc:
<comment>Description:</comment>
  引擎会自动应用 <class>BackedEnum</class> 接口到回退枚举。 用户自定义类不能实现该接口。 由于引擎已提供枚举的默认实
  现，因此不能重载它的接口。 主要将它用于类型检测。


id: BackedEnum::from
type: function
doc:
<comment>Description:</comment>
  映射标量为 enum 实例
  
  from 方法将 <info>string</info> 和 <info>int</info> 翻译成对应存在的 enum 条目。 如果没有匹配的条目，会抛出 <class>ValueError</class>。

<comment>Param:</comment>
  <info>int|string</info>  <strong>$value</strong>  要映射到枚举条目的标量值。

<comment>Return:</comment>
  <info>static</info>  该枚举的一个条目实例。

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


id: BackedEnum::tryFrom
type: function
doc:
<comment>Description:</comment>
  映射标量为 enum 实例或 null
  
  tryFrom 方法将 <info>string</info> 和 <info>int</info> 翻译成对应存在的 enum 条目。 如果没有找到匹配的条目，返回 null。

<comment>Param:</comment>
  <info>int|string</info>  <strong>$value</strong>  要映射到枚举条目的标量值。

<comment>Return:</comment>
  <info>static|null</info>  该枚举的一个条目实例，未找到时返回 <info>null</info>。

<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>
  <strong>jddayofweek()</strong>：用 <info>int</info>  表示星期几，<return>0</return> 表示星期日，<return>6</return> 表示星期六。


id: CAL_EASTER_DEFAULT
type: constant
doc:
<comment>Description:</comment>
  <strong>easter_days()</strong>：根据儒略历计算 1753  年之前的复活节，并根据公历计算之后的复活节。


id: CAL_EASTER_ROMAN
type: constant
doc:
<comment>Description:</comment>
  <strong>easter_days()</strong>：根据儒略历计算 1583  年之前的复活节，并根据公历计算之后的复活节。


id: CAL_FRENCH
type: constant
doc:
<comment>Description:</comment>
  <strong>cal_days_in_month()</strong>、<strong>cal_from_jd()</strong>、<strong>cal_info()</strong> 和 <strong>cal_to_jd()</strong>：使用法国共和历。


id: CAL_GREGORIAN
type: constant
doc:
<comment>Description:</comment>
  <strong>cal_days_in_month()</strong>、<strong>cal_from_jd()</strong>、<strong>cal_info()</strong> 和 <strong>cal_to_jd()</strong>：使用前公历。


id: CAL_JEWISH
type: constant
doc:
<comment>Description:</comment>
  <strong>cal_days_in_month()</strong>、<strong>cal_from_jd()</strong>、<strong>cal_info()</strong> 和 <strong>cal_to_jd()</strong>：使用犹太历。


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>
  <strong>cal_days_in_month()</strong>、<strong>cal_from_jd()</strong>、<strong>cal_info()</strong> 和 <strong>cal_to_jd()</strong>：使用儒略历。


id: CASE_LOWER
type: constant
doc:
<comment>Description:</comment>
  <info>CASE_LOWER</info> 用在 <strong>array_change_key_case()</strong> 中将数组的键名转换成小写字母。这也是
  <strong>array_change_key_case()</strong> 的默认值。从 PHP 8.2.0 开始，只转换 ASCII 字符。


id: CASE_UPPER
type: constant
doc:
<comment>Description:</comment>
  <info>CASE_UPPER</info> 用在 <strong>array_change_key_case()</strong> 中将数组的键名转换成大写字母。从 PHP 8.2.0 开始，只转换
  ASCII 字符。


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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


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
  
  所有的贡献者，等于使用 <return>CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES +
  CREDITS_QA CREDITS_FULLPAGE</return>。 它以合适的标签产生了完整的独立 HTML 页面。这是默认的值。


id: CRYPT_BLOWFISH
type: constant
doc:
<comment>Description:</comment>
  表示 <strong>crypt()</strong> 是否支持 Blowfish 散列。始终是 <return>1</return>。


id: CRYPT_EXT_DES
type: constant
doc:
<comment>Description:</comment>
  表示 <strong>crypt()</strong> 是否支持基于 DES 的扩展散列。始终是 <return>1</return>。


id: CRYPT_SHA256
type: constant
doc:
<comment>Description:</comment>
  表示 <strong>crypt()</strong> 是否支持 SHA-256 散列。始终是 <return>1</return>。


id: CRYPT_SHA512
type: constant
doc:
<comment>Description:</comment>
  表示 <strong>crypt()</strong> 是否支持 SHA-512 散列。始终是 <return>1</return>。


id: CRYPT_STD_DES
type: constant
doc:
<comment>Description:</comment>
  表示 <strong>crypt()</strong> 是否支持基于 DES 的标准散列。始终是 <return>1</return>。


id: CURLFile
type: class
doc:
<comment>Description:</comment>
  此类或 <class>CURLStringFile</class> 应该与 <info>CURLOPT_POSTFIELDS</info> 一同使用用于上传文件。
  
  不允许反序列化 <class>CURLFile</class> 实例。自 PHP 7.4.0 起，首先禁止序列化。


id: CURLFile::__construct
type: function
doc:
<comment>Description:</comment>
  创建 CURLFile 对象
  
  面向对象风格
  
  过程化风格
  
  创建 <class>CURLFile</class> 对象，用于使用 <info>CURLOPT_POSTFIELDS</info> 选项上传文件。

<comment>Param:</comment>
  <info>string</info>       <strong>$filename</strong>         被上传文件的 路径。
  <info>string|null</info>  <strong>$mime_type</strong>        被上传文件的 MIME 类型。
  <info>string|null</info>  <strong>$posted_filename</strong>  上传数据里面的文件名。

<comment>Return:</comment>
  <info>CURLFile</info>  返回 <class>CURLFile</class> 对象。

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


id: CURLFile::getMimeType
type: function
doc:
<comment>Description:</comment>
  获取 MIME 类型

<comment>Return:</comment>
  <info>string</info>  返回 MIME 类型。


id: CURLFile::getPostFilename
type: function
doc:
<comment>Description:</comment>
  获取 POST 请求时的文件名

<comment>Return:</comment>
  <info>string</info>  返回 POST 请求时的文件名。


id: CURLFile::setMimeType
type: function
doc:
<comment>Description:</comment>
  设置 MIME 类型

<comment>Param:</comment>
  <info>string</info>  <strong>$mime_type</strong>  POST 数据中的 MIME 类型。

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: CURLFile::setPostFilename
type: function
doc:
<comment>Description:</comment>
  设置 POST 请求时的文件名

<comment>Param:</comment>
  <info>string</info>  <strong>$posted_filename</strong>  POST 数据里使用的文件名。

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: CURLOPT_DOH_SSL_VERIFYHOST
type: constant
doc:
<comment>Description:</comment>
  根据主机名验证 DNS-over-HTTPS 服务器的 SSL 证书名称字段。自 PHP 8.2.0 和 cURL 7.76.0 版本可用。


id: CURLOPT_DOH_SSL_VERIFYPEER
type: constant
doc:
<comment>Description:</comment>
  验证 DNS-over-HTTPS 服务器的 SSL 证书的真实性。自 PHP 8.2.0 和 cURL 7.76.0 版本可用。


id: CURLOPT_DOH_SSL_VERIFYSTATUS
type: constant
doc:
<comment>Description:</comment>
  告诉 cURL 使用“证书状态请求”TLS 扩展（OCSP stapling）验证 DNS-over-HTTPS 服务器证书的状态。自 PHP
  8.2.0 和 cURL 7.76.0 版本可用。


id: CURLStringFile
type: class
doc:
<comment>Description:</comment>
  <class>CURLStringFile</class> 能够直接把一个变量作为文件上传。 这与 <class>CURLFile</class> 用法比较相似，但是它使用的是文件的内
  容，而不是文件名。 这个类或者 <class>CURLFile</class> 都需要和 <info>CURLOPT_POSTFIELDS</info> 参数一同使用以上传文件。


id: CURLStringFile::__construct
type: function
doc:
<comment>Description:</comment>
  创建 CURLStringFile 对象
  
  创建 <class>CURLStringFile</class> 对象，使用 <info>CURLOPT_POSTFIELDS</info> 选项上传文件。

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>      待上传的内容。
  <info>string</info>  <strong>$postname</strong>  上传数据中的文件名称。
  <info>string</info>  <strong>$mime</strong>      文件的 MIME 类型（默认为 <return>application/octet-stream</return>）。

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


id: CURL_VERSION_GSSNEGOTIATE
type: constant
doc:
<comment>Description:</comment>
  支持 协商（Negotiate）身份验证。 自 PHP 7.3.0 和 cURL 7.10.6 起可用（自 7.38.0 起弃用）


id: CachingIterator::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new CachingIterator object for the iterator
  
  本函数还未编写文档，仅有参数列表。

<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
  
  本函数还未编写文档，仅有参数列表。
  
  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
  
  本函数还未编写文档，仅有参数列表。
  
  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
  
  本函数还未编写文档，仅有参数列表。
  
  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
  
  本函数还未编写文档，仅有参数列表。
  
  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
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: CachingIterator::key
type: function
doc:
<comment>Description:</comment>
  Return the key for the current element
  
  本函数还未编写文档，仅有参数列表。
  
  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
  
  本函数还未编写文档，仅有参数列表。
  
  Move the iterator forward.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: CachingIterator::offsetExists
type: function
doc:
<comment>Description:</comment>
  The offsetExists purpose
  
  本函数还未编写文档，仅有参数列表。

<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
  
  本函数还未编写文档，仅有参数列表。

<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
  
  本函数还未编写文档，仅有参数列表。

<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>  没有返回值。


id: CachingIterator::offsetUnset
type: function
doc:
<comment>Description:</comment>
  The offsetUnset purpose
  
  本函数还未编写文档，仅有参数列表。

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

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: CachingIterator::rewind
type: function
doc:
<comment>Description:</comment>
  Rewind the iterator
  
  本函数还未编写文档，仅有参数列表。
  
  Rewind the iterator.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: CachingIterator::setFlags
type: function
doc:
<comment>Description:</comment>
  The setFlags purpose
  
  本函数还未编写文档，仅有参数列表。
  
  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>  没有返回值。


id: CachingIterator::valid
type: function
doc:
<comment>Description:</comment>
  Check whether the current element is valid
  
  本函数还未编写文档，仅有参数列表。
  
  Check whether the current element is valid.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


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>
  用于代表 匿名函数 的类.
  
  匿名函数会产生这种类型的对象。这个类带有一些方法允许在匿名函数创建后对其进行更多的控制。
  
  除了此处列出的方法，还有一个 <return>__invoke</return> 方法。这是为了与其他实现了 __invoke()魔术方法 的对象保持一致
  性，但调用匿名函数的过程与它无关。


id: Closure::__construct
type: function
doc:
<comment>Description:</comment>
  用于禁止实例化的构造函数
  
  这个方法仅用于禁止实例化一个 <class>Closure</class> 类的对象。这个类的对象的创建方法写在 匿名函数 页。

<comment>See Also:</comment>
   * 匿名函数


id: Closure::bind
type: function
doc:
<comment>Description:</comment>
  用特定的绑定对象和类作用域复制闭包。
    
  
  这个方法是 Closure::bindTo 的静态版本。查看它的文档获取更多信息。

<comment>Param:</comment>
  <info>Closure</info>             <strong>$closure</strong>   需要绑定的匿名函数。
  <info>object|null</info>         <strong>$newThis</strong>   需要绑定到匿名函数的对象，或者 <info>null</info> 创建未绑定的闭包。
  <info>object|string|null</info>  <strong>$newScope</strong>  想要绑定给闭包的类作用域，或者 'static' 表示不改变。如果传入一个对
                                 象，则使用这个对象的类型名。 类作用域用来决定在闭包中 $this 对象的
                                 私有、保护方法 的可见性。 不允许内置类（的对象）作为参数传递。

<comment>Return:</comment>
  <info>Closure|null</info>  返回一个新的 <class>Closure</class> 对象，失败时返回 <info>null</info>。

<comment>See Also:</comment>
   * 匿名函数
   * Closure::bindTo


id: Closure::bindTo
type: function
doc:
<comment>Description:</comment>
  用特定的绑定对象和类作用域复制闭包。
    
  
  创建并返回一个 匿名函数， 它与当前对象的函数体相同、绑定了同样变量，但可以绑定不同的对象，也可以绑
  定新的类作用域。
  
  “绑定的对象”决定了函数体中的 <return>$this</return> 的取值，“类作用域”代表一个类型、决定在这个匿名函数中能够调用哪
  些 private 和 protected 的方法。 也就是说，此时 $this 可以调用的方法，与 <strong>$newScope</strong> 类的成员函数是
  相同的。
  
  静态闭包不能有绑定的对象（ <strong>$newThis</strong> 参数的值应该设为 <info>null</info>）不过仍然可以用 bindTo 方法来改变它们的
  类作用域。
  
  此函数确保对于非静态闭包，拥有绑定实例也意味着被限定作用域，反之亦然。 为此，非静态闭包给定一个
  <info>null</info> 实例的作用域可以使其变为静态， 非静态无作用域的闭包给定一个非 null 的实例作用在一个非指定类。
  
  如果你只是想要复制一个匿名函数，可以用 cloning 代替。

<comment>Param:</comment>
  <info>object|null</info>         <strong>$newThis</strong>   绑定给匿名函数的一个对象，或者 <info>null</info> 来取消绑定。
  <info>object|string|null</info>  <strong>$newScope</strong>  关联到匿名函数的类作用域，或者 'static' 保持当前状态。如果是一个对
                                 象，则使用这个对象的类型为新的类作用域。 这会决定绑定的对象的 保
                                 护、私有成员 方法的可见性。 不允许内部类（的对象）作为参数传递。

<comment>Return:</comment>
  <info>Closure|null</info>  返回新创建的 <class>Closure</class> 对象， 或者失败时返回 <info>null</info> 。

<comment>See Also:</comment>
   * 匿名函数
   * Closure::bind


id: Closure::call
type: function
doc:
<comment>Description:</comment>
  绑定并调用闭包
  
  暂时将闭包绑定到 <strong>$newThis</strong>，并使用任意给定的参数调用它。

<comment>Param:</comment>
  <info>object</info>  <strong>$newThis</strong>  在调用期间将闭包绑定到 <info>object</info>。
  <info>mixed</info>   <strong>$args</strong>     零个或多个参数，他们将作为参数传递给闭包。

<comment>Return:</comment>
  <info>mixed</info>  返回闭包的返回值。


id: Closure::fromCallable
type: function
doc:
<comment>Description:</comment>
  将 callable 转换为闭包
  
  使用当前范围从给定的 <strong>$callback</strong> 创建并返回一个新的  匿名函数。  此方法检查 <strong>$callback</strong> 函数在作用域是
  否可调用， 如果不能，就抛出 <class>TypeError</class>。
  
  从 PHP 8.1.0 开始，First-class 可调用语法 的语义与此方法相同。

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  要转换的回调。

<comment>Return:</comment>
  <info>Closure</info>  返回新创建的 <class>Closure</class>， 或者如果 <strong>$callback</strong> 在当前作用域无法调用， 则抛出 <class>TypeError</class>。

<comment>See Also:</comment>
   * 匿名函数
   * First-class 可调用语法


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
  
  面向对象风格
  
  过程化风格
  
  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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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
  
  面向对象风格
  
  过程化风格
  
  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> .
             
             此函数可能返回布尔值
             <info>false</info>，但也可能返回等同于 <info>false</info> 的非布尔值。请阅读 布尔类型章节以获取更多信息。应使用
             ===
             运算符来测试此函数的返回值。

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


id: Collator::create
type: function
doc:
<comment>Description:</comment>
  Create a collator
  
  面向对象风格
  
  过程化风格
  
  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
  
  面向对象风格
  
  过程化风格
  
  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, 或者在失败时返回 <info>false</info>.

<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
  
  面向对象风格
  
  过程化风格
  
  

<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, 或者在失败时返回 <info>false</info>.

<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
  
  面向对象风格
  
  过程化风格
  
  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, 或者在失败
                时返回 <info>false</info>.

<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
  
  面向对象风格
  
  过程化风格
  
  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
  
  面向对象风格
  
  过程化风格
  
  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,  或者在失败时返回 <info>false</info>.
                
                此函数可能返回布尔值
                <info>false</info>，但也可能返回等同于 <info>false</info> 的非布尔值。请阅读 布尔类型章节以获取更多信息。应使
                用
                ===
                运算符来测试此函数的返回值。

<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
  
  面向对象风格
  
  过程化风格
  
  

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

<comment>Return:</comment>
  <info>int</info>  Returns current collation strength, 或者在失败时返回 <info>false</info>.

<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
  
  面向对象风格
  
  过程化风格
  
  

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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
  
  面向对象风格
  
  过程化风格
  
  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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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
  
  面向对象风格
  
  过程化风格
  
  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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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
  
  面向对象风格
  
  过程化风格
  
  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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  总是返回 <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::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.
  
  本函数还未编写文档，仅有参数列表。

<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.
  
  本函数还未编写文档，仅有参数列表。

<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.
  
  本函数还未编写文档，仅有参数列表。

<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.
  
  本函数还未编写文档，仅有参数列表。

<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
  
  本函数还未编写文档，仅有参数列表。

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


id: ColumnResult::getCollationName
type: function
doc:
<comment>Description:</comment>
  Get collation name
  
  本函数还未编写文档，仅有参数列表。

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


id: ColumnResult::getColumnLabel
type: function
doc:
<comment>Description:</comment>
  Get column label
  
  本函数还未编写文档，仅有参数列表。

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


id: ColumnResult::getColumnName
type: function
doc:
<comment>Description:</comment>
  Get column name
  
  本函数还未编写文档，仅有参数列表。

<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.
  
  本函数还未编写文档，仅有参数列表。

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


id: ColumnResult::getLength
type: function
doc:
<comment>Description:</comment>
  Get column field length
  
  本函数还未编写文档，仅有参数列表。

<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.
  
  本函数还未编写文档，仅有参数列表。

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


id: ColumnResult::getTableLabel
type: function
doc:
<comment>Description:</comment>
  Get table label
  
  本函数还未编写文档，仅有参数列表。

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


id: ColumnResult::getTableName
type: function
doc:
<comment>Description:</comment>
  Get table name
  
  本函数还未编写文档，仅有参数列表。

<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
  
  本函数还未编写文档，仅有参数列表。

<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.
  
  本函数还未编写文档，仅有参数列表。

<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
  
  本函数还未编写文档，仅有参数列表。

<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
  
  本函数还未编写文档，仅有参数列表。

<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
  
  本函数还未编写文档，仅有参数列表。

<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
  
  本函数还未编写文档，仅有参数列表。

<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
  
  本函数还未编写文档，仅有参数列表。

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


id: CommonMark\Node\CodeBlock::__construct
type: function
doc:
<comment>Description:</comment>
  CodeBlock Construction
  
  本函数还未编写文档，仅有参数列表。

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


id: CommonMark\Node\Image::__construct
type: function
doc:
<comment>Description:</comment>
  Image Construction
  
  本函数还未编写文档，仅有参数列表。

<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
  
  本函数还未编写文档，仅有参数列表。

<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
  
  本函数还未编写文档，仅有参数列表。

<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
  
  本函数还未编写文档，仅有参数列表。

<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
  
  本函数还未编写文档，仅有参数列表。

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


id: CommonMark\Parser::finish
type: function
doc:
<comment>Description:</comment>
  Parsing
  
  本函数还未编写文档，仅有参数列表。

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


id: CommonMark\Parser::parse
type: function
doc:
<comment>Description:</comment>
  Parsing
  
  本函数还未编写文档，仅有参数列表。

<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
  
  本函数还未编写文档，仅有参数列表。

<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
  
  本函数还未编写文档，仅有参数列表。

<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::count
type: function
doc:
<comment>Description:</comment>
  统计对象的元素个数
  
  当在实现了 <class>Countable</class> 的对象上执行 <strong>count()</strong> 函数时，会执行此方法。

<comment>Return:</comment>
  <info>int</info>  <info>int</info> 形式的自定义计数。
       
       返回值强制转换为 <info>int</info>。


id: CrudOperationBindable::bind
type: function
doc:
<comment>Description:</comment>
  Bind value to placeholder
  
  Binds a value to a specific placeholder.
  
  本函数还未编写文档，仅有参数列表。

<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.
  
  本函数还未编写文档，仅有参数列表。

<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.
  
  本函数还未编写文档，仅有参数列表。

<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.
  
  本函数还未编写文档，仅有参数列表。

<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: DATE_ISO8601
type: constant
doc:
<comment>Description:</comment>
  ISO-8601 格式（示例：2005-08-15T15:52:01+0000）
  
  这种格式和 ISO-8601 格式并不兼容，只是出于向后兼容的原因才保留的。 如果要使用和 ISO-8601 兼容的格
  式，请使用 <info>DateTimeInterface::ISO8601_EXPANDED</info> 和 <info>DateTimeInterface::ATOM</info> 两个常量。 （参见
  ISO8601:2004 第 4.3.3 条 d 项）


id: DATE_ISO8601_EXPANDED
type: constant
doc:
<comment>Description:</comment>
  ISO-8601 扩大版（示例：+10191-07-26T08:59:52+01:00）
  
  通过始终包含符号字符，此格式允许超出 ISO-8601 正常范围（<return>0000</return>-<return>9999</return>）的年份。还解决了时区部分
  （<return>+01:00</return>）与 ISO-8601 兼容的问题。


id: DATE_RFC7231
type: constant
doc:
<comment>Description:</comment>
  RFC 7231 格式 (自 PHP 7.0.19 和 7.1.5 可用) (示例：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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


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>  没有返回值。

<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>  总是返回 <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>  没有返回值。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  没有返回值。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  没有返回值。

<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>  没有返回值。

<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>  没有返回值。

<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>  没有返回值。

<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>  没有返回值。

<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>  没有返回值。

<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>.  此节点出现在文档中，除非是用诸如
  <strong>DOMNode-&gt;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>. 此节点出现在文档中，除非是用诸如
  <strong>DOMNode-&gt;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>. 此节点出现在文档中，除非是用诸如
  <strong>DOMNode-&gt;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>. 此节点出现在文档中，除非是用诸如
  <strong>DOMNode-&gt;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>. 此节点出现在文档中，除非是用诸
  如
  <strong>DOMNode-&gt;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>. 此节点出现在文档中，除非是用诸如
  <strong>DOMNode-&gt;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. 此节点出现在文档中，除非是
  用诸如
  <strong>DOMNode-&gt;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>. 此节点出现在文档中，除非是用诸如
  <strong>DOMNode-&gt;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>. 此节点出现在文档中，除非是
  用诸如
  <strong>DOMNode-&gt;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>. 此节点出现在文档中，除非是用诸如
  <strong>DOMNode-&gt;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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  没有返回值。

<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>  没有返回值。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  没有返回值。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 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>  没有返回值。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


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>  没有返回值。

<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>  没有返回值。

<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>  没有返回值。

<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>  没有返回值。

<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>  没有返回值。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  没有返回值。

<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>  没有返回值。

<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>  没有返回值。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  没有返回值。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  没有返回值。

<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>  没有返回值。

<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>  没有返回值。

<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>  没有返回值。

<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>  没有返回值。

<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>  没有返回值。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  实现了 <class>Iterator</class> 或 <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 或者在失败时返回 <info>false</info>

<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 或者在失败时返回 <info>false</info>

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<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>  没有返回值。

<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>  实现了 <class>Iterator</class> 或 <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>  没有返回值。

<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>  没有返回值。

<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>  没有返回值。


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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


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>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


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>  没有返回值。

<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.
  
  本函数还未编写文档，仅有参数列表。

<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.
  
  本函数还未编写文档，仅有参数列表。

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


id: DateInterval
type: class
doc:
<comment>Description:</comment>
  表示时间间隔。
  
  时间间隔表示固定量的时间（多少年，月，天，小时等），也可以表示一个字符串格式的相对时间，当表示相对
  时间的时候，字符串格式是 <class>DateTimeImmutable</class> 和 <class>DateTime</class> 类的构造函数所支持的格式。
  
  更具体的说，<class>DateInterval</class> 类的对象中的信息是从一个日期/时间到另一个日期/时间的指令。这个过程并不始
  终可逆。
  
  创建 <class>DateInterval</class> 对象的常用方法是通过 DateTimeInterface::diff 计算两个日期/时间对象之间的差异。
  
  由于没有明确定义的方法来比较日期间隔，因此 <class>DateInterval</class> 实例是无法比较的。


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
  
  面向对象风格
  
  过程化风格
  
  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,  或者在失败时返回 <info>false</info>.


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::__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
    
  
  面向对象风格
  
  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
    
  
  面向对象风格
  
  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
  
  面向对象风格
  
  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
    
  
  面向对象风格
  
  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>
  日期和时间表示。
  
  此类与 <class>DateTimeImmutable</class> 行为相同。区别就是调用有修改行为的方法（比如 <strong>DateTime::modify()</strong>）时，会修
  改对象本身。
  
  在 <class>DateTime</class> 类的对象上调用方法会改变对象中封装的信息，如果想要避免这种情况，就得使用 <return>clone</return> 操作符
  创建新的对象。推荐使用 <class>DateTimeImmutable</class> 代替 <class>DateTime</class> 来获得这个默认行为。


id: DateTime::__construct
type: function
doc:
<comment>Description:</comment>
  返回新的 DateTime 对象
  
  跟 DateTimeImmutable::__construct 一样，但适用于 <class>DateTime</class>。Consider using the <class>DateTimeImmutable</class>
  and features instead.
  
  返回新的 DateTime 对象。

<comment>Param:</comment>
  <info>string</info>             <strong>$datetime</strong>  日期/时间字符串。正确格式的说明详见 日期与时间格式。
                                
                                如果这个参数为字符串 <return>"now"</return> 表示获取当前时间。 如果同时指定了
                                <strong>$timezone</strong> 参数，那么获取指定时区的当前时间。
  <info>DateTimeZone|null</info>  <strong>$timezone</strong>  <class>DateTimeZone</class> 对象表示 <strong>$datetime</strong> 的时区。
                                
                                如果省略了 <strong>$timezone</strong> 参数或者传递 <info>null</info>， 那么会使用当前时区。
                                
                                当 <strong>$datetime</strong> 参数是 UNIX 时间戳（例如 <return>@946684800</return>），或者已经包含时区
                                信息（例如 <return>2010-01-28T15:00:00+02:00</return>）的时候，<strong>$timezone</strong> 参数和当前时
                                区都将被忽略。

<comment>Return:</comment>
  <info>unknown</info>  返回一个新的 DateTime 对象实例，或者在发生错误的时候返回

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


id: DateTime::__set_state
type: function
doc:
<comment>Description:</comment>
  __set_state 处理程序
  
  __set_state() 处理程序。
  
  跟 DateTimeImmutable::__set_state 一样，但适用于 <class>DateTime</class>。

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  数组初始化。

<comment>Return:</comment>
  <info>DateTime</info>  返回 DateTime 对象实例。


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>
  修改 DateTime 对象，增加天、月、年、小时、分钟以及秒的数量。
    
  
  面向对象风格
  
  过程化风格
  
  将指定的 <class>DateInterval</class> 对象到 <class>DateTime</class> 对象。
  
  跟 DateTimeImmutable::add一样，但适用于 <class>DateTime</class>。
  
  过程化版本将 <class>DateTime</class> 对象作为它的第一个参数。

<comment>Param:</comment>
  <info>DateTime</info>      <strong>$object</strong>    仅过程化风格：由 <strong>date_create()</strong> 返回的 <class>DateTime</class> 类型的对象。此函数会修改这
                           个对象。
  <info>DateInterval</info>  <strong>$interval</strong>  <class>DateInterval</class> 对象。

<comment>Return:</comment>
  <info>DateTime</info>  返回方法链修改后的 <class>DateTime</class> 对象。

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::add()</strong>


id: DateTime::createFromFormat
type: function
doc:
<comment>Description:</comment>
  根据指定格式解析时间字符串
  
  面向对象风格
  
  过程化风格
  
  返回新的 DateTime 对象，该对象是通过指定 <strong>$format</strong> 将表示日期和时间的 <strong>$datetime</strong> 格式化生成。
  
  类似于 DateTimeImmutable::createFromFormat 和 <strong>date_create_immutable_from_format()</strong>，但创建的是
  <class>DateTime</class> 对象。
  
  此方法（包括参数、示例和注意事项）记录在 DateTimeImmutable::createFromFormat 页面上。

<comment>Return:</comment>
  <info>DateTime|false</info>  返回 DateTime 对象 或者在失败时返回 <info>false</info>。

<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>
  返回两个 DateTime 之间的差值
  
  面向对象风格
  
  过程化风格
  
  返回两个 <class>DateTimeInterface</class> 对象的差值。

<comment>Param:</comment>
  <info></info>      <strong>$datetime</strong>  要比较的日期。
  <info>bool</info>  <strong>$absolute</strong>  间隔是否强制为正的？

<comment>Return:</comment>
  <info>DateInterval</info>  <class>DateInterval</class> 对象表示两个日期之间的差值。
                
                返回更具体的表示应用于原始对象（<strong>$this</strong> 或 <strong>$originObject</strong>）到达 <strong>$targetObject</strong> 的时钟时
                间间隔的值。该过程始终不可逆。
                
                该方法知道 DST 转换，因此可以根据示例返回 <return>24 小时 30 分钟</return>的时间间隔。如果想使用绝对
                时间计算，则需要先将 <strong>$this</strong>/<strong>$baseObject</strong> 和 <strong>$targetObject</strong> 都转换为 UTC。

<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>
  按照指定格式返回格式化后的日期
  
  面向对象风格
  
  过程化风格
  
  按照指定格式返回格式化后的日期。

<comment>Param:</comment>
  <info>DateTimeInterface</info>  <strong>$object</strong>  仅为过程化风格：由 <strong>date_create()</strong> 返回的 <class>DateTime</class> 类型的对象。
  <info>string</info>             <strong>$format</strong>  输出的日期 <info>string</info> 的格式。参见下面的格式化选项。也有几个预定义日期常量
                              可以代替。例如 <info>DATE_RSS</info> 包含格式化字符串 <return>'D, d M Y H:i:s'</return>。
                              
                              <strong>$format</strong> 参数字符串可以识别以下字符<strong>$format</strong> 字符说明返回值示例日
                              ------<return>d</return>月份中的第几天，有补零的两位数字<return>01</return> 到 <return>31</return><return>D</return>文字表示星期几，三个字
                              母<return>Mon</return> 到 <return>Sun</return><return>j</return>月份中的第几天，没有补零<return>1</return> 到 <return>31</return><return>l</return>（小写 'L'）完整文本表示
                              星期几<return>Sunday</return> 到 <return>Saturday</return><return>N</return>ISO 8601 数字表示星期几<return>1</return>（星期一）到 <return>7</return>（星期
                              天）<return>S</return>月份中的第几天英文后缀，两个字符<return>st</return>、<return>nd</return>、<return>rd</return> 或 <return>th</return>。可以和 <return>j</return> 一起使
                              用 <return>w</return>数字表示星期几<return>0</return>（星期天）到 <return>6</return>（星期六）<return>z</return>一年中的第几天（从 0 开
                              始）<return>0</return> 到 <return>365</return>周------<return>W</return>ISO 8601 格式当年中的第几周，每周从周一开始示例：
                              <return>42</return>（当年的第 42 周）月------<return>F</return>月份的完整文本表示，比如 January 或者
                              March<return>January</return> 到 <return>December</return><return>m</return>月份的数字表示，补零<return>01</return> 到 <return>12</return><return>M</return>简短文本表示月
                              份，三个字母<return>Jan</return> 到 <return>Dec</return><return>n</return>数字表示几月份，不补零<return>1</return> 到 <return>12</return><return>t</return>指定月份的天数<return>28</return>
                              到 <return>31</return>年------<return>L</return>是否是闰年如果是闰年为 <return>1</return>，否则为 <return>0</return>。<return>o</return>ISO 8601 数字年份表
                              示。这和 <return>Y</return> 值相同，但如果 ISO 周数（<return>W</return>）属于上一年或者下一年，则用那一
                              年。示例：<return>1999</return> 或 <return>2003</return><return>X</return>年份的展开全数字表示，至少四位，<return>-</return> 表示公元前，<return>+</return>
                              表示公元。示例：<return>-0055</return>、<return>+0787</return>、 <return>+1999</return>、<return>+10191</return><return>x</return>如果需要，年份可以展开全
                              数字表示，如果可能的话，也可以用标准的全数字（<return>Y</return>）表示。至少有四位数
                              字。公元前以 <return>-</return> 为前缀，年份不小于 <return>10000</return> 时以 <return>+</return> 为前缀。示例：<return>-0055</return>,
                              <return>0787</return>, <return>1999</return>, <return>+10191</return><return>Y</return>年份完整数字表示，至少四位，使用 <return>-</return> 表示公元前。示
                              例：<return>-0055</return>、<return>0787</return>、 <return>1999</return>、<return>2003</return>、<return>10191</return> <return>y</return>两位数的年份表示示例：<return>99</return> 或 <return>03</return>时
                              间------<return>a</return>小写的上午和下午<return>am</return> 或 <return>pm</return><return>A</return>大写的上午和下午<return>AM</return> 或 <return>PM</return><return>B</return>Swatch 互联
                              网时间<return>000</return> 到 <return>999</return><return>g</return>不补零的小时（12 小时制）<return>1</return> 到 <return>12</return><return>G</return>不补零的小时（24 小
                              时制）<return>0</return> 到 <return>23</return><return>h</return>补零的小时（12 小时制）<return>01</return> 到 <return>12</return><return>H</return>补零的小时（24 小时制）
                              <return>00</return> 到 <return>23</return><return>i</return>补零的分钟<return>00</return> 到 <return>59</return><return>s</return>补零的秒<return>00</return> 到 <return>59</return><return>u</return> 微秒。注意 <strong>date()</strong> 总是生
                              成 <return>000000</return>，因为它需要一个 <info>int</info> 参数，而如果 <class>DateTime</class> 是使用微秒创建的，
                              则 DateTime::format 支持微秒。 示例：<return>654321</return><return>v</return> 毫秒。与 <return>u</return> 的说明相同。
                              示例：<return>654</return>时区------<return>e</return>时区标识符示例：<return>UTC</return>、<return>GMT</return>、<return>Atlantic/Azores</return><return>I</return>（大写
                              i）是否为夏令时如果是夏令时为 <return>1</return>，否则为 <return>0</return>。<return>O</return>跟格林尼治时间（GMT）的差
                              异，小时和分钟时间没有冒号示例：<return>+0200</return><return>P</return>跟格林尼治时间（GMT）的差异，小
                              时和分钟时间有冒号示例：<return>+02:00</return><return>p</return> 跟 <return>P</return> 相同，区别是使用 <return>Z</return> 替换 <return>+00:00</return> 返
                              回（PHP 8.0.0 起可用） 示例：<return>Z</return> 或 <return>+02:00</return><return>T</return>如果知道会返回时区缩写，否则
                              返回 GMT 时差。示例：<return>EST</return>、<return>MDT</return>、<return>+05</return><return>Z</return>以秒为单位的时差。UTC 以西的时区为
                              负的时差，以东为正的时差。<return>-43200</return> 到 <return>50400</return>完整日期/时间------<return>c</return>ISO 8601
                              日期2004-02-12T15:19:21+00:00<return>r</return>RFC 2822/RFC 5322 格式化时间示例：<return>Thu,
                              21 Dec 2000 16:01:07 +0200</return><return>U</return>从 Unix 纪元（January 1 1970 00:00:00 GMT）
                              到至今的秒数参见 <strong>time()</strong>
                              
                              格式字符串中无法识别的字符将会原样打印。当使用 <strong>gmdate()</strong> 时，<return>Z</return> 格式将始
                              终返回 <return>0</return>。
                              
                              由于本函数仅接受 <info>int</info> 类型时间戳，所以 <return>u</return> 格式化标识符仅在用户使用
                              <strong>date_create()</strong> 且使用 <strong>date_format()</strong> 创建时间戳时才有用。

<comment>Return:</comment>
  <info>string</info>  成功时返回格式化后的日期字符串。

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


id: DateTime::getLastErrors
type: function
doc:
<comment>Description:</comment>
  别名 DateTimeImmutable::getLastErrors
  
  此函数是该函数的别名： DateTimeImmutable::getLastErrors


id: DateTime::getOffset
type: function
doc:
<comment>Description:</comment>
  返回时差
  
  面向对象风格
  
  过程化风格
  
  返回时差。

<comment>Param:</comment>
  <info>DateTimeInterface</info>  <strong>$object</strong>  仅为过程化风格：由 <strong>date_create()</strong> 返回的 <class>DateTime</class> 类型的对象。

<comment>Return:</comment>
  <info>int</info>  成功时返回与 UTC 之间的时差（以秒为单位）。


id: DateTime::getTimestamp
type: function
doc:
<comment>Description:</comment>
  获取 Unix 时间戳
  
  面向对象风格
  
  过程化风格
  
  获取 Unix 时间戳。

<comment>Return:</comment>
  <info>int</info>  返回表示日期的 Unix 时间戳。

<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>
  返回相对于指定 DateTime 的时区
  
  面向对象风格
  
  过程化风格
  
  返回相对于指定 DateTime 的时区。

<comment>Param:</comment>
  <info>DateTimeInterface</info>  <strong>$object</strong>  仅为过程化风格：由 <strong>date_create()</strong> 返回的 <class>DateTime</class> 类型的对象。

<comment>Return:</comment>
  <info>DateTimeZone|false</info>  成功时返回 <class>DateTimeZone</class> 对象 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>DateTime::setTimezone()</strong>


id: DateTime::modify
type: function
doc:
<comment>Description:</comment>
  修改日期时间对象的值
  
  面向对象风格
  
  过程化风格
  
  通过 <strong>DateTimeImmutable::__construct()</strong> 能够接受的格式，对 Datetime 对象的时间戳进行修改（自增或者自
  减）。

<comment>Param:</comment>
  <info>DateTime</info>  <strong>$object</strong>    仅过程化风格：由 <strong>date_create()</strong> 返回的 <class>DateTime</class> 类型的对象。此函数会修改这个对
                       象。
  <info>string</info>    <strong>$modifier</strong>  日期/时间字符串。正确格式的说明详见 日期与时间格式。

<comment>Return:</comment>
  <info>DateTime|false</info>  返回方法链修改后的 <class>DateTime</class> 对象， 或者在失败时返回 <info>false</info>。

<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>
  设置日期
  
  面向对象风格
  
  过程化风格
  
  将 DateTime 对象的当前日期重置为其它日期。
  
  跟 DateTimeImmutable::setDate 一样，但适用于 <class>DateTime</class>，且更改现有对象。
  
  过程化版本将 <class>DateTime</class> 对象作为第一个参数。

<comment>Param:</comment>
  <info>DateTime</info>  <strong>$object</strong>  仅过程化风格：由 <strong>date_create()</strong> 返回的 <class>DateTime</class> 类型的对象。此函数会修改这个对
                     象。
  <info>int</info>       <strong>$year</strong>    年份。
  <info>int</info>       <strong>$month</strong>   月份。
  <info>int</info>       <strong>$day</strong>     日。

<comment>Return:</comment>
  <info>DateTime</info>  返回方法链修改后的 <class>DateTime</class> 对象。

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::setDate()</strong>


id: DateTime::setISODate
type: function
doc:
<comment>Description:</comment>
  设置 ISO 日期
  
  面向对象风格
  
  过程化风格
  
  根据 ISO 8601 规范设置日期，使用周和日的偏移量，而不是使用指定日期。
  
  跟 DateTimeImmutable::setISODate 一样，但适用于 <class>DateTime</class>。
  
  过程化版本将 <class>DateTime</class> 对象作为第一个参数。

<comment>Param:</comment>
  <info>DateTime</info>  <strong>$object</strong>     仅过程化风格：由 <strong>date_create()</strong> 返回的 <class>DateTime</class> 类型的对象。此函数会修改这个
                        对象。
  <info>int</info>       <strong>$year</strong>       年份。
  <info>int</info>       <strong>$week</strong>       周。
  <info>int</info>       <strong>$dayOfWeek</strong>  从周的第一天计算，日在一周内的偏移量。

<comment>Return:</comment>
  <info>DateTime</info>  返回方法链修改后的 <class>DateTime</class> 对象。

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::setISODate()</strong>


id: DateTime::setTime
type: function
doc:
<comment>Description:</comment>
  设置时间
  
  面向对象风格
  
  过程化风格
  
  将 DateTime 的当前时间重置为不同的时间。
  
  跟 DateTimeImmutable::setTime 一样，但适用于 <class>DateTime</class>。
  
  过程化版本将 <class>DateTime</class> 对象作为第一个参数。

<comment>Param:</comment>
  <info>DateTime</info>  <strong>$object</strong>       仅过程化风格：由 <strong>date_create()</strong> 返回的 <class>DateTime</class> 类型的对象。此函数会修改这
                          个对象。
  <info>int</info>       <strong>$hour</strong>         时间中的小时。
  <info>int</info>       <strong>$minute</strong>       时间中的分钟。
  <info>int</info>       <strong>$second</strong>       时间中的秒。
  <info>int</info>       <strong>$microsecond</strong>  时间中的微秒。

<comment>Return:</comment>
  <info>DateTime</info>  返回方法链修改后的 <class>DateTime</class> 对象。

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::setTime()</strong>


id: DateTime::setTimestamp
type: function
doc:
<comment>Description:</comment>
  以 Unix 时间戳的方式设置日期和时间
  
  面向对象风格
  
  过程化风格
  
  以 Unix 时间戳的方式设置日期和时间。
  
  跟 DateTimeImmutable::setTimestamp 一样，但适用于 <class>DateTime</class>。
  
  过程化版本将 <class>DateTime</class> 对象作为第一个参数。

<comment>Param:</comment>
  <info>DateTime</info>  <strong>$object</strong>     仅过程化风格：由 <strong>date_create()</strong> 返回的 <class>DateTime</class> 类型的对象。此函数会修改这个
                        对象。
  <info>int</info>       <strong>$timestamp</strong>  代表日期的 Unix 时间戳。DateTimeImmutable::modify 使用 <return>@</return> 格式可以设置范围超
                        过 <info>int</info> 的时间戳。

<comment>Return:</comment>
  <info>DateTime</info>  返回方法链修改后的 <class>DateTime</class> 对象。

<comment>See Also:</comment>
   * <strong>DateTimeImmutable::setTimestamp()</strong>


id: DateTime::setTimezone
type: function
doc:
<comment>Description:</comment>
  设置 DateTime 对象的时区
  
  面向对象风格
  
  过程化风格
  
  为 <class>DateTime</class> <info>object</info> 设置新时区。
  
  跟 DateTimeImmutable::setTimezone 一样，但适用于 <class>DateTime</class>。
  
  过程化版本将 <class>DateTime</class> 对象作为第一个参数。

<comment>Param:</comment>
  <info>DateTime</info>      <strong>$object</strong>    仅过程化风格：由 <strong>date_create()</strong> 返回的 <class>DateTime</class> 类型的对象。此函数会修改这
                           个对象。
  <info>DateTimeZone</info>  <strong>$timezone</strong>  代表所需时区的 <class>DateTimeZone</class> 对象。

<comment>Return:</comment>
  <info>DateTime</info>  返回链式调用的 <class>DateTime</class> 对象。调用此方法时，底层的时间点不会更改。

<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>
  对 DateTime 对象减去一定量的日、月、年、小时、分钟和秒。
    
  
  面向对象风格
  
  过程化风格
  
  对指定 DateTime 对象，减去指定 <class>DateInterval</class> 对象。
  
  跟 DateTimeImmutable::sub 一样，但适用于 <class>DateTime</class>。
  
  过程化版本将 <class>DateTime</class> 对象作为第一个参数。

<comment>Param:</comment>
  <info>DateTime</info>      <strong>$object</strong>    仅过程化风格：由 <strong>date_create()</strong> 返回的 <class>DateTime</class> 类型的对象。此函数会修改这
                           个对象。
  <info>DateInterval</info>  <strong>$interval</strong>  <class>DateInterval</class> 对象

<comment>Return:</comment>
  <info>DateTime</info>  返回方法链修改后的 <class>DateTime</class> 对象。

<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
  
  面向对象风格
  
  过程化风格
  
  Returns new a DateTimeImmutable object.

<comment>Param:</comment>
  <info>string</info>             <strong>$datetime</strong>  日期/时间字符串。正确格式的说明详见 日期与时间格式。
                                
                                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>  返回带有修改数据的新 <class>DateTimeImmutable</class> 对象。

<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
  
  面向对象风格
  
  过程化风格
  
  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 或者在失败时返回 <info>false</info>.

<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>  日期/时间字符串。正确格式的说明详见 日期与时间格式。

<comment>Return:</comment>
  <info>DateTimeImmutable|false</info>  Returns a new modified DateTimeImmutable object 或者在失败时返回 <info>false</info>.

<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>  仅过程化风格：由 <strong>date_create()</strong> 返回的 <class>DateTime</class> 类型的对象。此函数会修改这个对象。
  <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>  返回带有修改数据的新 <class>DateTimeImmutable</class> 对象。

<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>  返回带有修改数据的新 <class>DateTimeImmutable</class> 对象。

<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>  返回带有修改数据的新 <class>DateTimeImmutable</class> 对象。

<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>  返回带有修改数据的新 <class>DateTimeImmutable</class> 对象。

<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>  返回带有修改数据的新 <class>DateTimeImmutable</class> 对象。

<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 是为了让参数、返回值、属性类型声明能够接受 <class>DateTimeImmutable</class> 或 <class>DateTime</class> 作
  为值。不可以使用用户定义的类实现该接口。
  
  此接口也定义了公共常量，允许通过 DateTimeImmutable::format 和 DateTime::format 格式化
  <class>DateTimeImmutable</class> 或 <class>DateTime</class> 对象。


id: DateTimeZone::__construct
type: function
doc:
<comment>Description:</comment>
  创建新的DateTimeZone对象
  
  面向对象风格
  
  过程化风格
  
  创建新的 DateTimeZone 对象。
  
  DateTimeZone 对象提供了对三种不同类型的时区规则访问。UTC 时差（类型 <return>1</return>）、时区缩写（类型 <return>2</return>）、IANA
  时区数据库中公布的时区标识符（类型 <return>3</return>）。
  
  DateTimeZone 对象可以附加到 <class>DateTime</class> 和 <class>DateTimeImmutable</class> 对象上，以便能够在本地时区呈现这些对象所
  封装的时区。

<comment>Param:</comment>
  <info>string</info>  <strong>$timezone</strong>  所支持的时区名之一，时差（+0200）或时区缩写（BSD）。

<comment>Return:</comment>
  <info>DateTimeZone|false</info>  成功时返回 <class>DateTimeZone</class> 对象。 过程化风格在失败时返回 <info>false</info>。


id: DateTimeZone::getLocation
type: function
doc:
<comment>Description:</comment>
  返回与时区相关的定位信息
  
  面向对象风格
  
  过程化风格
  
  返回时区的位置信息，包含国家代码，经纬度和注释。

<comment>Param:</comment>
  <info>DateTimeZone</info>  <strong>$object</strong>  仅过程化风格：由 <strong>timezone_open()</strong> 返回的
                         <class>DateTimeZone</class> 对象。

<comment>Return:</comment>
  <info>array|false</info>  包含时区的位置信息的数组 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>DateTimeZone::listIdentifiers()</strong>，以获得所有支持的时区标识符的完整或部分列表


id: DateTimeZone::getName
type: function
doc:
<comment>Description:</comment>
  返回时区名称
  
  面向对象风格
  
  过程化风格
  
  返回时区名称。

<comment>Param:</comment>
  <info>DateTimeZone</info>  <strong>$object</strong>  要获得名称的 <class>DateTimeZone</class>。

<comment>Return:</comment>
  <info>string</info>  根据区域类型、UTC 时差（类型 1）、时区缩写（类型 2）和 IANA 时区数据库发布的时区标识符（类
          型 3），描述符字符串使用相同时差和/或规则创建新的 <class>DateTimeZone</class>。例如：<return>02:00</return>、<return>CEST</return> 或者 时
          区列表中的其中一个时区名称。


id: DateTimeZone::getOffset
type: function
doc:
<comment>Description:</comment>
  返回相对于 GMT 的时差
  
  面向对象风格
  
  过程化风格
  
  该函数返回参数 <strong>$datetime</strong> 中指定的日期/时间相对于 GMT 的时差。GMT 时差是通过 DateTimeZone 对象的时
  区信息计算出来的。

<comment>Param:</comment>
  <info>DateTimeZone</info>       <strong>$object</strong>    仅过程化风格：由 <strong>timezone_open()</strong> 返回的
                                <class>DateTimeZone</class> 对象。
  <info>DateTimeInterface</info>  <strong>$datetime</strong>  用来计算时差的 DateTime，其包含日期/时间。

<comment>Return:</comment>
  <info>int</info>  成功时返回精确到秒的时差， 或者在失败时返回 <info>false</info>。


id: DateTimeZone::getTransitions
type: function
doc:
<comment>Description:</comment>
  Returns all transitions for the timezone
  
  面向对象风格
  
  过程化风格

<comment>Param:</comment>
  <info>DateTimeZone</info>  <strong>$object</strong>          仅过程化风格：由 <strong>timezone_open()</strong> 返回的
                                 <class>DateTimeZone</class> 对象。
  <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,  或者在失败时返
               回 <info>false</info>. 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>
  返回一个包含 dst (夏令时)，时差和时区信息的关联数组。
  
  面向对象风格
  
  过程化风格
  
  返回简写列表，包含历史上所有使用过的简写，这可能会导致既正确又混乱的条目。也会存在冲突，比如 <return>PST</return>
  在美国和菲律宾都在有使用。
  
  因此函数返回的列表不适合构建为带选项的数组，以便向用户提供时区选择。
  
  出于性能考虑，会预先编译此函数的数据。在使用较新的 timezonedb 时不会更新。

<comment>Return:</comment>
  <info>array</info>  返回时区简写数组。

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


id: DateTimeZone::listIdentifiers
type: function
doc:
<comment>Description:</comment>
  返回包含了所有时区标识符的数字索引数组
  
  面向对象风格
  
  过程化风格

<comment>Param:</comment>
  <info>int</info>          <strong>$timezoneGroup</strong>  <class>DateTimeZone</class> 类中的常量之一（或组合）。
  <info>string|null</info>  <strong>$countryCode</strong>    国家代码，兼容 ISO 3166-1 的两个大写字母。
                               
                               只有当 <strong>$timezoneGroup</strong> 设置为 <info>DateTimeZone::PER_COUNTRY</info> 时,该选项才会
                               被使用。

<comment>Return:</comment>
  <info>array</info>  返回时区标识符的数组。只会返回没有过时的元素。要获取包含过时时区标识符的所有元素，使用
         <return>DateTimeZone::ALL_WITH_BC</return> 作为 <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>
  <class>Directory</class> 实例是通过调用 <strong>dir()</strong> 函数创建的，而不是 new 操作符。


id: Directory::read
type: function
doc:
<comment>Description:</comment>
  从目录句柄中读取条目

<comment>Return:</comment>
  <info>string|false</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>  没有返回值。

<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>  没有返回值。

<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>  没有返回值。

<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>  没有返回值。


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>  没有返回值。


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>  没有返回值。


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>  没有返回值。


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>  没有返回值。


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>  没有返回值。


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>  没有返回值。


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>  没有返回值。. 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>  没有返回值。


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>  在第一个参数小于，等于或大于第二个参数时，该比较函数必须相应地返回一个小
                         于，等于或大于 0 的整数。
                         
                         从比较函数中返回非整数值，例如 <info>float</info>，将导致内部强制转换为 callback 返回值
                         为 <info>int</info>。因此，诸如 <return>0.99</return> 和 <return>0.1</return> 之类的值都将被转换为整数值 <return>0</return>，将这些值比较的
                         话将会是相等。

<comment>Return:</comment>
  <info>void</info>  没有返回值。


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>  在第一个参数小于，等于或大于第二个参数时，该比较函数必须相应地返回一个小
                         于，等于或大于 0 的整数。
                         
                         从比较函数中返回非整数值，例如 <info>float</info>，将导致内部强制转换为 callback 返回值
                         为 <info>int</info>。因此，诸如 <return>0.99</return> 和 <return>0.1</return> 之类的值都将被转换为整数值 <return>0</return>，将这些值比较的
                         话将会是相等。

<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>  没有返回值。


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>  没有返回值。


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>  没有返回值。


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>  没有返回值。


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>  在第一个参数小于，等于或大于第二个参数时，该比较函数必须相应地返回一个小
                         于，等于或大于 0 的整数。
                         
                         从比较函数中返回非整数值，例如 <info>float</info>，将导致内部强制转换为 callback 返回值
                         为 <info>int</info>。因此，诸如 <return>0.99</return> 和 <return>0.1</return> 之类的值都将被转换为整数值 <return>0</return>，将这些值比较的
                         话将会是相等。

<comment>Return:</comment>
  <info>void</info>  没有返回值。


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>  在第一个参数小于，等于或大于第二个参数时，该比较函数必须相应地返回一个小
                         于，等于或大于 0 的整数。
                         
                         从比较函数中返回非整数值，例如 <info>float</info>，将导致内部强制转换为 callback 返回值
                         为 <info>int</info>。因此，诸如 <return>0.99</return> 和 <return>0.1</return> 之类的值都将被转换为整数值 <return>0</return>，将这些值比较的
                         话将会是相等。

<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>  没有返回值。


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>  没有返回值。


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>  没有返回值。


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.


id: Ds\Map::sort
type: function
doc:
<comment>Description:</comment>
  Sorts the map in-place by value
   
  
  Sorts the map in-place by value, using an optional <strong>$comparator</strong> function.

<comment>Param:</comment>
  <info>callable</info>  <strong>$comparator</strong>  在第一个参数小于，等于或大于第二个参数时，该比较函数必须相应地返回一个小
                         于，等于或大于 0 的整数。
                         
                         从比较函数中返回非整数值，例如 <info>float</info>，将导致内部强制转换为 callback 返回值
                         为 <info>int</info>。因此，诸如 <return>0.99</return> 和 <return>0.1</return> 之类的值都将被转换为整数值 <return>0</return>，将这些值比较的
                         话将会是相等。

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\Map::sorted
type: function
doc:
<comment>Description:</comment>
  Returns a copy, sorted by value
  
  Returns a copy, sorted by value using an optional <strong>$comparator</strong> function.

<comment>Param:</comment>
  <info>callable</info>  <strong>$comparator</strong>  在第一个参数小于，等于或大于第二个参数时，该比较函数必须相应地返回一个小
                         于，等于或大于 0 的整数。
                         
                         从比较函数中返回非整数值，例如 <info>float</info>，将导致内部强制转换为 callback 返回值
                         为 <info>int</info>。因此，诸如 <return>0.99</return> 和 <return>0.1</return> 之类的值都将被转换为整数值 <return>0</return>，将这些值比较的
                         话将会是相等。

<comment>Return:</comment>
  <info>Ds\Map</info>  Returns a copy of the map, sorted by value.


id: Ds\Map::sum
type: function
doc:
<comment>Description:</comment>
  Returns the sum of all values in the map
  
  Returns the sum of all values in the map.
  
  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 map as either a <info>float</info> or <info>int</info> depending on the values
             in the map.


id: Ds\Map::toArray
type: function
doc:
<comment>Description:</comment>
  Converts the map to an array
    
  
  Converts the map to an <info>array</info>.
  
  Maps where non-scalar keys are can't be converted to an <info>array</info>.
  
  An <info>array</info> will treat all numeric keys as integers, eg. "1" and 1 as keys in the map will only
  result in 1 being included in the array.
  
  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 map.


id: Ds\Map::union
type: function
doc:
<comment>Description:</comment>
  Creates a new map using values from the current instance and another map
  
  Creates a new map that contains the pairs of the current instance as well as the pairs of another
  <strong>$map</strong>.
  
  A ∪ B = {x: x ∈ A ∨ x ∈ B}
  
  Values of the current instance will be overwritten by those provided where keys are equal.

<comment>Param:</comment>
  <info>Ds\Map</info>  <strong>$map</strong>  The other map, to combine with the current instance.

<comment>Return:</comment>
  <info>Ds\Map</info>  A new map containing all the pairs of the current instance as well as another <strong>$map</strong>.

<comment>See Also:</comment>
   * Union on Wikipedia


id: Ds\Map::values
type: function
doc:
<comment>Description:</comment>
  Returns a sequence of the map's values
  
  Returns a sequence containing all the values of the map, in the same order.

<comment>Return:</comment>
  <info>Ds\Sequence</info>  A <class>Ds\Sequence</class> containing all the values of the map.


id: Ds\Map::xor
type: function
doc:
<comment>Description:</comment>
  Creates a new map using keys of either the current instance or of another map, but not of both
  
  Creates a new map containing keys of the current instance as well as another <strong>$map</strong>, but not of
  both.
  
  A ⊖ B = {x : x ∈ (A \ B) ∪ (B \ A)}

<comment>Param:</comment>
  <info>Ds\Map</info>  <strong>$map</strong>  The other map.

<comment>Return:</comment>
  <info>Ds\Map</info>  A new map containing keys in the current instance as well as another <strong>$map</strong>, but not in
          both.

<comment>See Also:</comment>
   * Symmetric Difference on Wikipedia


id: Ds\Pair
type: class
doc:
<comment>Description:</comment>
  A pair is used by <class>Ds\Map</class> to pair keys with values.


id: Ds\Pair::__construct
type: function
doc:
<comment>Description:</comment>
  Creates a new instance
  
  Creates a new instance using a given <strong>$key</strong> and <strong>$value</strong>.

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


id: Ds\Pair::clear
type: function
doc:
<comment>Description:</comment>
  Removes all values
  
  Removes all values from the pair.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\Pair::copy
type: function
doc:
<comment>Description:</comment>
  Returns a shallow copy of the pair
  
  Returns a shallow copy of the pair.

<comment>Return:</comment>
  <info>Ds\Pair</info>  Returns a shallow copy of the pair.


id: Ds\Pair::isEmpty
type: function
doc:
<comment>Description:</comment>
  Returns whether the pair is empty
  
  Returns whether the pair is empty.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the pair is empty, <info>false</info> otherwise.


id: Ds\Pair::toArray
type: function
doc:
<comment>Description:</comment>
  Converts the pair to an array
    
  
  Converts the pair 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 pair.


id: Ds\PriorityQueue
type: class
doc:
<comment>Description:</comment>
  A PriorityQueue is very similar to a Queue. Values are pushed into the queue with an assigned
  priority, and the value with the highest priority will always be at the front of the queue.
  
  Implemented using a max heap.
  
  "First in, first out" ordering is preserved for values with the same priority.
  
  Iterating over a PriorityQueue is destructive, equivalent to successive pop operations until the
  queue is empty.


id: Ds\PriorityQueue::clear
type: function
doc:
<comment>Description:</comment>
  Removes all values
  
  Removes all values from the queue.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\PriorityQueue::copy
type: function
doc:
<comment>Description:</comment>
  Returns a shallow copy of the queue
  
  Returns a shallow copy of the queue.

<comment>Return:</comment>
  <info>Ds\PriorityQueue</info>  Returns a shallow copy of the queue.


id: Ds\PriorityQueue::count
type: function
doc:
<comment>Description:</comment>
  Returns the number of values in the queue
  
  See <strong>Countable::count()</strong>


id: Ds\PriorityQueue::isEmpty
type: function
doc:
<comment>Description:</comment>
  Returns whether the queue is empty
  
  Returns whether the queue is empty.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the queue is empty, <info>false</info> otherwise.


id: Ds\PriorityQueue::peek
type: function
doc:
<comment>Description:</comment>
  Returns the value at the front of the queue
  
  Returns the value at the front of the queue, but does not remove it.

<comment>Return:</comment>
  <info>mixed</info>  The value at the front of the queue.


id: Ds\PriorityQueue::pop
type: function
doc:
<comment>Description:</comment>
  Removes and returns the value with the highest priority
  
  Removes and returns the value at the front of the queue, ie. the value with the highest priority.
  
  Values with equal priority fall back to FIFO (first in first out).

<comment>Return:</comment>
  <info>mixed</info>  The removed value which was at the front of the queue.


id: Ds\PriorityQueue::push
type: function
doc:
<comment>Description:</comment>
  Pushes values into the queue
  
  Pushes a <strong>$value</strong> with a given <strong>$priority</strong> into the queue.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>     The value to push into the queue.
  <info>int</info>    <strong>$priority</strong>  The priority associated with the value.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\PriorityQueue::toArray
type: function
doc:
<comment>Description:</comment>
  Converts the queue to an array
    
  
  Converts the queue to an <info>array</info>.
  
  This method is not destructive.
  
  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 queue.


id: Ds\Queue
type: class
doc:
<comment>Description:</comment>
  A Queue is a “first in, first out” or “FIFO” collection that only allows access to the value at
  the front of the queue and iterates in that order, destructively.


id: Ds\Queue::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.
  
  Capacity will always be rounded up to the nearest power of 2.

<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>  没有返回值。


id: Ds\Queue::copy
type: function
doc:
<comment>Description:</comment>
  Returns a shallow copy of the queue
  
  Returns a shallow copy of the queue.

<comment>Return:</comment>
  <info>Ds\Queue</info>  Returns a shallow copy of the queue.


id: Ds\Queue::pop
type: function
doc:
<comment>Description:</comment>
  Removes and returns the value at the front of the queue
  
  Removes and returns the value at the front of the queue.

<comment>Return:</comment>
  <info>mixed</info>  The removed value which was at the front of the queue.


id: Ds\Queue::push
type: function
doc:
<comment>Description:</comment>
  Pushes values into the queue
  
  Pushes <strong>$values</strong> into the queue.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$values</strong>  The values to push into the queue.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\Queue::toArray
type: function
doc:
<comment>Description:</comment>
  Converts the queue to an array
    
  
  Converts the queue to an <info>array</info>.
  
  Casting to an <info>array</info> is not supported yet.
  
  This method is not destructive.

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> containing all the values in the same order as the queue.


id: Ds\Sequence
type: class
doc:
<comment>Description:</comment>
  A Sequence describes the behaviour of values arranged in a single, linear dimension. Some
  languages refer to this as a "List". It’s similar to an array that uses incremental integer keys,
  with the exception of a few characteristics: Values will always be indexed as [0, 1, 2, …, size -
  1].Only allowed to access values by index in the range [0, size - 1].
  
  Use cases: Wherever you would use an array as a list (not concerned with keys).A more efficient
  alternative to <class>SplDoublyLinkedList</class> and <class>SplFixedArray</class>.


id: Ds\Sequence::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.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\Sequence::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 sequence.

<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 sequence.
                       
                       The callback should return what the value should be replaced by.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\Sequence::contains
type: function
doc:
<comment>Description:</comment>
  Determines if the sequence contains given values
  
  Determines if the sequence 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 sequence, <info>true</info> otherwise.


id: Ds\Sequence::filter
type: function
doc:
<comment>Description:</comment>
  Creates a new sequence using a callable to
      determine which values to include
   
  
  Creates a new sequence 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\Sequence</info>  A new sequence 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\Sequence::first
type: function
doc:
<comment>Description:</comment>
  Returns the first value in the sequence
  
  Returns the first value in the sequence.

<comment>Return:</comment>
  <info>mixed</info>  The first value in the sequence.


id: Ds\Sequence::insert
type: function
doc:
<comment>Description:</comment>
  Inserts values at a given index
  
  Inserts values into the sequence 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>  没有返回值。


id: Ds\Sequence::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 sequence joined together as a string.


id: Ds\Sequence::last
type: function
doc:
<comment>Description:</comment>
  Returns the last value
  
  Returns the last value in the sequence.

<comment>Return:</comment>
  <info>mixed</info>  The last value in the sequence.


id: Ds\Sequence::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 sequence.

<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 sequence.
                       
                       The callable should return what the new value will be in the new sequence.

<comment>Return:</comment>
  <info>Ds\Sequence</info>  The result of applying a <strong>$callback</strong> to each value in the sequence.
               
               The values of the current instance won't be affected.


id: Ds\Sequence::merge
type: function
doc:
<comment>Description:</comment>
  Returns the result of adding all given values to the sequence
  
  Returns the result of adding all given values to the sequence.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$values</strong>  A <class>traversable</class> object or an <info>array</info>.

<comment>Return:</comment>
  <info>Ds\Sequence</info>  The result of adding all given values to the sequence, effectively the same as adding
               the values to a copy, then returning that copy.
               
               The current instance won't be affected.


id: Ds\Sequence::push
type: function
doc:
<comment>Description:</comment>
  Adds values to the end of the sequence
  
  Adds values to the end of the sequence.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$values</strong>  The values to add.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\Sequence::reduce
type: function
doc:
<comment>Description:</comment>
  Reduces the sequence to a single value using a callback function
  
  Reduces the sequence 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\Sequence::reverse
type: function
doc:
<comment>Description:</comment>
  Reverses the sequence in-place
    
  
  Reverses the sequence in-place.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\Sequence::reversed
type: function
doc:
<comment>Description:</comment>
  Returns a reversed copy
  
  Returns a reversed copy of the sequence.

<comment>Return:</comment>
  <info>Ds\Sequence</info>  A reversed copy of the sequence.
                 The current instance is not affected. 
               
               The current instance is not affected.


id: Ds\Sequence::rotate
type: function
doc:
<comment>Description:</comment>
  Rotates the sequence by a given number of rotations
  
  Rotates the sequence by a given number of rotations, which is equivalent to successively calling
  $sequence-&gt;push($sequence-&gt;shift()) if the number of rotations is positive, or
  $sequence-&gt;unshift($sequence-&gt;pop()) if negative.

<comment>Param:</comment>
  <info>int</info>  <strong>$rotations</strong>  The number of times the sequence should be rotated.

<comment>Return:</comment>
  <info>void</info>  没有返回值。. The sequence of the current instance will be rotated.


id: Ds\Sequence::slice
type: function
doc:
<comment>Description:</comment>
  Returns a sub-sequence of a given range
    
  
  Creates a sub-sequence of a given range.

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>   The index at which the sub-sequence starts.
                
                If positive, the sequence will start at that index in the sequence. If negative, the
                sequence will start that far from the end.
  <info>int</info>  <strong>$length</strong>  If a length is given and is positive, the resulting sequence will have up to that
                many values in it.
                 If the length results in an overflow, only values up to the end of the sequence
                will be included.
                 If a length is given and is negative, the sequence will stop that many values from
                the end.
                 If a length is not provided, the resulting sequence will contain all values between
                the index and the end of the sequence.

<comment>Return:</comment>
  <info>Ds\Sequence</info>  A sub-sequence of the given range.


id: Ds\Sequence::sort
type: function
doc:
<comment>Description:</comment>
  Sorts the sequence in-place
   
  
  Sorts the sequence in-place, using an optional <strong>$comparator</strong> function.

<comment>Param:</comment>
  <info>callable</info>  <strong>$comparator</strong>  在第一个参数小于，等于或大于第二个参数时，该比较函数必须相应地返回一个小
                         于，等于或大于 0 的整数。
                         
                         从比较函数中返回非整数值，例如 <info>float</info>，将导致内部强制转换为 callback 返回值
                         为 <info>int</info>。因此，诸如 <return>0.99</return> 和 <return>0.1</return> 之类的值都将被转换为整数值 <return>0</return>，将这些值比较的
                         话将会是相等。

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\Sequence::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>  在第一个参数小于，等于或大于第二个参数时，该比较函数必须相应地返回一个小
                         于，等于或大于 0 的整数。
                         
                         从比较函数中返回非整数值，例如 <info>float</info>，将导致内部强制转换为 callback 返回值
                         为 <info>int</info>。因此，诸如 <return>0.99</return> 和 <return>0.1</return> 之类的值都将被转换为整数值 <return>0</return>，将这些值比较的
                         话将会是相等。

<comment>Return:</comment>
  <info>Ds\Sequence</info>  Returns a sorted copy of the sequence.


id: Ds\Sequence::sum
type: function
doc:
<comment>Description:</comment>
  Returns the sum of all values in the sequence
  
  Returns the sum of all values in the sequence.
  
  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 sequence as either a <info>float</info> or <info>int</info> depending on the
             values in the sequence.


id: Ds\Sequence::unshift
type: function
doc:
<comment>Description:</comment>
  Adds values to the front of the sequence
  
  Adds values to the front of the sequence, 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 sequence.  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>  没有返回值。


id: Ds\Set
type: class
doc:
<comment>Description:</comment>
  A Set is a sequence of unique values. This implementation uses the same hash table as <class>Ds\Map</class>,
  where values are used as keys and the mapped value is ignored.


id: Ds\Set::add
type: function
doc:
<comment>Description:</comment>
  Adds values to the set
  
  Adds all given values to the set that haven't already been added.
  
  Values 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.
  
  All comparisons are strict (type and value).

<comment>Param:</comment>
  <info>mixed</info>  <strong>$values</strong>  Values to add to the set.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\Set::clear
type: function
doc:
<comment>Description:</comment>
  Removes all values
  
  Removes all values from the set.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\Set::contains
type: function
doc:
<comment>Description:</comment>
  Determines if the set contains all values
  
  Determines if the set contains all values.
  
  Values 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.
  
  All comparisons are strict (type and value).

<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 set, <info>true</info> otherwise.


id: Ds\Set::copy
type: function
doc:
<comment>Description:</comment>
  Returns a shallow copy of the set
  
  Returns a shallow copy of the set.

<comment>Return:</comment>
  <info>Ds\Set</info>  Returns a shallow copy of the set.


id: Ds\Set::count
type: function
doc:
<comment>Description:</comment>
  Returns the number of values in the set
  
  See <strong>Countable::count()</strong>


id: Ds\Set::diff
type: function
doc:
<comment>Description:</comment>
  Creates a new set using values that aren't in another set
  
  Creates a new set using values that aren't in another set.
  
  A \ B = {x ∈ A | x ∉ B}

<comment>Param:</comment>
  <info>Ds\Set</info>  <strong>$set</strong>  Set containing the values to exclude.

<comment>Return:</comment>
  <info>Ds\Set</info>  A new set containing all values that were not in the other <strong>$set</strong>.

<comment>See Also:</comment>
   * Complement on Wikipedia


id: Ds\Set::filter
type: function
doc:
<comment>Description:</comment>
  Creates a new set using a callable to
      determine which values to include
    
  
  Creates a new set 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\Set</info>  A new set 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\Set::first
type: function
doc:
<comment>Description:</comment>
  Returns the first value in the set
  
  Returns the first value in the set.

<comment>Return:</comment>
  <info>mixed</info>  The first value in the set.


id: Ds\Set::intersect
type: function
doc:
<comment>Description:</comment>
  Creates a new set by intersecting values with another set
  
  Creates a new set using values common to both the current instance and another <strong>$set</strong>.
   In other words, returns a copy of the current instance with all values removed that are not in
  the other <strong>$set</strong>.
  
  A ∩ B = {x : x ∈ A ∧ x ∈ B}

<comment>Param:</comment>
  <info>Ds\Set</info>  <strong>$set</strong>  The other set.

<comment>Return:</comment>
  <info>Ds\Set</info>  The intersection of the current instance and another <strong>$set</strong>.

<comment>See Also:</comment>
   * Intersection on Wikipedia


id: Ds\Set::isEmpty
type: function
doc:
<comment>Description:</comment>
  Returns whether the set is empty
  
  Returns whether the set is empty.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the set is empty, <info>false</info> otherwise.


id: Ds\Set::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 set joined together as a string.


id: Ds\Set::last
type: function
doc:
<comment>Description:</comment>
  Returns the last value in the set
  
  Returns the last value in the set.

<comment>Return:</comment>
  <info>mixed</info>  The last value in the set.


id: Ds\Set::merge
type: function
doc:
<comment>Description:</comment>
  Returns the result of adding all given values to the set
  
  Returns the result of adding all given values to the set.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$values</strong>  A <class>traversable</class> object or an <info>array</info>.

<comment>Return:</comment>
  <info>Ds\Set</info>  The result of adding all given values to the set, effectively the same as adding the
          values to a copy, then returning that copy.
          
          The current instance won't be affected.


id: Ds\Set::reduce
type: function
doc:
<comment>Description:</comment>
  Reduces the set to a single value using a callback function
  
  Reduces the set 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\Set::remove
type: function
doc:
<comment>Description:</comment>
  Removes all given values from the set
  
  Removes all given <strong>$values</strong> from the set, ignoring any that are not in the set.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$values</strong>  The values to remove.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\Set::reverse
type: function
doc:
<comment>Description:</comment>
  Reverses the set in-place
    
  
  Reverses the set in-place.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\Set::reversed
type: function
doc:
<comment>Description:</comment>
  Returns a reversed copy
  
  Returns a reversed copy of the set.

<comment>Return:</comment>
  <info>Ds\Set</info>  A reversed copy of the set.
            The current instance is not affected. 
          
          The current instance is not affected.


id: Ds\Set::slice
type: function
doc:
<comment>Description:</comment>
  Returns a sub-set of a given range
    
  
  Creates a sub-set of a given range.

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>   The index at which the sub-set starts.
                
                If positive, the set will start at that index in the set. If negative, the set will
                start that far from the end.
  <info>int</info>  <strong>$length</strong>  If a length is given and is positive, the resulting set will have up to that many
                values in it.
                 If the length results in an overflow, only values up to the end of the set will be
                included.
                 If a length is given and is negative, the set will stop that many values from the
                end.
                 If a length is not provided, the resulting set will contain all values between the
                index and the end of the set.

<comment>Return:</comment>
  <info>Ds\Set</info>  A sub-set of the given range.


id: Ds\Set::sort
type: function
doc:
<comment>Description:</comment>
  Sorts the set in-place
   
  
  Sorts the set in-place, using an optional <strong>$comparator</strong> function.

<comment>Param:</comment>
  <info>callable</info>  <strong>$comparator</strong>  在第一个参数小于，等于或大于第二个参数时，该比较函数必须相应地返回一个小
                         于，等于或大于 0 的整数。
                         
                         从比较函数中返回非整数值，例如 <info>float</info>，将导致内部强制转换为 callback 返回值
                         为 <info>int</info>。因此，诸如 <return>0.99</return> 和 <return>0.1</return> 之类的值都将被转换为整数值 <return>0</return>，将这些值比较的
                         话将会是相等。

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\Set::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>  在第一个参数小于，等于或大于第二个参数时，该比较函数必须相应地返回一个小
                         于，等于或大于 0 的整数。
                         
                         从比较函数中返回非整数值，例如 <info>float</info>，将导致内部强制转换为 callback 返回值
                         为 <info>int</info>。因此，诸如 <return>0.99</return> 和 <return>0.1</return> 之类的值都将被转换为整数值 <return>0</return>，将这些值比较的
                         话将会是相等。

<comment>Return:</comment>
  <info>Ds\Set</info>  Returns a sorted copy of the set.


id: Ds\Set::sum
type: function
doc:
<comment>Description:</comment>
  Returns the sum of all values in the set
  
  Returns the sum of all values in the set.
  
  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 set as either a <info>float</info> or <info>int</info> depending on the values
             in the set.


id: Ds\Set::toArray
type: function
doc:
<comment>Description:</comment>
  Converts the set to an array
    
  
  Converts the set 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 set.


id: Ds\Set::union
type: function
doc:
<comment>Description:</comment>
  Creates a new set using values from the current instance and another set
  
  Creates a new set that contains the values of the current instance as well as the values of
  another <strong>$set</strong>.
  
  A ∪ B = {x: x ∈ A ∨ x ∈ B}

<comment>Param:</comment>
  <info>Ds\Set</info>  <strong>$set</strong>  The other set, to combine with the current instance.

<comment>Return:</comment>
  <info>Ds\Set</info>  A new set containing all the values of the current instance as well as another <strong>$set</strong>.

<comment>See Also:</comment>
   * Union on Wikipedia


id: Ds\Set::xor
type: function
doc:
<comment>Description:</comment>
  Creates a new set using values in either the current instance or in another set, but not in both
  
  Creates a new set containing values in the current instance as well as another <strong>$set</strong>, but not in
  both.
  
  A ⊖ B = {x : x ∈ (A \ B) ∪ (B \ A)}

<comment>Param:</comment>
  <info>Ds\Set</info>  <strong>$set</strong>  The other set.

<comment>Return:</comment>
  <info>Ds\Set</info>  A new set containing values in the current instance as well as another <strong>$set</strong>, but not in
          both.

<comment>See Also:</comment>
   * Symmetric Difference on Wikipedia


id: Ds\Stack
type: class
doc:
<comment>Description:</comment>
  A Stack is a “last in, first out” or “LIFO” collection that only allows access to the value at the
  top of the structure and iterates in that order, destructively.
  
  Uses a <class>Ds\Vector</class> internally.


id: Ds\Stack::clear
type: function
doc:
<comment>Description:</comment>
  Removes all values
  
  Removes all values from the stack.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\Stack::copy
type: function
doc:
<comment>Description:</comment>
  Returns a shallow copy of the stack
  
  Returns a shallow copy of the stack.

<comment>Return:</comment>
  <info>Ds\Stack</info>  Returns a shallow copy of the stack.


id: Ds\Stack::count
type: function
doc:
<comment>Description:</comment>
  Returns the number of values in the stack
  
  See <strong>Countable::count()</strong>


id: Ds\Stack::isEmpty
type: function
doc:
<comment>Description:</comment>
  Returns whether the stack is empty
  
  Returns whether the stack is empty.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the stack is empty, <info>false</info> otherwise.


id: Ds\Stack::peek
type: function
doc:
<comment>Description:</comment>
  Returns the value at the top of the stack
  
  Returns the value at the top of the stack, but does not remove it.

<comment>Return:</comment>
  <info>mixed</info>  The value at the top of the stack.


id: Ds\Stack::pop
type: function
doc:
<comment>Description:</comment>
  Removes and returns the value at the top of the stack
  
  Removes and returns the value at the top of the stack.

<comment>Return:</comment>
  <info>mixed</info>  The removed value which was at the top of the stack.


id: Ds\Stack::push
type: function
doc:
<comment>Description:</comment>
  Pushes values onto the stack
  
  Pushes <strong>$values</strong> onto the stack.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$values</strong>  The values to push onto the stack.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\Stack::toArray
type: function
doc:
<comment>Description:</comment>
  Converts the stack to an array
    
  
  Converts the stack 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 stack.


id: Ds\Vector
type: class
doc:
<comment>Description:</comment>
  A Vector is a sequence of values in a contiguous buffer that grows and shrinks automatically. It’s
  the most efficient sequential structure because a value’s index is a direct mapping to its index
  in the buffer, and the growth factor isn't bound to a specific multiple or exponent.


id: Ds\Vector::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 vector.

<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 vector.
                       
                       The callback should return what the value should be replaced by.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\Vector::clear
type: function
doc:
<comment>Description:</comment>
  Removes all values
  
  Removes all values from the vector.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Ds\Vector::contains
type: function
doc:
<comment>Description:</comment>
  Determines if the vector contains given values
  
  Determines if the vector 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 vector, <info>true</info> otherwise.


id: Ds\Vector::copy
type: function
doc:
<comment>Description:</comment>
  Returns a shallow copy of the vector
  
  Returns a shallow copy of the vector.

<comment>Return:</comment>
  <info>Ds\Vector</info>  Returns a shallow copy of the vector.


id: Ds\Vector::filter
type: function
doc:
<comment>Description:</comment>
  Creates a new vector using a callable to
      determine which values to include
   
  
  Creates a new vector 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\Vector</info>  A new vector 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.


