# php_manual

id: IntlCodePointBreakIterator
type: class
doc:
<comment>Description:</comment>
  This break iterator identifies the boundaries between UTF-8 code points.


id: IntlCodePointBreakIterator::getLastCodePoint
type: function
doc:
<comment>Description:</comment>
  Get last code point passed over after advancing or receding the iterator
  
  本函数还未编写文档，仅有参数列表。

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


id: IntlDateFormatter
type: class
doc:
<comment>Description:</comment>
  Date Formatter is a concrete class that enables locale-dependent formatting/parsing  of dates
  using pattern strings and/or canned patterns.
  
  This class represents the ICU date formatting functionality.  It allows users to display dates in
  a localized format or to parse strings  into PHP date values using pattern strings and/or canned
  patterns.


id: IntlDateFormatter::FULL
type: constant
doc:
<comment>Description:</comment>
  Completely specified style (Tuesday, April 12, 1952 AD or 3:30:42pm PST)


id: IntlDateFormatter::RELATIVE_FULL
type: constant
doc:
<comment>Description:</comment>
  The same as <info>IntlDateFormatter::FULL</info>, but yesterday, today, and tomorrow show as <return>yesterday</return>, <return>today</return>,
  and <return>tomorrow</return>, respectively.  Available as of PHP 8.0.0, for <strong>$dateType</strong> only.


id: IntlDateFormatter::RELATIVE_LONG
type: constant
doc:
<comment>Description:</comment>
  The same as <info>IntlDateFormatter::LONG</info>, but yesterday, today, and tomorrow show as <return>yesterday</return>, <return>today</return>,
  and <return>tomorrow</return>, respectively.  Available as of PHP 8.0.0, for <strong>$dateType</strong> only.


id: IntlDateFormatter::RELATIVE_MEDIUM
type: constant
doc:
<comment>Description:</comment>
  The same as <info>IntlDateFormatter::MEDIUM</info>, but yesterday, today, and tomorrow show as <return>yesterday</return>,
  <return>today</return>, and <return>tomorrow</return>, respectively.  Available as of PHP 8.0.0, for <strong>$dateType</strong> only.


id: IntlDateFormatter::RELATIVE_SHORT
type: constant
doc:
<comment>Description:</comment>
  The same as <info>IntlDateFormatter::SHORT</info>, but yesterday, today, and tomorrow show as <return>yesterday</return>, <return>today</return>,
  and <return>tomorrow</return>, respectively.  Available as of PHP 8.0.0, for <strong>$dateType</strong> only.


id: IntlDateFormatter::__construct
type: function
doc:
<comment>Description:</comment>
  Create a date formatter
  
  面向对象风格
  
  面向对象风格 (constructor)
  
  过程化风格
  
  Create a date formatter.

<comment>Param:</comment>
  <info>string|null</info>                            <strong>$locale</strong>    Locale to use when formatting or parsing or <info>null</info>
                                                    to use the value specified in the ini setting
                                                    intl.default_locale.
  <info>int</info>                                    <strong>$dateType</strong>  Format of the date determined by one of the
                                                    IntlDateFormatter constants. The default value
                                                    is <info>IntlDateFormatter::FULL</info>.
  <info>int</info>                                    <strong>$timeType</strong>  Format of the time determined by one of the
                                                    IntlDateFormatter constants. The default value
                                                    is <info>IntlDateFormatter::FULL</info>.
  <info>IntlTimeZone|DateTimeZone|string|null</info>  <strong>$timezone</strong>  Time zone ID. The default (and the one used if
                                                    <info>null</info> is given) is the one returned by
                                                    <strong>date_default_timezone_get()</strong> or, if applicable,
                                                    that of the <class>IntlCalendar</class> object passed for the
                                                    <strong>$calendar</strong> parameter. This ID must be a valid
                                                    identifier on ICUʼs database or an ID
                                                    representing an explicit offset, such as
                                                    <return>GMT-05:30</return>.
                                                    
                                                    This can also be an <class>IntlTimeZone</class> or a
                                                    <class>DateTimeZone</class> object.
  <info>IntlCalendar|int|null</info>                  <strong>$calendar</strong>  Calendar to use for formatting or parsing. The
                                                    default value is <info>null</info>, which corresponds to
                                                    <info>IntlDateFormatter::GREGORIAN</info>. This can either be
                                                    one of the IntlDateFormatter calendar constants
                                                    or an <class>IntlCalendar</class>. Any <class>IntlCalendar</class> object
                                                    passed will be clone; it will not be changed by
                                                    the <class>IntlDateFormatter</class>. This will determine the
                                                    calendar type used (gregorian, islamic, persian,
                                                    etc.) and, if <info>null</info> is given for the <strong>$timezone</strong>
                                                    parameter, also the timezone used.
  <info>string|null</info>                            <strong>$pattern</strong>   Optional pattern to use when formatting or
                                                    parsing. Possible patterns are documented at
                                                    https://unicode-org.github.io/icu/userguide/format_parse/datetime/.

<comment>Return:</comment>
  <info>IntlDateFormatter|null</info>  The created <class>IntlDateFormatter</class> or <info>null</info> in case of failure.

<comment>See Also:</comment>
   * <strong>datefmt_format()</strong>
   * <strong>datefmt_parse()</strong>
   * <strong>datefmt_get_error_code()</strong>
   * <strong>datefmt_get_error_message()</strong>


id: IntlDateFormatter::format
type: function
doc:
<comment>Description:</comment>
  Format the date/time value as a string
  
  面向对象风格
  
  过程化风格
  
  Formats the time value as a string.

<comment>Param:</comment>
  <info>IntlDateFormatter</info>                                      <strong>$formatter</strong>  The date formatter resource.
  <info>IntlCalendar|DateTimeInterface|array|string|int|float</info>  <strong>$datetime</strong>   Value to format. This may be a
                                                                     <class>DateTimeInterface</class> object, an
                                                                     <class>IntlCalendar</class> object, a <info>numeric</info>
                                                                     type representing a (possibly
                                                                     fractional) number of seconds
                                                                     since epoch or an <info>array</info> in the
                                                                     format output by <strong>localtime()</strong>.
                                                                     
                                                                     If a <class>DateTime</class> or an
                                                                     <class>IntlCalendar</class> object is passed,
                                                                     its timezone is not considered.
                                                                     The object will be formatted
                                                                     using the formaterʼs configured
                                                                     timezone. If one wants to use
                                                                     the timezone of the object to
                                                                     be formatted,
                                                                     <strong>IntlDateFormatter::setTimeZone()</strong>
                                                                     must be called before with the
                                                                     objectʼs timezone.
                                                                     Alternatively, the static
                                                                     function
                                                                     <strong>IntlDateFormatter::formatObject()</strong>
                                                                     may be used instead.

<comment>Return:</comment>
  <info>string|false</info>  The formatted string or, if an error occurred, <info>false</info>.

<comment>See Also:</comment>
   * <strong>datefmt_create()</strong>
   * <strong>datefmt_parse()</strong>
   * <strong>datefmt_get_error_code()</strong>
   * <strong>datefmt_get_error_message()</strong>
   * <strong>datefmt_format_object()</strong>


id: IntlDateFormatter::formatObject
type: function
doc:
<comment>Description:</comment>
  Formats an object
  
  面向对象风格
  
  过程化风格
  
  This function allows formatting an <class>IntlCalendar</class> or <class>DateTime</class> object without first explicitly
  creating a <class>IntlDateFormatter</class> object.
  
  The temporary <class>IntlDateFormatter</class> that will be created will take the timezone from the passed in
  object. The timezone database bundled with PHP will not be used – ICU's will be used instead. The
  timezone identifier used in <class>DateTime</class> objects must therefore also exist in ICU's database.

<comment>Param:</comment>
  <info>IntlCalendar|DateTimeInterface</info>  <strong>$datetime</strong>  An object of type <class>IntlCalendar</class> or <class>DateTime</class>. The
                                             timezone information in the object will be used.
  <info>array|int|string|null</info>           <strong>$format</strong>    How to format the date/time. This can either be an
                                             <info>array</info> with two elements (first the date style, then the
                                             time style, these being one of the constants
                                             <info>IntlDateFormatter::NONE</info>, <info>IntlDateFormatter::SHORT</info>,
                                             <info>IntlDateFormatter::MEDIUM</info>, <info>IntlDateFormatter::LONG</info>,
                                             <info>IntlDateFormatter::FULL</info>), an <info>int</info> with the value of one
                                             of these constants (in which case it will be used both
                                             for the time and the date) or a <info>string</info> with the format
                                             described in the ICU documentation. If <info>null</info>, the
                                             default style will be used.
  <info>string|null</info>                     <strong>$locale</strong>    The locale to use, or <info>null</info> to use the default one.

<comment>Return:</comment>
  <info>string|false</info>  A string with result 或者在失败时返回 <info>false</info>.


id: IntlDateFormatter::getCalendar
type: function
doc:
<comment>Description:</comment>
  Get the calendar type used for the IntlDateFormatter
  
  面向对象风格
  
  过程化风格

<comment>Param:</comment>
  <info>IntlDateFormatter</info>  <strong>$formatter</strong>  The formatter resource

<comment>Return:</comment>
  <info>int|false</info>  The calendar type being used by the formatter. Either <info>IntlDateFormatter::TRADITIONAL</info> or
             <info>IntlDateFormatter::GREGORIAN</info>. Returns <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>datefmt_get_calendar_object()</strong>
   * <strong>datefmt_set_calendar()</strong>
   * <strong>datefmt_create()</strong>


id: IntlDateFormatter::getCalendarObject
type: function
doc:
<comment>Description:</comment>
  Get copy of formatterʼs calendar object
  
  面向对象风格
  
  过程化风格
  
  Obtain a copy of the calendar object used internally by this formatter. This calendar will have a
  type (as in gregorian, japanese, buddhist, roc, persian, islamic, etc.) and a timezone that match
  the type and timezone used by the formatter. The date/time of the object is unspecified.

<comment>Return:</comment>
  <info>IntlCalendar|false|null</info>  A copy of the internal calendar object used by this formatter, or <info>null</info> if
                           none has been set,  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>IntlDateFormatter::getCalendar()</strong>
   * <strong>IntlDateFormatter::setCalendar()</strong>
   * <class>IntlCalendar</class>


id: IntlDateFormatter::getDateType
type: function
doc:
<comment>Description:</comment>
  Get the datetype used for the IntlDateFormatter
  
  面向对象风格
  
  过程化风格
  
  Returns date type used by the formatter.

<comment>Param:</comment>
  <info>IntlDateFormatter</info>  <strong>$formatter</strong>  The formatter resource.

<comment>Return:</comment>
  <info>int|false</info>  The current date type value of the formatter, 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>datefmt_get_timetype()</strong>
   * <strong>datefmt_create()</strong>


id: IntlDateFormatter::getErrorCode
type: function
doc:
<comment>Description:</comment>
  Get the error code from last operation
  
  面向对象风格
  
  过程化风格
  
  Get the error code from last operation. Returns error code from the last number formatting
  operation.

<comment>Param:</comment>
  <info>IntlDateFormatter</info>  <strong>$formatter</strong>  The formatter resource.

<comment>Return:</comment>
  <info>int</info>  The error code, one of UErrorCode values. Initial value is U_ZERO_ERROR.

<comment>See Also:</comment>
   * <strong>datefmt_get_error_message()</strong>
   * <strong>intl_get_error_code()</strong>
   * <strong>intl_is_failure()</strong>


id: IntlDateFormatter::getErrorMessage
type: function
doc:
<comment>Description:</comment>
  Get the error text from the last operation
  
  面向对象风格
  
  过程化风格
  
  Get the error text from the last operation.

<comment>Param:</comment>
  <info>IntlDateFormatter</info>  <strong>$formatter</strong>  The formatter resource.

<comment>Return:</comment>
  <info>string</info>  Description of the last error.

<comment>See Also:</comment>
   * <strong>datefmt_get_error_code()</strong>
   * <strong>intl_get_error_code()</strong>
   * <strong>intl_is_failure()</strong>


id: IntlDateFormatter::getLocale
type: function
doc:
<comment>Description:</comment>
  Get the locale used by formatter
  
  面向对象风格
  
  过程化风格
  
  Get locale used by the formatter.

<comment>Param:</comment>
  <info>IntlDateFormatter</info>  <strong>$formatter</strong>  The formatter resource
  <info>int</info>                <strong>$type</strong>       You can choose between valid and actual locale (
                                 <info>Locale::VALID_LOCALE</info>, <info>Locale::ACTUAL_LOCALE</info>, respectively). The
                                 default is the actual locale.

<comment>Return:</comment>
  <info>string|false</info>  The locale of this formatter,  或者在失败时返回 <info>false</info>.

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


id: IntlDateFormatter::getPattern
type: function
doc:
<comment>Description:</comment>
  Get the pattern used for the IntlDateFormatter
  
  面向对象风格
  
  过程化风格
  
  Get pattern used by the formatter.

<comment>Param:</comment>
  <info>IntlDateFormatter</info>  <strong>$formatter</strong>  The formatter resource.

<comment>Return:</comment>
  <info>string|false</info>  The pattern string being used to format/parse,  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>datefmt_set_pattern()</strong>
   * <strong>datefmt_create()</strong>


id: IntlDateFormatter::getTimeType
type: function
doc:
<comment>Description:</comment>
  Get the timetype used for the IntlDateFormatter
  
  面向对象风格
  
  过程化风格
  
  Return time type used by the formatter.

<comment>Param:</comment>
  <info>IntlDateFormatter</info>  <strong>$formatter</strong>  The formatter resource.

<comment>Return:</comment>
  <info>int|false</info>  The current date type value of the formatter, 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>datefmt_get_datetype()</strong>
   * <strong>datefmt_create()</strong>


id: IntlDateFormatter::getTimeZone
type: function
doc:
<comment>Description:</comment>
  Get formatterʼs timezone
  
  面向对象风格
  
  过程化风格
  
  Returns an <class>IntlTimeZone</class> object representing the timezone that will be used by this object to
  format dates and times. When formatting <class>IntlCalendar</class> and <class>DateTime</class> objects with this
  <class>IntlDateFormatter</class>, the timezone used will be the one returned by this method, not the one
  associated with the objects being formatted.

<comment>Return:</comment>
  <info>IntlTimeZone|false</info>  The associated <class>IntlTimeZone</class> object 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>IntlDateFormatter::getTimeZoneId()</strong>
   * <strong>IntlDateFormatter::setTimeZone()</strong>
   * <class>IntlTimeZone</class>


id: IntlDateFormatter::getTimeZoneId
type: function
doc:
<comment>Description:</comment>
  Get the timezone-id used for the IntlDateFormatter
  
  面向对象风格
  
  过程化风格
  
  Get the timezone-id used for the IntlDateFormatter.

<comment>Param:</comment>
  <info>IntlDateFormatter</info>  <strong>$formatter</strong>  The formatter resource.

<comment>Return:</comment>
  <info>string|false</info>  ID string for the time zone used by this formatter,  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>datefmt_set_timezone()</strong>
   * <strong>datefmt_create()</strong>


id: IntlDateFormatter::isLenient
type: function
doc:
<comment>Description:</comment>
  Get the lenient used for the IntlDateFormatter
  
  面向对象风格
  
  过程化风格
  
  Check if the parser is strict or lenient in interpreting inputs that do not match the pattern
  exactly.

<comment>Param:</comment>
  <info>IntlDateFormatter</info>  <strong>$formatter</strong>  The formatter resource.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if parser is lenient, <info>false</info> if parser is strict. By default the parser is lenient.

<comment>See Also:</comment>
   * <strong>datefmt_set_lenient()</strong>
   * <strong>datefmt_create()</strong>


id: IntlDateFormatter::localtime
type: function
doc:
<comment>Description:</comment>
  Parse string to a field-based time value
  
  面向对象风格
  
  过程化风格
  
  Converts string $value to a field-based time value ( an array of various fields), starting at
  $parse_pos and consuming as much of the input value as possible.

<comment>Param:</comment>
  <info>IntlDateFormatter</info>  <strong>$formatter</strong>  The formatter resource
  <info>string</info>             <strong>$string</strong>     string to convert to a time
  <info>int</info>                <strong>$offset</strong>     Position at which to start the parsing in $value (zero-based). If
                                 no error occurs before $value is consumed, $parse_pos will contain
                                 -1 otherwise it will contain the position at which parsing ended .
                                 If $parse_pos &gt; strlen($value), the parse fails immediately.

<comment>Return:</comment>
  <info>array|false</info>  Localtime compatible array of integers  : contains 24 hour clock value in tm_hour
               field, 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>datefmt_create()</strong>
   * <strong>datefmt_format()</strong>
   * <strong>datefmt_parse()</strong>
   * <strong>datefmt_get_error_code()</strong>
   * <strong>datefmt_get_error_message()</strong>


id: IntlDateFormatter::parse
type: function
doc:
<comment>Description:</comment>
  Parse string to a timestamp value
  
  面向对象风格
  
  过程化风格
  
  Converts <strong>$string</strong> to an incremental time value, starting at  <strong>$offset</strong> and consuming as much of the
  input value as possible.

<comment>Param:</comment>
  <info>IntlDateFormatter</info>  <strong>$formatter</strong>  The formatter resource
  <info>string</info>             <strong>$string</strong>     string to convert to a time
  <info>int</info>                <strong>$offset</strong>     Position at which to start the parsing in <strong>$string</strong> (zero-based). If
                                 no error occurs before <strong>$string</strong> is consumed, <strong>$offset</strong> will contain -1
                                 otherwise it will contain the position at which parsing ended (and
                                 the error occurred). This variable will contain the end position if
                                 the parse fails. If <strong>$offset</strong> &gt; strlen($string), the parse fails
                                 immediately.

<comment>Return:</comment>
  <info>int|float|false</info>  Timestamp of parsed value, or <info>false</info> if value cannot be parsed.

<comment>See Also:</comment>
   * <strong>datefmt_create()</strong>
   * <strong>datefmt_format()</strong>
   * <strong>datefmt_localtime()</strong>
   * <strong>datefmt_get_error_code()</strong>
   * <strong>datefmt_get_error_message()</strong>


id: IntlDateFormatter::setCalendar
type: function
doc:
<comment>Description:</comment>
  Sets the calendar type used by the formatter
  
  面向对象风格
  
  过程化风格
  
  Sets the calendar or calendar type used by the formatter.

<comment>Param:</comment>
  <info>IntlDateFormatter</info>      <strong>$formatter</strong>  The formatter resource.
  <info>IntlCalendar|int|null</info>  <strong>$calendar</strong>   This can either be: the calendar type to use (default is
                                     <info>IntlDateFormatter::GREGORIAN</info>, which is also used if <info>null</info> is
                                     specified) or an <class>IntlCalendar</class> object.
                                     
                                     Any <class>IntlCalendar</class> object passed in will be cloned; no
                                     modifications will be made to the argument object.
                                     
                                     The timezone of the formatter will only be kept if an
                                     <class>IntlCalendar</class> object is not passed, otherwise the new timezone
                                     will be that of the passed object.

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

<comment>See Also:</comment>
   * <strong>datefmt_get_calendar()</strong>
   * <strong>datefmt_get_calendar_object()</strong>
   * <strong>datefmt_create()</strong>


id: IntlDateFormatter::setLenient
type: function
doc:
<comment>Description:</comment>
  Set the leniency of the parser
  
  面向对象风格
  
  过程化风格
  
  Define if the parser is strict or lenient in interpreting inputs that do not match the pattern
  exactly. Enabling lenient parsing allows the parser to accept otherwise flawed date or  time
  patterns, parsing as much as possible to obtain a value. Extra space, unrecognized tokens, or
  invalid values ("February 30th") are not accepted.

<comment>Param:</comment>
  <info>IntlDateFormatter</info>  <strong>$formatter</strong>  The formatter resource
  <info>bool</info>               <strong>$lenient</strong>    Sets whether the parser is lenient or not, default is <info>true</info>
                                 (lenient).

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

<comment>See Also:</comment>
   * <strong>datefmt_is_lenient()</strong>
   * <strong>datefmt_create()</strong>


id: IntlDateFormatter::setPattern
type: function
doc:
<comment>Description:</comment>
  Set the pattern used for the IntlDateFormatter
  
  面向对象风格
  
  过程化风格
  
  Set the pattern used for the IntlDateFormatter.

<comment>Param:</comment>
  <info>IntlDateFormatter</info>  <strong>$formatter</strong>  The formatter resource.
  <info>string</info>             <strong>$pattern</strong>    New pattern string to use. Possible patterns are documented at
                                 https://unicode-org.github.io/icu/userguide/format_parse/datetime/.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 Bad formatstrings are usually the cause of the
        failure.

<comment>See Also:</comment>
   * <strong>datefmt_get_pattern()</strong>
   * <strong>datefmt_create()</strong>


id: IntlDateFormatter::setTimeZone
type: function
doc:
<comment>Description:</comment>
  Sets formatterʼs timezone
  
  面向对象风格
  
  过程化风格
  
  Sets the timezone used for the IntlDateFormatter. object.

<comment>Param:</comment>
  <info>IntlDateFormatter</info>                      <strong>$formatter</strong>  The formatter resource.
  <info>IntlTimeZone|DateTimeZone|string|null</info>  <strong>$timezone</strong>   The timezone to use for this formatter. This
                                                     can be specified in the following forms:
                                                     
                                                     <info>null</info>, in which case the default timezone will
                                                     be used, as specified in the ini setting
                                                     date.timezone or through the function
                                                     <strong>date_default_timezone_set()</strong> and as returned by
                                                     <strong>date_default_timezone_get()</strong>.
                                                     
                                                     An <class>IntlTimeZone</class>, which will be used directly.
                                                     
                                                     A <class>DateTimeZone</class>. Its identifier will be
                                                     extracted and an ICU timezone object will be
                                                     created; the timezone will be backed by ICUʼs
                                                     database, not PHPʼs.
                                                     
                                                     A <info>string</info>, which should be a valid ICU timezone
                                                     identifier. See
                                                     <strong>IntlTimeZone::createTimeZoneIDEnumeration()</strong>.
                                                     Raw offsets such as <return>"GMT+08:30"</return> are also
                                                     accepted.

<comment>Return:</comment>
  <info>bool|null</info>  Returns <info>null</info> on success and <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>IntlDateFormatter::getTimeZone()</strong>


id: IntlDatePatternGenerator
type: class
doc:
<comment>Description:</comment>
  Generates localized date and/or time format pattern strings suitable for use in <class>IntlDateFormatter</class>.


id: IntlDatePatternGenerator::__construct
type: function
doc:
<comment>Description:</comment>
  Creates a new IntlDatePatternGenerator instance
  
  Creates a new <class>IntlDatePatternGenerator</class> instance.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$locale</strong>  The locale. If <info>null</info> is passed, uses the ini setting intl.default_locale.

<comment>Return:</comment>
  <info>IntlDatePatternGenerator|null</info>  Returns an <class>IntlDatePatternGenerator</class> instance on success, or <info>null</info> on
                                 failure.


id: IntlDatePatternGenerator::getBestPattern
type: function
doc:
<comment>Description:</comment>
  Determines the most suitable date/time format
  
  Determines which date/time format is most suitable for a particular locale.

<comment>Param:</comment>
  <info>string</info>  <strong>$skeleton</strong>  The skeleton.

<comment>Return:</comment>
  <info>string|false</info>  Returns a format, accepted by DateTimeInterface::format on success,  或者在失败时返
                回 <info>false</info>.


id: IntlGregorianCalendar::__construct
type: function
doc:
<comment>Description:</comment>
  Create the Gregorian Calendar class
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>IntlTimeZone</info>  <strong>$tz</strong>              
  <info>string</info>        <strong>$locale</strong>          
  <info>int</info>           <strong>$timeZoneOrYear</strong>  
  <info>int</info>           <strong>$localeOrMonth</strong>   
  <info>int</info>           <strong>$dayOfMonth</strong>      
  <info>int</info>           <strong>$hour</strong>            
  <info>int</info>           <strong>$minute</strong>          
  <info>int</info>           <strong>$second</strong>          


id: IntlGregorianCalendar::createFromDate
type: function
doc:
<comment>Description:</comment>
  Create a new IntlGregorianCalendar instance from date
  
  Creates a new <class>IntlGregorianCalendar</class> instance from date.

<comment>Param:</comment>
  <info>int</info>  <strong>$year</strong>        The new value for <info>IntlGregorianCalendar::FIELD_YEAR</info>.
  <info>int</info>  <strong>$month</strong>       The new value for <info>IntlGregorianCalendar::FIELD_MONTH</info>. The month sequence is
                    zero-based, i.e., January is represented by 0, February by 1, …, December is 11
                    and Undecember (if the calendar has it) is 12.
  <info>int</info>  <strong>$dayOfMonth</strong>  The new value for <info>IntlGregorianCalendar::FIELD_DAY_OF_MONTH</info>.

<comment>Return:</comment>
  <info>static</info>  Returns a new <class>IntlGregorianCalendar</class> instance.

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


id: IntlGregorianCalendar::createFromDateTime
type: function
doc:
<comment>Description:</comment>
  Create a new IntlGregorianCalendar instance from date and time
  
  Creates a new <class>IntlGregorianCalendar</class> instance from date and time.

<comment>Param:</comment>
  <info>int</info>  <strong>$year</strong>        The new value for <info>IntlGregorianCalendar::FIELD_YEAR</info>.
  <info>int</info>  <strong>$month</strong>       The new value for <info>IntlGregorianCalendar::FIELD_MONTH</info>. The month sequence is
                    zero-based, i.e., January is represented by 0, February by 1, …, December is 11
                    and Undecember (if the calendar has it) is 12.
  <info>int</info>  <strong>$dayOfMonth</strong>  The new value for <info>IntlGregorianCalendar::FIELD_DAY_OF_MONTH</info>.
  <info>int</info>  <strong>$hour</strong>        The new value for <info>IntlGregorianCalendar::FIELD_HOUR_OF_DAY</info>.
  <info>int</info>  <strong>$minute</strong>      The new value for <info>IntlGregorianCalendar::FIELD_MINUTE</info>.
  <info>int</info>  <strong>$second</strong>      The new value for <info>IntlGregorianCalendar::FIELD_SECOND</info>.

<comment>Return:</comment>
  <info>static</info>  Returns a new <class>IntlGregorianCalendar</class> instance.

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


id: IntlGregorianCalendar::getGregorianChange
type: function
doc:
<comment>Description:</comment>
  Get the Gregorian Calendar change date
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>float</info>  Returns the change date.


id: IntlGregorianCalendar::isLeapYear
type: function
doc:
<comment>Description:</comment>
  Determine if the given year is a leap year
  
  本函数还未编写文档，仅有参数列表。

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

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> for leap years, <info>false</info> otherwise and on failure.


id: IntlGregorianCalendar::setGregorianChange
type: function
doc:
<comment>Description:</comment>
  Set the Gregorian Calendar the change date
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>float</info>  <strong>$timestamp</strong>  

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


id: IntlIterator
type: class
doc:
<comment>Description:</comment>
  This class represents iterator objects throughout the intl extension whenever the iterator cannot
  be identified with any other object provided by the extension. The distinct iterator object used
  internally by the <return>foreach</return> construct can only be obtained (in the relevant part here) from objects,
  so objects of this class serve the purpose of providing the hook through which this internal
  object can be obtained. As a convenience, this class also implements the <class>Iterator</class> interface,
  allowing the collection of values to be navigated using the methods defined in that interface.
  Both these methods and the internal iterator objects provided to <return>foreach</return> are backed by the same
  state (e.g. the position of the iterator and its current value).
  
  Subclasses may provide richer functionality.


id: IntlIterator::current
type: function
doc:
<comment>Description:</comment>
  Get the current element
  
  本函数还未编写文档，仅有参数列表。

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


id: IntlIterator::key
type: function
doc:
<comment>Description:</comment>
  Get the current key
  
  本函数还未编写文档，仅有参数列表。

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


id: IntlIterator::next
type: function
doc:
<comment>Description:</comment>
  Move forward to the next element
  
  本函数还未编写文档，仅有参数列表。

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


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

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


id: IntlIterator::valid
type: function
doc:
<comment>Description:</comment>
  Check if current position is valid
  
  本函数还未编写文档，仅有参数列表。

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


id: IntlPartsIterator
type: class
doc:
<comment>Description:</comment>
  Objects of this class can be obtained from <class>IntlBreakIterator</class> objects. While the break iterators
  provide a sequence of boundary positions when iterated, <class>IntlPartsIterator</class> objects provide, as a
  convenience, the text fragments comprehended between two successive boundaries.
  
  The keys may represent the offset of the left boundary, right boundary, or they may just the
  sequence of non-negative integers. See <strong>IntlBreakIterator::getPartsIterator()</strong>.


id: IntlPartsIterator::getBreakIterator
type: function
doc:
<comment>Description:</comment>
  Get IntlBreakIterator backing this parts iterator
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>IntlBreakIterator</info>  


id: IntlRuleBasedBreakIterator
type: class
doc:
<comment>Description:</comment>
  A subclass of <class>IntlBreakIterator</class> that encapsulates ICU break iterators whose behavior is specified
  using a set of rules. This is the most common kind of break iterators.
  
  These rules are described in the ICU Boundary Analysis User Guide.


id: IntlRuleBasedBreakIterator::__construct
type: function
doc:
<comment>Description:</comment>
  Create iterator from ruleset
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$rules</strong>     
  <info>bool</info>    <strong>$compiled</strong>  


id: IntlRuleBasedBreakIterator::getBinaryRules
type: function
doc:
<comment>Description:</comment>
  Get the binary form of compiled rules
  
  本函数还未编写文档，仅有参数列表。

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


id: IntlRuleBasedBreakIterator::getRuleStatus
type: function
doc:
<comment>Description:</comment>
  Get the largest status value from the break rules that determined the current break position
  
  本函数还未编写文档，仅有参数列表。

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


id: IntlRuleBasedBreakIterator::getRuleStatusVec
type: function
doc:
<comment>Description:</comment>
  Get the status values from the break rules that determined the current break position
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>array|false</info>  


id: IntlRuleBasedBreakIterator::getRules
type: function
doc:
<comment>Description:</comment>
  Get the rule set used to create this object
  
  本函数还未编写文档，仅有参数列表。

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


id: IntlTimeZone::countEquivalentIDs
type: function
doc:
<comment>Description:</comment>
  Get the number of IDs in the equivalency group that includes the given ID
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

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

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


id: IntlTimeZone::createDefault
type: function
doc:
<comment>Description:</comment>
  Create a new copy of the default timezone for this host
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>IntlTimeZone</info>  


id: IntlTimeZone::createEnumeration
type: function
doc:
<comment>Description:</comment>
  Get an enumeration over time zone IDs associated with the
    given country or offset
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>IntlTimeZone|string|int|float|null</info>  <strong>$countryOrRawOffset</strong>  

<comment>Return:</comment>
  <info>IntlIterator|false</info>  


id: IntlTimeZone::createTimeZone
type: function
doc:
<comment>Description:</comment>
  Create a timezone object for the given ID
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

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

<comment>Return:</comment>
  <info>IntlTimeZone|null</info>  


id: IntlTimeZone::createTimeZoneIDEnumeration
type: function
doc:
<comment>Description:</comment>
  Get an enumeration over system time zone IDs with the given filter conditions
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>int</info>          <strong>$type</strong>       
  <info>string|null</info>  <strong>$region</strong>     
  <info>int|null</info>     <strong>$rawOffset</strong>  

<comment>Return:</comment>
  <info>IntlIterator|false</info>  Returns <class>IntlIterator</class> 或者在失败时返回 <info>false</info>.


id: IntlTimeZone::fromDateTimeZone
type: function
doc:
<comment>Description:</comment>
  Create a timezone object from DateTimeZone
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>DateTimeZone</info>  <strong>$timezone</strong>  

<comment>Return:</comment>
  <info>IntlTimeZone|null</info>  


id: IntlTimeZone::getCanonicalID
type: function
doc:
<comment>Description:</comment>
  Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone
  ID
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$timezoneId</strong>  
  <info>bool</info>    <strong>$isSystemId</strong>  

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


id: IntlTimeZone::getDSTSavings
type: function
doc:
<comment>Description:</comment>
  Get the amount of time to be added to local standard time to get local wall clock time
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

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


id: IntlTimeZone::getDisplayName
type: function
doc:
<comment>Description:</comment>
  Get a name of this time zone suitable for presentation to the user
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>bool</info>         <strong>$dst</strong>     
  <info>int</info>          <strong>$style</strong>   
  <info>string|null</info>  <strong>$locale</strong>  

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


id: IntlTimeZone::getEquivalentID
type: function
doc:
<comment>Description:</comment>
  Get an ID in the equivalency group that includes the given ID
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$timezoneId</strong>  
  <info>int</info>     <strong>$offset</strong>      

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


id: IntlTimeZone::getErrorCode
type: function
doc:
<comment>Description:</comment>
  Get last error code on the object
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

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


id: IntlTimeZone::getErrorMessage
type: function
doc:
<comment>Description:</comment>
  Get last error message on the object
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

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


id: IntlTimeZone::getGMT
type: function
doc:
<comment>Description:</comment>
  Create GMT (UTC) timezone
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>IntlTimeZone</info>  


id: IntlTimeZone::getID
type: function
doc:
<comment>Description:</comment>
  Get timezone ID
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

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


id: IntlTimeZone::getIDForWindowsID
type: function
doc:
<comment>Description:</comment>
  Translate a Windows timezone into a system timezone
  
  面向对象风格 (method):
  
  过程化风格:
  
  Translates a Windows timezone (e.g. "Pacific Standard Time") into a system timezone (e.g.
  "America/Los_Angeles").
  
  This function requires ICU version ≥ 52.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>       <strong>$timezoneId</strong>  
  <info>string|null</info>  <strong>$region</strong>      

<comment>Return:</comment>
  <info>string|false</info>  Returns the system timezone 或者在失败时返回 <info>false</info>.

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


id: IntlTimeZone::getOffset
type: function
doc:
<comment>Description:</comment>
  Get the time zone raw and GMT offset for the given moment in time
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>float</info>  <strong>$timestamp</strong>  
  <info>bool</info>   <strong>$local</strong>      
  <info>int</info>    <strong>$rawOffset</strong>  
  <info>int</info>    <strong>$dstOffset</strong>  

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


id: IntlTimeZone::getRawOffset
type: function
doc:
<comment>Description:</comment>
  Get the raw GMT offset (before taking daylight savings time into account
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

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


id: IntlTimeZone::getRegion
type: function
doc:
<comment>Description:</comment>
  Get the region code associated with the given system time zone ID
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

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

<comment>Return:</comment>
  <info>string|false</info>  Return region 或者在失败时返回 <info>false</info>.


id: IntlTimeZone::getTZDataVersion
type: function
doc:
<comment>Description:</comment>
  Get the timezone data version currently used by ICU
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

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


id: IntlTimeZone::getUnknown
type: function
doc:
<comment>Description:</comment>
  Get the "unknown" time zone
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>IntlTimeZone</info>  Returns <class>IntlTimeZone</class> or <info>null</info> on failure.


id: IntlTimeZone::getWindowsID
type: function
doc:
<comment>Description:</comment>
  Translate a system timezone into a Windows timezone
  
  面向对象风格 (method):
  
  过程化风格:
  
  Translates a system timezone (e.g. "America/Los_Angeles") into a Windows timezone (e.g. "Pacific
  Standard Time").
  
  This function requires ICU version ≥ 52.
  
  本函数还未编写文档，仅有参数列表。

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

<comment>Return:</comment>
  <info>string|false</info>  Returns the Windows timezone 或者在失败时返回 <info>false</info>.

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


id: IntlTimeZone::hasSameRules
type: function
doc:
<comment>Description:</comment>
  Check if this zone has the same rules and offset as another zone
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>IntlTimeZone</info>  <strong>$other</strong>  

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


id: IntlTimeZone::toDateTimeZone
type: function
doc:
<comment>Description:</comment>
  Convert to DateTimeZone object
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>DateTimeZone|false</info>  


id: IntlTimeZone::useDaylightTime
type: function
doc:
<comment>Description:</comment>
  Check if this time zone uses daylight savings time
  
  面向对象风格 (method):
  
  过程化风格:
  
  本函数还未编写文档，仅有参数列表。

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


id: Iterator::current
type: function
doc:
<comment>Description:</comment>
  返回当前元素
  
  返回当前元素。

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


id: Iterator::key
type: function
doc:
<comment>Description:</comment>
  返回当前元素的键
  
  返回当前元素的键。

<comment>Return:</comment>
  <info>mixed</info>  成功返回<info>标量</info>，失败则返回 <info>null</info>。


id: Iterator::next
type: function
doc:
<comment>Description:</comment>
  向前移动到下一个元素
  
  移动当前位置到下一个元素。
  
  此方法在 foreach 循环之后被调用。

<comment>Return:</comment>
  <info>void</info>  任何返回都将被忽略。


id: Iterator::rewind
type: function
doc:
<comment>Description:</comment>
  返回到迭代器的第一个元素
  
  返回到迭代器的第一个元素。
  
  当开始一个 foreach 循环时，这是第一个被调用的方法。它将不会在 foreach 循环之后被调用。

<comment>Return:</comment>
  <info>void</info>  任何返回都将被忽略。


id: Iterator::valid
type: function
doc:
<comment>Description:</comment>
  检查当前位置是否有效
  
  此方法在 Iterator::rewind 和 Iterator::next 方法之后被调用以此用来检查当前位置是否有效。

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


id: IteratorAggregate::getIterator
type: function
doc:
<comment>Description:</comment>
  获取一个外部迭代器
  
  返回一个外部迭代器。

<comment>Return:</comment>
  <info>Traversable</info>  实现了 <class>Iterator</class> 或 <class>Traversable</class> 接口的类的一个实例。


id: IteratorIterator
type: class
doc:
<comment>Description:</comment>
  This iterator wrapper allows the conversion of anything that is Traversable into an Iterator. It
  is important to understand that most classes that do not implement Iterators have reasons as most
  likely they do not allow the full Iterator feature set. If so, techniques should be provided to
  prevent misuse, otherwise expect exceptions or fatal errors.


id: IteratorIterator::__construct
type: function
doc:
<comment>Description:</comment>
  Create an iterator from anything that is traversable
  
  Creates an iterator from anything that is traversable.

<comment>Param:</comment>
  <info>Traversable</info>  <strong>$iterator</strong>  The traversable iterator.
  <info>string|null</info>  <strong>$class</strong>     The class name to use for the inner iterator. It allows to specify a
                          different iterator class to wrap the provided iterator. By default, it
                          will use the IteratorIterator class itself.

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


id: IteratorIterator::current
type: function
doc:
<comment>Description:</comment>
  Get the current value
  
  Get the value of the current element.

<comment>Return:</comment>
  <info>mixed</info>  The value of the current element.

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


id: IteratorIterator::getInnerIterator
type: function
doc:
<comment>Description:</comment>
  Get the inner iterator
  
  Get the inner iterator.

<comment>Return:</comment>
  <info>Iterator|null</info>  The inner iterator as passed to IteratorIterator::__construct, or <info>null</info> when there
                 is no inner iterator.

<comment>See Also:</comment>
   * <class>Iterator</class>
   * <class>OuterIterator</class>


id: IteratorIterator::key
type: function
doc:
<comment>Description:</comment>
  Get the key of the current element
  
  Get the key of the current element.

<comment>Return:</comment>
  <info>mixed</info>  The key of the current element.

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


id: IteratorIterator::next
type: function
doc:
<comment>Description:</comment>
  Forward to the next element
  
  Forward to the next element.

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

<comment>See Also:</comment>
   * IteratorIterator::rewind
   * IteratorIterator::valid


id: IteratorIterator::rewind
type: function
doc:
<comment>Description:</comment>
  Rewind to the first element
  
  Rewinds to the first element.

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

<comment>See Also:</comment>
   * IteratorIterator::next
   * IteratorIterator::valid


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

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

<comment>See Also:</comment>
   * <strong>iterator_count()</strong>
   * IteratorIterator::current


id: JSON_ERROR_INF_OR_NAN
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>json_encode()</strong> 函数的参数中包含了 <info>NAN</info> 或 <info>INF</info>，导致编码出错。如果打开了
  <info>JSON_PARTIAL_OUTPUT_ON_ERROR</info> 选项，则牵涉到对应不可编码的数字，会转换成数字 <return>0</return> 后返回。


id: JSON_ERROR_INVALID_PROPERTY_NAME
type: constant
doc:
<comment>Description:</comment>
  A key starting with \u0000 character was in the string passed to <strong>json_decode()</strong> when decoding a
  JSON object into a PHP object.


id: JSON_ERROR_RECURSION
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>json_encode()</strong> 函数的对象或数组包含了递归引用，导致无法被编码。如果打开了
  <info>JSON_PARTIAL_OUTPUT_ON_ERROR</info> 选项，则牵涉到递归引用的数据会转换成 <info>null</info> 后返回。


id: JSON_ERROR_UNSUPPORTED_TYPE
type: constant
doc:
<comment>Description:</comment>
  传递了不支持的数据类型给 <strong>json_encode()</strong> 函数，比如 resource。如果打开了
  <info>JSON_PARTIAL_OUTPUT_ON_ERROR</info> 选项，则对于不支持的数据类型，会转换成 <info>null</info> 后返回。


id: JSON_ERROR_UTF16
type: constant
doc:
<comment>Description:</comment>
  Single unpaired UTF-16 surrogate in unicode escape contained in the JSON string passed to
  <strong>json_encode()</strong>.


id: JSON_OBJECT_AS_ARRAY
type: constant
doc:
<comment>Description:</comment>
  将 JSON 对象作为数组解码。当调用 <strong>json_decode()</strong> 且第二个参数为 <info>true</info> 时此选项会自动添加。


id: JSON_THROW_ON_ERROR
type: constant
doc:
<comment>Description:</comment>
  如果发生错误则会抛出 <class>JsonException</class>，而不是通过 <strong>json_last_error()</strong> 和 <strong>json_last_error_msg()</strong> 检索设置
  到全局的错误状态。<info>JSON_PARTIAL_OUTPUT_ON_ERROR</info> 优先于 <info>JSON_THROW_ON_ERROR</info>。自 PHP 7.3.0 起生效。


id: JSON_UNESCAPED_LINE_TERMINATORS
type: constant
doc:
<comment>Description:</comment>
  The line terminators are kept unescaped when <info>JSON_UNESCAPED_UNICODE</info> is supplied. It uses the same
  behaviour as it was before PHP 7.1 without this constant. Available since PHP 7.1.0.


id: JsonSerializable
type: class
doc:
<comment>Description:</comment>
  实现 JsonSerializable 的类可以 在 <strong>json_encode()</strong> 时定制他们的 JSON 表示法。


id: JsonSerializable::jsonSerialize
type: function
doc:
<comment>Description:</comment>
  指定需要被序列化成 JSON 的数据
  
  序列化物体（Object）成能被 <strong>json_encode()</strong> 原生地序列化的值。

<comment>Return:</comment>
  <info>mixed</info>  返回能被 <strong>json_encode()</strong> 序列化的数据， 这个值可以是除了 resource 外的任意类型。


id: LATT_NOINFERIORS
type: constant
doc:
<comment>Description:</comment>
  This mailbox has no "children" (there are no mailboxes below this one).


id: LDAP\Connection
type: class
doc:
<comment>Description:</comment>
  A fully opaque class which replaces a <return>ldap</return> resource as of PHP 8.1.0.


id: LDAP\Result
type: class
doc:
<comment>Description:</comment>
  A fully opaque class which replaces a <return>ldap result</return> resource as of PHP 8.1.0.


id: LDAP\ResultEntry
type: class
doc:
<comment>Description:</comment>
  A fully opaque class which replaces a <return>ldap result entry</return> resource as of PHP 8.1.0.


id: LDAP_CONTROL_ASSERT
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Assertion (RFC 4528). Available as of PHP 7.3.0.


id: LDAP_CONTROL_AUTHZID_REQUEST
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Authorization Identity Request (RFC 3829). Available as of PHP 7.3.0.


id: LDAP_CONTROL_AUTHZID_RESPONSE
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Authorization Identity Response (RFC 3829). Available as of PHP 7.3.0.


id: LDAP_CONTROL_DONTUSECOPY
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Don't Use Copy (RFC 6171). Available as of PHP 7.3.0.


id: LDAP_CONTROL_MANAGEDSAIT
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Manage DSA IT (RFC 3296). Available as of PHP 7.3.0.


id: LDAP_CONTROL_PAGEDRESULTS
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Paged results (RFC 2696). Available as of PHP 7.3.0.


id: LDAP_CONTROL_PASSWORDPOLICYREQUEST
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Password Policy Request. Available as of PHP 7.3.0.


id: LDAP_CONTROL_PASSWORDPOLICYRESPONSE
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Password Policy Response. Available as of PHP 7.3.0.


id: LDAP_CONTROL_POST_READ
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Post read (RFC 4527). Available as of PHP 7.3.0.


id: LDAP_CONTROL_PRE_READ
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Pre read (RFC 4527). Available as of PHP 7.3.0.


id: LDAP_CONTROL_PROXY_AUTHZ
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Proxied Authorization (RFC 4370). Available as of PHP 7.3.0.


id: LDAP_CONTROL_SORTREQUEST
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Sort request (RFC 2891). Available as of PHP 7.3.0.


id: LDAP_CONTROL_SORTRESPONSE
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Sort response (RFC 2891). Available as of PHP 7.3.0.


id: LDAP_CONTROL_SUBENTRIES
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Subentries (RFC 3672). Available as of PHP 7.3.0.


id: LDAP_CONTROL_SYNC
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Content Synchronization Operation (RFC 4533). Available as of PHP 7.3.0.


id: LDAP_CONTROL_SYNC_DONE
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Content Synchronization Operation Done (RFC 4533). Available as of PHP 7.3.0.


id: LDAP_CONTROL_SYNC_STATE
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Content Synchronization Operation State (RFC 4533). Available as of PHP 7.3.0.


id: LDAP_CONTROL_VALUESRETURNFILTER
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Filter returned values (RFC 3876). Available as of PHP 7.3.0.


id: LDAP_CONTROL_VLVREQUEST
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Virtual List View Request. Available as of PHP 7.3.0.


id: LDAP_CONTROL_VLVRESPONSE
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Virtual List View Response. Available as of PHP 7.3.0.


id: LDAP_CONTROL_X_DOMAIN_SCOPE
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Active Directory Domain Scope. Available as of PHP 7.3.0.


id: LDAP_CONTROL_X_EXTENDED_DN
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Active Directory Extended DN. Available as of PHP 7.3.0.


id: LDAP_CONTROL_X_INCREMENTAL_VALUES
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Active Directory Incremental Values. Available as of PHP 7.3.0.


id: LDAP_CONTROL_X_PERMISSIVE_MODIFY
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Active Directory Permissive Modify. Available as of PHP 7.3.0.


id: LDAP_CONTROL_X_SEARCH_OPTIONS
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Active Directory Search Options. Available as of PHP 7.3.0.


id: LDAP_CONTROL_X_TREE_DELETE
type: constant
doc:
<comment>Description:</comment>
  Control Constant - Active Directory Tree Delete. Available as of PHP 7.3.0.


id: LDAP_OPT_CLIENT_CONTROLS
type: constant
doc:
<comment>Description:</comment>
  Specifies a default list of client controls to be processed with each request.


id: LDAP_OPT_NETWORK_TIMEOUT
type: constant
doc:
<comment>Description:</comment>
  Option for <strong>ldap_set_option()</strong> to allow setting network timeout. (Available as of PHP 5.3.0)


id: LDAP_OPT_REFERRALS
type: constant
doc:
<comment>Description:</comment>
  Specifies whether to automatically follow referrals returned by the LDAP server.


id: LDAP_OPT_RESTART
type: constant
doc:
<comment>Description:</comment>
  Determines whether or not the connection should be implicitly restarted.


id: LDAP_OPT_SERVER_CONTROLS
type: constant
doc:
<comment>Description:</comment>
  Specifies a default list of server controls to be sent with each request.


id: LDAP_OPT_SIZELIMIT
type: constant
doc:
<comment>Description:</comment>
  Specifies the maximum number of entries that can be returned on a search operation.
  
  The actual size limit for operations is also bounded by the server's configured maximum number of
  return entries. The lesser of these two settings is the actual size limit.


id: LDAP_OPT_TIMELIMIT
type: constant
doc:
<comment>Description:</comment>
  Specifies the number of seconds to wait for search results.
  
  The actual time limit for operations is also bounded by the server's configured maximum time. The
  lesser of these two settings is the actual time limit.


id: LDAP_OPT_X_KEEPALIVE_IDLE
type: constant
doc:
<comment>Description:</comment>
  Specifies the number of seconds a connection needs to remain idle before TCP starts sending
  keepalive probes.


id: LDAP_OPT_X_KEEPALIVE_INTERVAL
type: constant
doc:
<comment>Description:</comment>
  Specifies the interval in seconds between individual keepalive probes.


id: LDAP_OPT_X_KEEPALIVE_PROBES
type: constant
doc:
<comment>Description:</comment>
  Specifies the maximum number of keepalive probes TCP should send before dropping the connection.


id: LDAP_OPT_X_TLS_CRLCHECK
type: constant
doc:
<comment>Description:</comment>
  Specifies the CRL evaluation strategy. This must be one of:
  <info>LDAP_OPT_X_TLS_CRL_NONE</info>,<info>LDAP_OPT_X_TLS_CRL_PEER</info>, <info>LDAP_OPT_X_TLS_CRL_ALL</info>.
  
  This option is only valid for OpenSSL.


id: LDAP_OPT_X_TLS_CRLFILE
type: constant
doc:
<comment>Description:</comment>
  Specifies the full-path of the CRL file.
  
  This option is only valid for GnuTLS.


id: LDAP_OPT_X_TLS_DHFILE
type: constant
doc:
<comment>Description:</comment>
  Specifies the full-path  of the file containing the parameters for Diffie-Hellman ephemeral key
  exchange.
  
  This option is ignored by GnuTLS and Mozilla NSS.


id: LDAP_OPT_X_TLS_PROTOCOL_MIN
type: constant
doc:
<comment>Description:</comment>
  Specifies the minimum protocol version. This can be one of:
  <info>LDAP_OPT_X_TLS_PROTOCOL_SSL2</info>,<info>LDAP_OPT_X_TLS_PROTOCOL_SSL3</info>, <info>LDAP_OPT_X_TLS_PROTOCOL_TLS1_0</info>,
  <info>LDAP_OPT_X_TLS_PROTOCOL_TLS1_1</info>, <info>LDAP_OPT_X_TLS_PROTOCOL_TLS1_2</info>


id: LDAP_OPT_X_TLS_RANDOM_FILE
type: constant
doc:
<comment>Description:</comment>
  Sets/gets the random file when one of the system default ones are not available.


id: LDAP_OPT_X_TLS_REQUIRE_CERT
type: constant
doc:
<comment>Description:</comment>
  Specifies the certificate checking strategy. This must be one of:
  <info>LDAP_OPT_X_TLS_NEVER</info>,<info>LDAP_OPT_X_TLS_HARD</info>, <info>LDAP_OPT_X_TLS_DEMAND</info>,
  <info>LDAP_OPT_X_TLS_ALLOW</info>, <info>LDAP_OPT_X_TLS_TRY</info>. (Available as of PHP 7.0.0)


id: LIBXML_BIGLINES
type: constant
doc:
<comment>Description:</comment>
  Allows line numbers greater than 65535 to be reported correctly.
  
  Only available as of PHP 7.0.0 with Libxml &gt;= 2.9.0


id: LIBXML_COMPACT
type: constant
doc:
<comment>Description:</comment>
  Activate small nodes allocation optimization. This may speed up your application without needing
  to change the code.
  
  Only available in Libxml &gt;= 2.6.21


id: LIBXML_DTDVALID
type: constant
doc:
<comment>Description:</comment>
  Validate with the DTD
  
  Enabling validating the DTD may facilitate XML External Entity (XXE) attacks.


id: LIBXML_HTML_NODEFDTD
type: constant
doc:
<comment>Description:</comment>
  Sets HTML_PARSE_NODEFDTD flag, which prevents a default doctype being added when one is not found.
  
  Only available in Libxml &gt;= 2.7.8 (as of PHP &gt;= 5.4.0)


id: LIBXML_HTML_NOIMPLIED
type: constant
doc:
<comment>Description:</comment>
  Sets HTML_PARSE_NOIMPLIED flag, which turns off the automatic adding of implied html/body...
  elements.
  
  Only available in Libxml &gt;= 2.7.7 (as of PHP &gt;= 5.4.0)


id: LIBXML_NOEMPTYTAG
type: constant
doc:
<comment>Description:</comment>
  Expand empty tags (e.g. <return>\<br/&gt;</return> to <return>\<br&gt;\</br&gt;</return>)
  
  This option is currently just available in the  and  functions.


id: LIBXML_NOENT
type: constant
doc:
<comment>Description:</comment>
  Substitute entities
  
  Enabling entity substitution may facilitate XML External Entity (XXE) attacks.


id: LIBXML_NOXMLDECL
type: constant
doc:
<comment>Description:</comment>
  Drop the XML declaration when saving a document
  
  Only available in Libxml &gt;= 2.6.21


id: LIBXML_PARSEHUGE
type: constant
doc:
<comment>Description:</comment>
  Sets XML_PARSE_HUGE flag, which relaxes any hardcoded limit from the parser. This affects  limits
  like maximum depth of a document or the entity recursion, as well as limits of the  size of text
  nodes.
  
  Only available in Libxml &gt;= 2.7.0 (as of PHP &gt;= 5.3.2 and PHP &gt;= 5.2.12)


id: LIBXML_PEDANTIC
type: constant
doc:
<comment>Description:</comment>
  Sets XML_PARSE_PEDANTIC flag, which enables pedantic error reporting.
  
  Available as of PHP &gt;= 5.4.0


id: LIBXML_SCHEMA_CREATE
type: constant
doc:
<comment>Description:</comment>
  Create default/fixed value nodes during XSD schema validation
  
  Only available in Libxml &gt;= 2.6.14 (as of PHP &gt;= 5.5.2)


id: LOG_AUTH
type: constant
doc:
<comment>Description:</comment>
  security/authorization messages (use <info>LOG_AUTHPRIV</info> instead in systems where that constant is
  defined)


id: LOG_CONS
type: constant
doc:
<comment>Description:</comment>
  if there is an error while sending data to the system logger, write directly to the system console


id: LOG_ODELAY
type: constant
doc:
<comment>Description:</comment>
  (default) delay opening the connection until the first message is logged


id: LimitIterator
type: class
doc:
<comment>Description:</comment>
  <class>LimitIterator</class> 类允许遍历一个 <class>Iterator</class> 的限定子集的元素。


id: LimitIterator::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a LimitIterator
  
  Constructs a new <class>LimitIterator</class> from an  <strong>$iterator</strong> with a given starting  <strong>$offset</strong> and maximum
  <strong>$limit</strong>.

<comment>Param:</comment>
  <info>Iterator</info>  <strong>$iterator</strong>  The <class>Iterator</class> to limit.
  <info>int</info>       <strong>$offset</strong>    Optional offset of the limit.
  <info>int</info>       <strong>$limit</strong>     Optional count of the limit.

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


id: LimitIterator::current
type: function
doc:
<comment>Description:</comment>
  Get current element
  
  Gets the current element of the inner <class>Iterator</class>.

<comment>Return:</comment>
  <info>mixed</info>  Returns the current element or <info>null</info> if there is none.

<comment>See Also:</comment>
   * LimitIterator::key
   * LimitIterator::next
   * LimitIterator::rewind
   * LimitIterator::seek
   * LimitIterator::valid


id: LimitIterator::getPosition
type: function
doc:
<comment>Description:</comment>
  Return the current position
  
  Gets the current zero-based position of the inner <class>Iterator</class>.

<comment>Return:</comment>
  <info>int</info>  The current position.

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


id: LimitIterator::key
type: function
doc:
<comment>Description:</comment>
  Get current key
  
  Gets the key for the current item in the inner <class>Iterator</class>.

<comment>Return:</comment>
  <info>mixed</info>  Returns the key for the current item.

<comment>See Also:</comment>
   * LimitIterator::getPosition
   * LimitIterator::current
   * LimitIterator::next
   * LimitIterator::rewind
   * LimitIterator::seek
   * LimitIterator::valid


id: LimitIterator::next
type: function
doc:
<comment>Description:</comment>
  Move the iterator forward
  
  Moves the iterator forward.

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

<comment>See Also:</comment>
   * LimitIterator::current
   * LimitIterator::key
   * LimitIterator::rewind
   * LimitIterator::seek
   * LimitIterator::valid


id: LimitIterator::rewind
type: function
doc:
<comment>Description:</comment>
  Rewind the iterator to the specified starting offset
  
  Rewinds the iterator to the starting offset specified in LimitIterator::__construct.

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

<comment>See Also:</comment>
   * LimitIterator::current
   * LimitIterator::key
   * LimitIterator::next
   * LimitIterator::seek
   * LimitIterator::valid


id: LimitIterator::seek
type: function
doc:
<comment>Description:</comment>
  Seek to the given position
  
  Moves the iterator to the offset specified by <strong>$offset</strong>.

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

<comment>Return:</comment>
  <info>int</info>  Returns the offset position after seeking.

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


id: LimitIterator::valid
type: function
doc:
<comment>Description:</comment>
  Check whether the current element is valid
  
  Checks whether the current element is valid.

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

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


id: Locale
type: class
doc:
<comment>Description:</comment>
  A "Locale" is an identifier used to get language, culture, or regionally-specific behavior from an
  API. PHP locales are organized and identified the same way that the CLDR locales used by ICU (and
  many vendors of Unix-like operating systems, the Mac, Java, and so forth) use. Locales are
  identified using RFC 4646 language tags (which use hyphen, not underscore) in addition to the more
  traditional underscore-using identifiers. Unless otherwise noted the functions in this class are
  tolerant of both formats.
  
  Examples of identifiers include: en-US (English, United States)zh-Hant-TW (Chinese, Traditional
  Script, Taiwan)fr-CA, fr-FR (French for Canada and France respectively)
  
  The Locale class (and related procedural functions) are used to interact with locale
  identifiers--to verify that an ID is well-formed, valid, etc. The extensions used by CLDR in UAX
  #35 (and inherited by ICU) are valid and used wherever they would be in ICU normally.
  
  Locales cannot be instantiated as objects. All of the functions/methods provided are static.
  
  The null or empty string obtains the "root" locale. The "root" locale is equivalent to
  "en_US_POSIX" in CLDR. Language tags (and thus locale identifiers) are case insensitive. There
  exists a canonicalization function to make case match the specification.


id: Locale::DEFAULT_LOCALE
type: constant
doc:
<comment>Description:</comment>
  Used as locale parameter with the methods of the various locale affected classes, such as
  NumberFormatter. This constant would make the methods to use default locale.


id: Locale::acceptFromHttp
type: function
doc:
<comment>Description:</comment>
  Tries to find out best available locale based on HTTP "Accept-Language" header
  
  面向对象风格
  
  过程化风格
  
  Tries to find locale that can satisfy the language list that is requested by the HTTP
  "Accept-Language" header.

<comment>Param:</comment>
  <info>string</info>  <strong>$header</strong>  The string containing the "Accept-Language" header according to format in RFC
                   2616.

<comment>Return:</comment>
  <info>string|false</info>  The corresponding locale identifier.
                
                Returns <info>false</info> when the length of <strong>$header</strong> exceeds <info>INTL_MAX_LOCALE_LEN</info>.

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


id: Locale::canonicalize
type: function
doc:
<comment>Description:</comment>
  Canonicalize the locale string
  
  本函数还未编写文档，仅有参数列表。

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

<comment>Return:</comment>
  <info>string|null</info>  Canonicalized locale string.
               
               当 <strong>$locale</strong> 的长度超过 <info>INTL_MAX_LOCALE_LEN</info> 时返回 <info>null</info>。


id: Locale::composeLocale
type: function
doc:
<comment>Description:</comment>
  Returns a correctly ordered and delimited locale ID
  
  面向对象风格
  
  过程化风格
  
  Returns a correctly ordered and delimited locale ID the keys identify the particular locale ID
  subtags, and the values are the associated subtag values.

<comment>Param:</comment>
  <info>array</info>  <strong>$subtags</strong>  An <info>array</info> containing a list of key-value pairs, where the keys identify the
                   particular locale ID subtags, and the values are the associated subtag values.
                   The <return>'variant'</return> and <return>'private'</return> subtags can take maximum 15 values whereas <return>'extlang'</return>
                   can take maximum 3 values. For instance, variants are allowed with the suffix
                   ranging from 0-14. Hence the keys for the input array can be <return>variant0</return>, <return>variant1</return>,
                   …,<return>variant14</return>. In the returned locale id, the subtag is ordered by suffix resulting
                   in <return>variant0</return> followed by <return>variant1</return> followed by <return>variant2</return> and so on.  Alternatively,
                   the <return>'variant'</return>, <return>'private'</return> and <return>'extlang'</return> values can be specified as array under
                   specific key (e.g. <return>'variant'</return>). In this case no limits on the number of recognized
                   subtags apply.
                   
                   The <return>'variant'</return> and <return>'private'</return> subtags can take maximum 15 values whereas <return>'extlang'</return>
                   can take maximum 3 values. For instance, variants are allowed with the suffix
                   ranging from 0-14. Hence the keys for the input array can be <return>variant0</return>, <return>variant1</return>,
                   …,<return>variant14</return>. In the returned locale id, the subtag is ordered by suffix resulting
                   in <return>variant0</return> followed by <return>variant1</return> followed by <return>variant2</return> and so on.
                   
                   Alternatively, the <return>'variant'</return>, <return>'private'</return> and <return>'extlang'</return> values can be specified as
                   array under specific key (e.g. <return>'variant'</return>). In this case no limits on the number
                   of recognized subtags apply.

<comment>Return:</comment>
  <info>string|false</info>  The corresponding locale identifier, or <info>false</info> when <strong>$subtags</strong> is empty.

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


id: Locale::filterMatches
type: function
doc:
<comment>Description:</comment>
  Checks if a language tag filter matches with locale
  
  面向对象风格
  
  过程化风格
  
  Checks if a <strong>$languageTag</strong> filter matches with <strong>$locale</strong> according to RFC 4647's basic filtering
  algorithm

<comment>Param:</comment>
  <info>string</info>  <strong>$languageTag</strong>   The language tag to check
  <info>string</info>  <strong>$locale</strong>        The language range to check against
  <info>bool</info>    <strong>$canonicalize</strong>  If true, the arguments will be converted to canonical form before matching.

<comment>Return:</comment>
  <info>bool|null</info>  <info>true</info> if <strong>$locale</strong> matches <strong>$languageTag</strong> <info>false</info> otherwise.
             
             当 <strong>$locale</strong> 的长度超过 <info>INTL_MAX_LOCALE_LEN</info> 时返回 <info>null</info>。

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


id: Locale::getAllVariants
type: function
doc:
<comment>Description:</comment>
  Gets the variants for the input locale
  
  面向对象风格
  
  过程化风格
  
  Gets the variants for the input locale

<comment>Param:</comment>
  <info>string</info>  <strong>$locale</strong>  The locale to extract the variants from

<comment>Return:</comment>
  <info>array|null</info>  The <info>array</info> containing the list of all variants subtag for the locale or <info>null</info> if not
              present
              
              当 <strong>$locale</strong> 的长度超过 <info>INTL_MAX_LOCALE_LEN</info> 时返回 <info>null</info>。

<comment>See Also:</comment>
   * <strong>locale_get_primary_language()</strong>
   * <strong>locale_get_script()</strong>
   * <strong>locale_get_region()</strong>


id: Locale::getDefault
type: function
doc:
<comment>Description:</comment>
  Gets the default locale value from the INTL global 'default_locale'
  
  面向对象风格
  
  过程化风格
  
  Gets the default locale value. At the PHP initialization this value is set to
  'intl.default_locale' value from php.ini if that value exists or  from ICU's function
  uloc_getDefault().

<comment>Return:</comment>
  <info>string</info>  The current runtime locale

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


id: Locale::getDisplayLanguage
type: function
doc:
<comment>Description:</comment>
  Returns an appropriately localized display name for language of the inputlocale
  
  面向对象风格
  
  过程化风格
  
  Returns an appropriately localized display name for language of the input locale. If is <info>null</info> then
  the default locale is used.

<comment>Param:</comment>
  <info>string</info>       <strong>$locale</strong>         The locale to return a display language for
  <info>string|null</info>  <strong>$displayLocale</strong>  Optional format locale to use to display the language name

<comment>Return:</comment>
  <info>string|false</info>  Display name of the language for the <strong>$locale</strong> in the format appropriate for
                <strong>$displayLocale</strong>,  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>locale_get_display_name()</strong>
   * <strong>locale_get_display_script()</strong>
   * <strong>locale_get_display_region()</strong>
   * <strong>locale_get_display_variant()</strong>


id: Locale::getDisplayName
type: function
doc:
<comment>Description:</comment>
  Returns an appropriately localized display name for the input locale
  
  面向对象风格
  
  过程化风格
  
  Returns an appropriately localized display name for the input locale. If <strong>$locale</strong> is <info>null</info> then the
  default locale is used.

<comment>Param:</comment>
  <info>string</info>       <strong>$locale</strong>         The locale to return a display name for.
  <info>string|null</info>  <strong>$displayLocale</strong>  optional format locale

<comment>Return:</comment>
  <info>string|false</info>  Display name of the locale in the format appropriate for <strong>$displayLocale</strong>,  或者在失败
                时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>locale_get_display_language()</strong>
   * <strong>locale_get_display_script()</strong>
   * <strong>locale_get_display_region()</strong>
   * <strong>locale_get_display_variant()</strong>


id: Locale::getDisplayRegion
type: function
doc:
<comment>Description:</comment>
  Returns an appropriately localized display name for region of the input locale
  
  面向对象风格
  
  过程化风格
  
  Returns an appropriately localized display name for region of the input locale. If is <info>null</info> then
  the default locale is used.

<comment>Param:</comment>
  <info>string</info>       <strong>$locale</strong>         The locale to return a display region for.
  <info>string|null</info>  <strong>$displayLocale</strong>  Optional format locale to use to display the region name

<comment>Return:</comment>
  <info>string|false</info>  Display name of the region for the <strong>$locale</strong> in the format appropriate for
                <strong>$displayLocale</strong>,  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>locale_get_display_name()</strong>
   * <strong>locale_get_display_language()</strong>
   * <strong>locale_get_display_script()</strong>
   * <strong>locale_get_display_variant()</strong>


id: Locale::getDisplayScript
type: function
doc:
<comment>Description:</comment>
  Returns an appropriately localized display name for script of the input locale
  
  面向对象风格
  
  过程化风格
  
  Returns an appropriately localized display name for script of the input locale. If is <info>null</info> then
  the default locale is used.

<comment>Param:</comment>
  <info>string</info>       <strong>$locale</strong>         The locale to return a display script for
  <info>string|null</info>  <strong>$displayLocale</strong>  Optional format locale to use to display the script name

<comment>Return:</comment>
  <info>string|false</info>  Display name of the script for the <strong>$locale</strong> in the format appropriate for
                <strong>$displayLocale</strong>,  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>locale_get_display_name()</strong>
   * <strong>locale_get_display_language()</strong>
   * <strong>locale_get_display_region()</strong>
   * <strong>locale_get_display_variant()</strong>


id: Locale::getDisplayVariant
type: function
doc:
<comment>Description:</comment>
  Returns an appropriately localized display name for variants of the input locale
  
  面向对象风格
  
  过程化风格
  
  Returns an appropriately localized display name for variants of the input locale. If is <info>null</info> then
  the default locale is used.

<comment>Param:</comment>
  <info>string</info>       <strong>$locale</strong>         The locale to return a display variant for
  <info>string|null</info>  <strong>$displayLocale</strong>  Optional format locale to use to display the variant name

<comment>Return:</comment>
  <info>string|false</info>  Display name of the variant for the <strong>$locale</strong> in the format appropriate for
                <strong>$displayLocale</strong>,  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>locale_get_display_name()</strong>
   * <strong>locale_get_display_language()</strong>
   * <strong>locale_get_display_script()</strong>
   * <strong>locale_get_display_region()</strong>


id: Locale::getKeywords
type: function
doc:
<comment>Description:</comment>
  Gets the keywords for the input locale
  
  面向对象风格
  
  过程化风格
  
  Gets the keywords for the input locale.

<comment>Param:</comment>
  <info>string</info>  <strong>$locale</strong>  The locale to extract the keywords from

<comment>Return:</comment>
  <info>array|false|null</info>  Associative <info>array</info> containing the keyword-value pairs for this locale
                    
                    当 <strong>$locale</strong> 的长度超过 <info>INTL_MAX_LOCALE_LEN</info> 时返回 <info>null</info>。

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


id: Locale::getPrimaryLanguage
type: function
doc:
<comment>Description:</comment>
  Gets the primary language for the input locale
  
  面向对象风格
  
  过程化风格
  
  Gets the primary language for the input locale

<comment>Param:</comment>
  <info>string</info>  <strong>$locale</strong>  The locale to extract the primary language code from

<comment>Return:</comment>
  <info>string|null</info>  The language code associated with the language.
               
               当 <strong>$locale</strong> 的长度超过 <info>INTL_MAX_LOCALE_LEN</info> 时返回 <info>null</info>。

<comment>See Also:</comment>
   * <strong>locale_get_script()</strong>
   * <strong>locale_get_region()</strong>
   * <strong>locale_get_all_variants()</strong>


id: Locale::getRegion
type: function
doc:
<comment>Description:</comment>
  Gets the region for the input locale
  
  面向对象风格
  
  过程化风格
  
  Gets the region for the input locale.

<comment>Param:</comment>
  <info>string</info>  <strong>$locale</strong>  The locale to extract the region code from

<comment>Return:</comment>
  <info>string|null</info>  The region subtag for the locale or <info>null</info> if not present
               
               当 <strong>$locale</strong> 的长度超过 <info>INTL_MAX_LOCALE_LEN</info> 时返回 <info>null</info>。

<comment>See Also:</comment>
   * <strong>locale_get_primary_language()</strong>
   * <strong>locale_get_script()</strong>
   * <strong>locale_get_all_variants()</strong>


id: Locale::getScript
type: function
doc:
<comment>Description:</comment>
  Gets the script for the input locale
  
  面向对象风格
  
  过程化风格
  
  Gets the script for the input locale.

<comment>Param:</comment>
  <info>string</info>  <strong>$locale</strong>  The locale to extract the script code from

<comment>Return:</comment>
  <info>string|null</info>  The script subtag for the locale or <info>null</info> if not present

<comment>See Also:</comment>
   * <strong>locale_get_primary_language()</strong>
   * <strong>locale_get_region()</strong>
   * <strong>locale_get_all_variants()</strong>


id: Locale::lookup
type: function
doc:
<comment>Description:</comment>
  Searches the language tag list for the best match to the language
  
  面向对象风格
  
  过程化风格
  
  Searches the items in <strong>$languageTag</strong> for the best match to the language range specified in <strong>$locale</strong>
  according to RFC 4647's lookup algorithm.

<comment>Param:</comment>
  <info>array</info>        <strong>$languageTag</strong>    An <info>array</info> containing a list of language tags to compare to <strong>$locale</strong>.
                               Maximum 100 items allowed.
  <info>string</info>       <strong>$locale</strong>         The locale to use as the language range when matching.
  <info>bool</info>         <strong>$canonicalize</strong>   If true, the arguments will be converted to canonical form before
                               matching.
  <info>string|null</info>  <strong>$defaultLocale</strong>  The locale to use if no match is found.

<comment>Return:</comment>
  <info>string|null</info>  The closest matching language tag or default value.
               
               当 <strong>$locale</strong> 的长度超过 <info>INTL_MAX_LOCALE_LEN</info> 时返回 <info>null</info>。

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


id: Locale::parseLocale
type: function
doc:
<comment>Description:</comment>
  Returns a key-value array of locale ID subtag elements
  
  面向对象风格
  
  过程化风格
  
  Returns a key-value array of locale ID subtag elements.

<comment>Param:</comment>
  <info>string</info>  <strong>$locale</strong>  The locale to extract the subtag array from. Note: The 'variant' and 'private'
                   subtags can take maximum 15 values whereas 'extlang' can take maximum 3 values.

<comment>Return:</comment>
  <info>array|null</info>  Returns an array containing a list of key-value pairs, where the keys identify the
              particular locale ID subtags, and the values are the associated subtag values. The
              array will be ordered as the locale id subtags e.g. in the locale id if variants are
              '-varX-varY-varZ' then the returned array will have variant0=&gt;varX ,
              variant1=&gt;varY , variant2=&gt;varZ
              
              Returns <info>null</info> when the length of <strong>$locale</strong> exceeds <info>INTL_MAX_LOCALE_LEN</info>.

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


id: Locale::setDefault
type: function
doc:
<comment>Description:</comment>
  Sets the default runtime locale
  
  面向对象风格
  
  过程化风格
  
  Sets the default runtime locale to <strong>$locale</strong>. This changes the value of INTL global 'default_locale'
  locale identifier. UAX #35 extensions are accepted.

<comment>Param:</comment>
  <info>string</info>  <strong>$locale</strong>  Is a BCP 47 compliant language tag.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info>.

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


id: Lua::__call
type: function
doc:
<comment>Description:</comment>
  调用Lua函数
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>callable</info>  <strong>$lua_func</strong>  lua中的函数名。
  <info>array</info>     <strong>$args</strong>      向Lua函数传入的参数。
  <info>int</info>       <strong>$use_self</strong>  是否使用<return>self</return>。

<comment>Return:</comment>
  <info>mixed</info>  返回调用函数的结果，参数错误返回<info>null</info> ，其它错误返回<info>false</info>。

<comment>See Also:</comment>
   * __call()


id: Lua::__construct
type: function
doc:
<comment>Description:</comment>
  Lua 构造方法
  
  本函数还未编写文档，仅有参数列表。

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


id: Lua::assign
type: function
doc:
<comment>Description:</comment>
  将一个php变量赋值给Lua
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>   
  <info>string</info>  <strong>$value</strong>  

<comment>Return:</comment>
  <info>mixed</info>  赋值成功返回$this否则返回<info>null</info>


id: Lua::eval
type: function
doc:
<comment>Description:</comment>
  将字符串当做Lua代码执行
  
  本函数还未编写文档，仅有参数列表。

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

<comment>Return:</comment>
  <info>mixed</info>  返回运行结果，参数错误返回<info>null</info> ，其它错误返回<info>false</info>。


id: Lua::getVersion
type: function
doc:
<comment>Description:</comment>
  获取Lua版本
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>string</info>  返回 Lua::LUA_VERSION。


id: Lua::include
type: function
doc:
<comment>Description:</comment>
  解析Lua脚本文件
  
  本函数还未编写文档，仅有参数列表。

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

<comment>Return:</comment>
  <info>mixed</info>  返回脚本文件运行结果，参数错误返回<info>null</info> ，其它错误返回<info>false</info>。


id: Lua::registerCallback
type: function
doc:
<comment>Description:</comment>
  向Lua中注册php函数
  
  向Lua注册php函数，函数名为"$name"

<comment>Param:</comment>
  <info>string</info>    <strong>$name</strong>      
  <info>callable</info>  <strong>$function</strong>  一个有效的PHP回调函数

<comment>Return:</comment>
  <info>mixed</info>  成功返回$this，参数错误返回<info>null</info> ，其它错误返回<info>false</info>。


id: LuaClosure::__invoke
type: function
doc:
<comment>Description:</comment>
  调用 luaclosure
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>mixed</info>  <strong>$args</strong>  

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


id: LuaSandbox
type: class
doc:
<comment>Description:</comment>
  The LuaSandbox class creates a Lua environment and allows for execution of Lua code.


id: LuaSandbox::PERCENT
type: constant
doc:
<comment>Description:</comment>
  Used with LuaSandbox::getProfilerFunctionReport to return timings in percentages of the total.


id: LuaSandbox::SAMPLES
type: constant
doc:
<comment>Description:</comment>
  Used with LuaSandbox::getProfilerFunctionReport to return timings in samples.


id: LuaSandbox::SECONDS
type: constant
doc:
<comment>Description:</comment>
  Used with LuaSandbox::getProfilerFunctionReport to return timings in seconds.


id: LuaSandbox::callFunction
type: function
doc:
<comment>Description:</comment>
  Call a function in a Lua global variable
  
  Calls a function in a Lua global variable.
  
  If the name contains "." characters, the function is located via recursive table accesses, as if
  the name were a Lua expression.
  
  If the variable does not exist, or is not a function, false will be returned and a warning issued.
  
  For more information about calling Lua functions and the return values, see
  LuaSandboxFunction::call.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  Lua variable name.
  <info>mixed</info>   <strong>$args</strong>  Arguments to the function.

<comment>Return:</comment>
  <info>array|bool</info>  Returns an <info>array</info> of values returned by the Lua function, which may be empty,  或者在失
              败时返回 <info>false</info>.


id: LuaSandbox::disableProfiler
type: function
doc:
<comment>Description:</comment>
  Disable the profiler
  
  Disables the profiler.

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

<comment>See Also:</comment>
   * LuaSandbox::enableProfiler
   * LuaSandbox::getProfilerFunctionReport


id: LuaSandbox::enableProfiler
type: function
doc:
<comment>Description:</comment>
  Enable the profiler.
  
  Enables the profiler. Profiling will begin when Lua code is entered.
  
  The profiler periodically samples the Lua environment to record the running function. Testing
  indicates that at least on Linux, setting a period less than 1ms will lead to a high overrun count
  but no performance problems.

<comment>Param:</comment>
  <info>float</info>  <strong>$period</strong>  Sampling period in seconds.

<comment>Return:</comment>
  <info>bool</info>  Returns a boolean indicating whether the profiler is enabled.

<comment>See Also:</comment>
   * LuaSandbox::disableProfiler
   * LuaSandbox::getProfilerFunctionReport


id: LuaSandbox::getCPUUsage
type: function
doc:
<comment>Description:</comment>
  Fetch the current CPU time usage of the Lua environment
  
  Fetches the current CPU time usage of the Lua environment.
  
  This includes time spent in PHP callbacks.

<comment>Return:</comment>
  <info>float</info>  Returns the current CPU time usage in seconds.
         
         On Windows, this function always returns zero. On operating systems that do not support
         <info>CLOCK_THREAD_CPUTIME_ID</info>, such as FreeBSD and Mac OS X, this function will return the
         elapsed wall-clock time, not CPU time.

<comment>See Also:</comment>
   * LuaSandbox::getMemoryUsage
   * LuaSandbox::getPeakMemoryUsage
   * LuaSandbox::setCPULimit


id: LuaSandbox::getMemoryUsage
type: function
doc:
<comment>Description:</comment>
  Fetch the current memory usage of the Lua environment
  
  Fetches the current memory usage of the Lua environment.

<comment>Return:</comment>
  <info>int</info>  Returns the current memory usage in bytes.

<comment>See Also:</comment>
   * LuaSandbox::getPeakMemoryUsage
   * LuaSandbox::getCPUUsage
   * LuaSandbox::setMemoryLimit


id: LuaSandbox::getPeakMemoryUsage
type: function
doc:
<comment>Description:</comment>
  Fetch the peak memory usage of the Lua environment
  
  Fetches the peak memory usage of the Lua environment.

<comment>Return:</comment>
  <info>int</info>  Returns the peak memory usage in bytes.

<comment>See Also:</comment>
   * LuaSandbox::getMemoryUsage
   * LuaSandbox::getCPUUsage
   * LuaSandbox::setMemoryLimit


id: LuaSandbox::getProfilerFunctionReport
type: function
doc:
<comment>Description:</comment>
  Fetch profiler data
  
  For a profiling instance previously started by LuaSandbox::enableProfiler, get a report of the
  cost of each function.
  
  The measurement unit used for the cost is determined by the $units parameter:
  
  <info>LuaSandbox::SAMPLES</info>Measure in number of samples.<info>LuaSandbox::SECONDS</info>Measure in seconds of CPU
  time.<info>LuaSandbox::PERCENT</info>Measure percentage of CPU time.
  
  Measure in number of samples.
  
  Measure in seconds of CPU time.
  
  Measure percentage of CPU time.

<comment>Param:</comment>
  <info>int</info>  <strong>$units</strong>  Measurement unit constant.

<comment>Return:</comment>
  <info>array</info>  Returns profiler measurements, sorted in descending order, as an associative <info>array</info>. Keys
         are the Lua function names (with source file and line defined in angle brackets), values
         are the measurements as <info>int</info> or <info>float</info>.
         
         On Windows, this function always returns an empty array. On operating systems that do not
         support <info>CLOCK_THREAD_CPUTIME_ID</info>, such as FreeBSD and Mac OS X, this function will report
         the elapsed wall-clock time, not CPU time.


id: LuaSandbox::getVersionInfo
type: function
doc:
<comment>Description:</comment>
  Return the versions of LuaSandbox and Lua
  
  Returns the versions of LuaSandbox and Lua.

<comment>Return:</comment>
  <info>array</info>  Returns an array with two keys:
         
         elementtypedescriptionLuaSandbox<info>string</info>The version of the LuaSandbox extension.Lua<info>string</info>The
         library name and version as defined by the LUA_RELEASE macro, for example, "Lua 5.1.5".


id: LuaSandbox::loadBinary
type: function
doc:
<comment>Description:</comment>
  Load a precompiled binary chunk into the Lua environment
  
  Loads data generated by LuaSandboxFunction::dump.

<comment>Param:</comment>
  <info>string</info>  <strong>$code</strong>       Data from LuaSandboxFunction::dump.
  <info>string</info>  <strong>$chunkName</strong>  Name for the loaded function.

<comment>Return:</comment>
  <info>LuaSandboxFunction</info>  Returns a <class>LuaSandboxFunction</class>.

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


id: LuaSandbox::loadString
type: function
doc:
<comment>Description:</comment>
  Load Lua code into the Lua environment
  
  Loads Lua code into the Lua environment.
  
  This is the equivalent of standard Lua's <return>loadstring()</return> function.

<comment>Param:</comment>
  <info>string</info>  <strong>$code</strong>       Lua code.
  <info>string</info>  <strong>$chunkName</strong>  Name for the loaded chunk, for use in error traces.

<comment>Return:</comment>
  <info>LuaSandboxFunction</info>  Returns a <class>LuaSandboxFunction</class> which, when executed, will execute the passed
                      $code.

<comment>See Also:</comment>
   * LuaSandbox::registerLibrary
   * LuaSandbox::wrapPhpFunction


id: LuaSandbox::pauseUsageTimer
type: function
doc:
<comment>Description:</comment>
  Pause the CPU usage timer
  
  Pauses the CPU usage timer.
  
  This only has effect when called from within a callback from Lua. When execution returns to Lua,
  the timer will be automatically unpaused. If a new call into Lua is made, the timer will be
  unpaused for the duration of that call.
  
  If a PHP callback calls into Lua again with timer not paused, and then that Lua function calls
  into PHP again, the second PHP call will not be able to pause the timer. The logic is that even
  though the second PHP call would avoid counting the CPU usage against the limit, the first call
  still counts it.

<comment>Return:</comment>
  <info>bool</info>  Returns a <info>bool</info> indicating whether the timer is now paused.

<comment>See Also:</comment>
   * LuaSandbox::setCPULimit
   * LuaSandbox::unpauseUsageTimer


id: LuaSandbox::registerLibrary
type: function
doc:
<comment>Description:</comment>
  Register a set of PHP functions as a Lua library
  
  Registers a set of PHP functions as a Lua library, so that Lua can call the relevant PHP code.
  
  For more information about calling Lua functions and the return values, see
  LuaSandboxFunction::call.

<comment>Param:</comment>
  <info>string</info>  <strong>$libname</strong>    The name of the library. In the Lua state, the global variable of this name
                      will be set to the table of functions. If the table already exists, the new
                      functions will be added to it.
  <info>array</info>   <strong>$functions</strong>  An <info>array</info>, where each key is a function name, and each value is a corresponding
                      PHP <info>callable</info>.

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

<comment>See Also:</comment>
   * LuaSandbox::loadString
   * LuaSandbox::wrapPhpFunction


id: LuaSandbox::setCPULimit
type: function
doc:
<comment>Description:</comment>
  Set the CPU time limit for the Lua environment
  
  Sets the CPU time limit for the Lua environment.
  
  If the total user and system time used by the environment after the call to this method exceeds
  this limit, a <class>LuaSandboxTimeoutError</class> exception is thrown.
  
  Time used in PHP callbacks is included in the limit.
  
  Setting the time limit from a callback while Lua is running causes the timer to be reset, or
  started if it was not already running.
  
  On Windows, the CPU limit will be ignored. On operating systems that do not support
  <info>CLOCK_THREAD_CPUTIME_ID</info>, such as FreeBSD and Mac OS X, wall-clock time rather than CPU time will
  be limited.

<comment>Param:</comment>
  <info>float|bool</info>  <strong>$limit</strong>  Limit as a <info>float</info> in seconds, or <info>false</info> for no limit.

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

<comment>See Also:</comment>
   * LuaSandbox::getCPUUsage
   * LuaSandbox::setMemoryLimit


id: LuaSandbox::setMemoryLimit
type: function
doc:
<comment>Description:</comment>
  Set the memory limit for the Lua environment
  
  Sets the memory limit for the Lua environment.
  
  If this limit is exceeded, a <class>LuaSandboxMemoryError</class> exception is thrown.

<comment>Param:</comment>
  <info>int</info>  <strong>$limit</strong>  Memory limit in bytes.

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

<comment>See Also:</comment>
   * LuaSandbox::getMemoryUsage
   * LuaSandbox::getPeakMemoryUsage
   * LuaSandbox::setCPULimit


id: LuaSandbox::unpauseUsageTimer
type: function
doc:
<comment>Description:</comment>
  Unpause the timer paused by LuaSandbox::pauseUsageTimer
  
  Unpauses the timer paused by LuaSandbox::pauseUsageTimer.

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

<comment>See Also:</comment>
   * LuaSandbox::pauseUsageTimer
   * LuaSandbox::setCPULimit


id: LuaSandbox::wrapPhpFunction
type: function
doc:
<comment>Description:</comment>
  Wrap a PHP callable in a LuaSandboxFunction
  
  Wraps a PHP callable in a <class>LuaSandboxFunction</class>, so it can be passed into Lua as an anonymous
  function.
  
  The function must return either an array of values (which may be empty), or <info>null</info> which is
  equivalent to returning the empty array.
  
  Exceptions will be raised as errors in Lua, however only <class>LuaSandboxRuntimeError</class> exceptions may be
  caught inside Lua with <return>pcall()</return> or <return>xpcall()</return>.
  
  For more information about calling Lua functions and the return values, see
  LuaSandboxFunction::call.

<comment>Param:</comment>
  <info>callable</info>  <strong>$function</strong>  Callable to wrap.

<comment>Return:</comment>
  <info>LuaSandboxFunction</info>  Returns a <class>LuaSandboxFunction</class>.

<comment>See Also:</comment>
   * LuaSandbox::loadString
   * LuaSandbox::registerLibrary


id: LuaSandboxErrorError
type: class
doc:
<comment>Description:</comment>
  Exception thrown when Lua encounters an error inside an error handler.


id: LuaSandboxFatalError
type: class
doc:
<comment>Description:</comment>
  Uncatchable LuaSandbox exceptions.
  
  These may not be caught inside Lua using <return>pcall()</return> or <return>xpcall()</return>.


id: LuaSandboxFunction
type: class
doc:
<comment>Description:</comment>
  Represents a Lua function, allowing it to be called from PHP.
  
  A LuaSandboxFunction may be obtained as a return value from Lua, as a parameter passed to a
  callback from Lua, or by using LuaSandbox::wrapPhpFunction, LuaSandbox::loadString, or
  LuaSandbox::loadBinary.


id: LuaSandboxFunction::__construct
type: function
doc:
<comment>Description:</comment>
  Unused
  
  <class>LuaSandboxFunction</class> are obtained as a return value from Lua, as a parameter passed to a callback
  from Lua, or by using LuaSandbox::wrapPhpFunction, LuaSandbox::loadString, or
  LuaSandbox::loadBinary. They cannot be constructed directly.


id: LuaSandboxFunction::call
type: function
doc:
<comment>Description:</comment>
  Call a Lua function
  
  Calls a Lua function.
  
  Errors considered to be the fault of the PHP code will result in the function returning <info>false</info> and
  <info>E_WARNING</info> being raised, for example, a <info>resource</info> type being used as an argument. Lua errors will
  result in a <class>LuaSandboxRuntimeError</class> exception being thrown.
  
  PHP and Lua types are converted as follows:
  
  PHP <info>null</info> is Lua <return>nil</return>, and vice versa. PHP <info>int</info>s and <info>float</info>s are converted to Lua numbers. Infinity
  and <info>NAN</info> are supported.  Lua numbers without a fractional part between approximately <return>-2**53</return> and
  <return>2**53</return> are converted to PHP <info>int</info>s, with others being converted to PHP <info>float</info>s. PHP <info>bool</info>s are Lua
  booleans, and vice versa.PHP <info>string</info>s are Lua strings, and vice versa. Lua functions are PHP
  <class>LuaSandboxFunction</class> objects, and vice versa. General PHP <info>callable</info>s are not supported.  PHP <info>array</info>s
  are converted to Lua tables, and vice versa.  Note that Lua typically indexes arrays from 1, while
  PHP indexes arrays from 0. No adjustment is made for these differing conventions. Self-referential
  arrays are not supported in either direction.PHP references are dereferenced. Lua <return>__pairs</return> and
  <return>__ipairs</return> are processed. <return>__index</return> is ignored.  When converting from PHP to Lua, integer keys between
  <return>-2**53</return> and <return>2**53</return> are represented as Lua numbers. All other keys are represented as Lua strings.
  When converting from Lua to PHP, keys other than strings and numbers will result in an error, as
  will collisions when converting numbers to strings or vice versa (since PHP considers things like
  <return>$a[0]</return> and <return>$a["0"]</return> as being equivalent).  All other types are unsupported and will raise an
  error/exception, including general PHP <info>object</info>s and Lua userdata and thread types.
  
  PHP <info>null</info> is Lua <return>nil</return>, and vice versa.
  
  PHP <info>int</info>s and <info>float</info>s are converted to Lua numbers. Infinity and <info>NAN</info> are supported.
  
  Lua numbers without a fractional part between approximately <return>-2**53</return> and <return>2**53</return> are converted to PHP
  <info>int</info>s, with others being converted to PHP <info>float</info>s.
  
  PHP <info>bool</info>s are Lua booleans, and vice versa.
  
  PHP <info>string</info>s are Lua strings, and vice versa.
  
  Lua functions are PHP <class>LuaSandboxFunction</class> objects, and vice versa. General PHP <info>callable</info>s are not
  supported.
  
  PHP <info>array</info>s are converted to Lua tables, and vice versa.
  
   Note that Lua typically indexes arrays from 1, while PHP indexes arrays from 0. No adjustment is
  made for these differing conventions. Self-referential arrays are not supported in either
  direction.PHP references are dereferenced. Lua <return>__pairs</return> and <return>__ipairs</return> are processed. <return>__index</return> is
  ignored.  When converting from PHP to Lua, integer keys between <return>-2**53</return> and <return>2**53</return> are represented
  as Lua numbers. All other keys are represented as Lua strings.  When converting from Lua to PHP,
  keys other than strings and numbers will result in an error, as will collisions when converting
  numbers to strings or vice versa (since PHP considers things like <return>$a[0]</return> and <return>$a["0"]</return> as being
  equivalent).
  
  Note that Lua typically indexes arrays from 1, while PHP indexes arrays from 0. No adjustment is
  made for these differing conventions.
  
  Self-referential arrays are not supported in either direction.
  
  PHP references are dereferenced.
  
  Lua <return>__pairs</return> and <return>__ipairs</return> are processed. <return>__index</return> is ignored.
  
  When converting from PHP to Lua, integer keys between <return>-2**53</return> and <return>2**53</return> are represented as Lua
  numbers. All other keys are represented as Lua strings.
  
  When converting from Lua to PHP, keys other than strings and numbers will result in an error, as
  will collisions when converting numbers to strings or vice versa (since PHP considers things like
  <return>$a[0]</return> and <return>$a["0"]</return> as being equivalent).
  
  All other types are unsupported and will raise an error/exception, including general PHP <info>object</info>s
  and Lua userdata and thread types.
  
  Lua functions inherently return a list of results. So on success, this method returns an <info>array</info>
  containing all of the values returned by Lua, with <info>int</info> keys starting from zero. Lua may return no
  results, in which case an empty array is returned.

<comment>Param:</comment>
  <info>string</info>  <strong>$args</strong>  Arguments passed to the function.

<comment>Return:</comment>
  <info>array|bool</info>  Returns an <info>array</info> of values returned by the function, which may be empty, 或者在失败时
              返回 <info>false</info>.


id: LuaSandboxFunction::dump
type: function
doc:
<comment>Description:</comment>
  Dump the function as a binary blob
  
  Dumps the function as a binary blob.

<comment>Return:</comment>
  <info>string</info>  Returns a string that may be passed to LuaSandbox::loadBinary.


id: LuaSandboxRuntimeError
type: class
doc:
<comment>Description:</comment>
  Catchable LuaSandbox runtime exceptions.
  
  These may be caught inside Lua using <return>pcall()</return> or <return>xpcall()</return>.


id: MB_CASE_FOLD
type: constant
doc:
<comment>Description:</comment>
  Performs a full case fold conversion which removes case distinctions present in the string. This
  is used for caseless matching. This may change the length of the string. Available since PHP 7.3.


id: MB_CASE_FOLD_SIMPLE
type: constant
doc:
<comment>Description:</comment>
  Performs a simple case fold conversion which removes case distinctions present in the string. This
  is used for caseless matching. This does not change the length of the string. Used by
  case-insensitive operations internally by the MBString extension. Available as of PHP 7.3.


id: MB_CASE_LOWER
type: constant
doc:
<comment>Description:</comment>
  Performs a full lower-case folding. This may change the length of the string. This is the mode
  used by mb_strtolower().


id: MB_CASE_LOWER_SIMPLE
type: constant
doc:
<comment>Description:</comment>
  Performs a simple lower-case fold conversion. This does not change the length of the string.
  Available as of PHP 7.3.


id: MB_CASE_TITLE
type: constant
doc:
<comment>Description:</comment>
  Performs a full title-case conversion based on the Cased and CaseIgnorable derived Unicode
  properties. In particular this improves handling of quotes and apostrophes. This may change the
  length of the string.


id: MB_CASE_TITLE_SIMPLE
type: constant
doc:
<comment>Description:</comment>
  Performs simple title-case fold conversion. This does not change the length of the string.
  Available as of PHP 7.3.


id: MB_CASE_UPPER
type: constant
doc:
<comment>Description:</comment>
  Performs a full upper-case folding. This may change the length of the string. This is the mode
  used by mb_strtoupper().


id: MB_CASE_UPPER_SIMPLE
type: constant
doc:
<comment>Description:</comment>
  Performs simple upper-case fold conversion. This does not change the length of the string.
  Available as of PHP 7.3.


id: MK_E_UNAVAILABLE
type: constant
doc:
<comment>Description:</comment>
  -2147221021
  
  iMoniker COM status code, return on errors where the function call  failed due to unavailability.
  
  As of PHP 7.0.0, the value is <return>2147746275</return> on x64.


id: MT_RAND_MT19937
type: constant
doc:
<comment>Description:</comment>
  Indicates that the correct Mt19937 (Mersenne Twister) implementation will be used by the
  algorithm, when creating a <class>Random\Engine\Mt19937</class> instance using
  <strong>Random\Engine\Mt19937::__construct()</strong> or seeding the global Mersenne Twister with <strong>mt_srand()</strong>.


id: MT_RAND_PHP
type: constant
doc:
<comment>Description:</comment>
  Indicates that an incorrect Mersenne Twister implementation will be used by the algorithm, when
  creating a <class>Random\Engine\Mt19937</class> instance using <strong>Random\Engine\Mt19937::__construct()</strong> or seeding
  the global Mersenne Twister with <strong>mt_srand()</strong>.
  
  The incorrect implementation is available for backwards compatibility with <strong>mt_srand()</strong> prior to PHP
  7.1.0.
  
  本特性已自 PHP 8.3.0
  起废弃。强烈建议不要使用本特性。


id: MYSQL_CLIENT_SSL
type: constant
doc:
<comment>Description:</comment>
  使用 SSL 加密。本标志仅在 MySQL 客户端库版本为 4.x 或更高版本时可用。在 PHP 4 和 Windows 版的 PHP
  5 安装包中绑定的都是 3.23.x。


id: Memcache::add
type: function
doc:
<comment>Description:</comment>
  增加一个条目到缓存服务器
  
  <strong>Memcache::add()</strong>方法在缓存服务器之前不存在<strong>$key</strong>时， 以<strong>$key</strong>作为key存储一个变量<strong>$var</strong>到缓存服务器。 同样
  可以使用函数<strong>memcache_add()</strong>。

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>     将要分配给变量的key。
  <info>mixed</info>   <strong>$var</strong>     将要被存储的变量。字符串和整型被以原文存储，其他类型序列化后存储。
  <info>int</info>     <strong>$flag</strong>    使用<info>MEMCACHE_COMPRESSED</info>标记对数据进行压缩(使用zlib)。
  <info>int</info>     <strong>$expire</strong>  当前写入缓存的数据的失效时间。如果此值设置为0表明此数据永不过期。你可以设置一个
                   UNIX时间戳或 以秒为单位的整数（从当前算起的时间差）来说明此数据的过期时间，但是在
                   后一种设置方式中，不能超过 2592000秒（30天）。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 如果这个key已经存在返回<info>false</info>。 <strong>Memcache::add()</strong>方
        法的其他行为类似 <strong>Memcache::set()</strong>。

<comment>See Also:</comment>
   * <strong>Memcache::set()</strong>
   * <strong>Memcache::replace()</strong>


id: Memcache::addServer
type: function
doc:
<comment>Description:</comment>
  向连接池中添加一个memcache服务器
  
  <strong>Memcache::addServer()</strong> 增加一个服务器到连接池中。也可以使用 <strong>memcache_add_server()</strong> 函数。
  
  当使用这个方法的时候(与<strong>Memcache::connect()</strong>和<strong>Memcache::pconnect()</strong>相反) 网络连接并不会立刻建立，而是
  直到真正使用的时候才建立。 因此在加入大量服务器到连接池中时也是没有开销的，因为它们可能并不会被使
  用。
  
  故障转移可能在方法的任何一个层次发生，通常只要其他服务器可用用户就不会感受到。任何的socket或
  memcache服务器级别的错误 （比如内存溢出）都可能导致故障转移。而一般的客户端错误比如使用
  Memcache::add尝试增加一个已经存在的key则不会导致故障转移。
  
  这个方法在2.0.0版本加入Memcache。

<comment>Param:</comment>
  <info>string</info>    <strong>$host</strong>              要连接的memcached服务端监听的主机位置。这个参数通常指定其他类型的传输
                               比如Unix域套接字使用 <return>unix:///path/to/memcached.sock</return>，这种情况下参数
                               <strong>$port</strong> 必须设置为<return>0</return>。
  <info>int</info>       <strong>$port</strong>              要连接的memcached服务端监听的端口。当使用UNIX域套接字连接时设置为<return>0</return>。
                               
                               注意：如果未指定 <strong>$port</strong>，默认为 memcache.default_port。因此，明智的做
                               法是调用此方法时明确指定端口。
  <info>bool</info>      <strong>$persistent</strong>        控制是否使用持久化连接。默认<info>true</info>。
  <info>int</info>       <strong>$weight</strong>            为此服务器创建的桶的数量，用来控制此服务器被选中的权重，单个服务器被
                               选中的概率是相对于所有服务器weight总和而言的。
  <info>int</info>       <strong>$timeout</strong>           连接持续（超时）时间（单位秒），默认值1秒，修改此值之前请三思，过长的
                               连接持续时间可能会导致失去所有的缓存优势。
  <info>int</info>       <strong>$retry_interval</strong>    服务器连接失败时重试的间隔时间，默认值15秒。如果此参数设置为-1表示不
                               重试。此参数和<strong>$persistent</strong>参数在扩展以 <strong>dl()</strong>函数动态加载的时候无效。
                               
                               每个失败的连接结构有自己的超时时间，并且在它失效之前选择后端服务请求
                               时该结构会被跳过。一旦一个连接失效， 它将会被成功重新连接或被标记为失
                               败连接以在下一个<strong>$retry_interval</strong>秒重连。 典型的影响是每个web服务子进程
                               在服务于一个页面时将会每<strong>$retry_interval</strong>秒 尝试重新连接一次。
  <info>bool</info>      <strong>$status</strong>            控制此服务器是否可以被标记为在线状态。设置此参数值为<info>false</info>并且
                               <strong>$retry_interval</strong>参数 设置为-1时允许将失败的服务器保留在一个池中以免影
                               响key的分配算法。对于这个服务器的请求会进行故障转移或者立即失败， 这
                               受限于<strong>$memcache.allow_failover</strong>参数的设置。该参数默认<info>true</info>，表明允许进
                               行故障转移。
  <info>callable</info>  <strong>$failure_callback</strong>  允许用户指定一个运行时发生错误后的回调函数。回调函数会在故障转移之前
                               运行。回调函数会接受到两个参数，分别是失败主机的 主机名和端口号。
  <info>int</info>       <strong>$timeoutms</strong>         

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

<comment>See Also:</comment>
   * <strong>Memcache::connect()</strong>
   * <strong>Memcache::pconnect()</strong>
   * <strong>Memcache::close()</strong>
   * <strong>Memcache::setServerParams()</strong>
   * <strong>Memcache::getServerStatus()</strong>


id: Memcache::close
type: function
doc:
<comment>Description:</comment>
  关闭memcache连接
  
  <strong>Memcache::close()</strong>关闭到memcached服务端的连接。这个函数不会关闭持久化连接， 持久化连接仅仅会在web服
  务器关机/重启时关闭。与之对应的，你也可以使用<strong>memcache_close()</strong>函数。

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

<comment>See Also:</comment>
   * <strong>Memcache::connect()</strong>
   * <strong>Memcache::pconnect()</strong>


id: Memcache::connect
type: function
doc:
<comment>Description:</comment>
  打开一个memcached服务端连接
  
  <strong>Memcache::connect()</strong>建立一个到memcached服务端的连接。 使用方法 <strong>Memcache::connect()</strong>打开的连接在脚本
  执行结束后会自动关闭。当然，你也可以使用方法 <strong>Memcache::close()</strong>来主动关闭。 同时你也可以使用
  <strong>memcache_connect()</strong>函数来获取一个连接。

<comment>Param:</comment>
  <info>string</info>  <strong>$host</strong>     memcached服务端监听主机地址。这个参数也可以指定为其他传输方式比如
                    <return>unix:///path/to/memcached.sock</return> 来使用Unix域socket，在这种方式下，<strong>$port</strong>参数必须设
                    置为<return>0</return>。
  <info>int</info>     <strong>$port</strong>     memcached服务端监听端口。当使用Unix域socket的时候要设置此参数为<return>0</return>。
                    
                    注意：如果未指定 <strong>$port</strong>，默认为 memcache.default_port。因此，明智的做法是调用此方
                    法时明确指定端口。
  <info>int</info>     <strong>$timeout</strong>  连接持续（超时）时间，单位秒。默认值1秒，修改此值之前请三思，过长的连接持续时间
                    可能会导致失去所有的缓存优势。

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

<comment>See Also:</comment>
   * <strong>Memcache::pconnect()</strong>
   * <strong>Memcache::close()</strong>


id: Memcache::decrement
type: function
doc:
<comment>Description:</comment>
  减小元素的值
  
  <strong>Memcache::decrement()</strong>方法将元素的值减小<strong>$value</strong>。 类似于  <strong>Memcache::increment()</strong>方法，首先将元素当前
  值转换成数值然后减去<strong>$value</strong>。  新的元素的值不会小于0。   不要将<strong>Memcache::decrement()</strong>方法用于压缩存
  储的元素，那样作会导致 <strong>Memcache::get()</strong>方法获取值会失败。  <strong>Memcache::decrement()</strong>在元素不存在时不能
  创建它。 同样可以使用<strong>memcache_decrement()</strong>函数来完成相同的工作。
  
  新的元素的值不会小于0。
  
  不要将<strong>Memcache::decrement()</strong>方法用于压缩存储的元素，那样作会导致 <strong>Memcache::get()</strong>方法获取值会失败。

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>    要减小值的元素的key。
  <info>int</info>     <strong>$value</strong>  <strong>$value</strong>参数指要将指定元素的值减小多少。

<comment>Return:</comment>
  <info>int|false</info>  成功的时候返回元素的新值 或者在失败时返回 <info>false</info>

<comment>See Also:</comment>
   * <strong>Memcache::increment()</strong>
   * <strong>Memcache::replace()</strong>


id: Memcache::delete
type: function
doc:
<comment>Description:</comment>
  从服务端删除一个元素
  
  <strong>Memcache::delete()</strong> 通过 <strong>$key</strong> 删除元素。

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>      要删除的元素的key。
  <info>int</info>     <strong>$timeout</strong>  不支持此弃用参数，并且默认为 <return>0</return> 秒。不要使用此参数。

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

<comment>See Also:</comment>
   * <strong>Memcache::set()</strong>
   * <strong>Memcache::replace()</strong>


id: Memcache::flush
type: function
doc:
<comment>Description:</comment>
  清洗（删除）已经存储的所有的元素
  
  <strong>Memcache::flush()</strong>立即使所有已经存在的元素失效。方法<strong>Memcache::flush()</strong> 并不会真正的释放任何资源，而
  是仅仅标记所有元素都失效了，因此已经被使用的内存会被新的元素复写。 同样你也可以使用函数
  <strong>memcache_flush()</strong>完成相同功能。

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


id: Memcache::get
type: function
doc:
<comment>Description:</comment>
  从服务端检回一个元素
  
  如果此时服务器上存在这样的 <strong>$key</strong>，<strong>Memcache::get()</strong> 返回先前存储的元素数据。
  
  你可以给<strong>Memcache::get()</strong>方法传递一个数组（多个key）来获取一个数组的元素值，返回的数组仅仅包含从 服
  务端查找到的key-value对。

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>    要获取值的key或key数组。
  <info>int</info>     <strong>$flags</strong>  如果给定这个参数（以引用方式传递），该参数会被写入一些key对应的信息。这些标记和
                  <strong>Memcache::set()</strong>方法中的同名参数 意义相同。用int值的低位保留了pecl/memcache的内部用
                  法（比如：用来说明压缩和序列化状态）。（译注：最后一位表明是否序列化，倒数第二位表
                  明是否经过压缩，  比如：如果此值为1表示经过序列化，但未经过压缩，2表明压缩而未序列
                  化，3表明压缩并且序列化，0表明未经过压缩和序列化，具体算法可查找linux文件权限算法
                  相关资料）

<comment>Return:</comment>
  <info>string</info>  返回与 <strong>$key</strong> 关联的值或当 <strong>$key</strong> 为 <info>array</info> 时找到的键值对数组。失败时返回 <info>false</info>，未找到 <strong>$key</strong>
          或 <strong>$key</strong> 为空 <info>array</info>。


id: Memcache::getExtendedStats
type: function
doc:
<comment>Description:</comment>
  缓存服务器池中所有服务器统计信息
  
  <strong>Memcache::getExtendedStats()</strong> 返回一个二维关联数据的服务器统计信息。数组的key由host:port方式 组成，
  无效的服务器返回的统计信息被设置为false，同样的，你可以使用函数 <strong>memcache_get_extended_stats()</strong>。
  
  这个函数在 Memcache 2.0.0 版本加入。
  
  (译注)获取 Memcache 内所有数据方法：首先使用 getExtendedStats('slabs') 获取到每个服务器上活动
  slabs 分块的 id， 然后 使用 getExtendedStats('cachedump', $slabid, $limit) 来获取每个 slab 里面缓
  存的项，其中 $slabid 是 slab 分块 id， $limit 指 期望获取其中的多少条记录。

<comment>Param:</comment>
  <info>string</info>  <strong>$type</strong>    期望抓取的统计信息类型，可以使用的值有 {reset, malloc, maps, cachedump, slabs,
                   items, sizes}。 通过 memcached 协议指定这些附加参数是为了方便 memcache 开发者（检
                   查其中的变动）。
  <info>int</info>     <strong>$slabid</strong>  用于与参数 <strong>$type</strong> 联合从指定 slab 分块拷贝数据，cachedump 命令会完全占用服务器通常
                   用于 比较严格的调试。
  <info>int</info>     <strong>$limit</strong>   用于和参数<strong>$type</strong>联合来设置 cachedump 时从服务端获取的实体条数。

<comment>Return:</comment>
  <info>array</info>  返回一个二维关联数组的服务器统计信息或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>Memcache::getVersion()</strong>
   * <strong>Memcache::getStats()</strong>


id: Memcache::getServerStatus
type: function
doc:
<comment>Description:</comment>
  用于获取一个服务器的在线/离线状态
  
  <strong>Memcache::getServerStatus()</strong> 返回一个服务器的在线/离线状态，你也同样可以使用 函数
  <strong>memcache_get_server_status()</strong>。
  
  这个函数在 memcache 2.1.0 版本加入。

<comment>Param:</comment>
  <info>string</info>  <strong>$host</strong>  主机监听地址。
  <info>int</info>     <strong>$port</strong>  主机监听端口，默认 11211.

<comment>Return:</comment>
  <info>int</info>  返回一个服务器的状态，0 表示服务器离线，非 0 表示在线。

<comment>See Also:</comment>
   * <strong>Memcache::addServer()</strong>
   * <strong>Memcache::setServerParams()</strong>


id: Memcache::getStats
type: function
doc:
<comment>Description:</comment>
  获取服务器统计信息
  
  <strong>Memcache::getStats()</strong>返回一个关联数据的服务器统计信息。数组key是统计信息名， 值就是统计信息的值。同
  样你可以使用函数<strong>memcache_get_stats()</strong>。

<comment>Param:</comment>
  <info>string</info>  <strong>$type</strong>    期望抓取的统计信息类型，可以使用的值有{reset, malloc, maps, cachedump, slabs,
                   items, sizes}。 通过memcached协议指定这些附加参数是为了方便memcache开发者(检查其
                   中的变动)。
  <info>int</info>     <strong>$slabid</strong>  用于与参数<strong>$type</strong>联合从指定slab分块拷贝数据，cachedump命令会完全占用服务器通常用于
                   比较严格的调试。
  <info>int</info>     <strong>$limit</strong>   用于和参数<strong>$type</strong>联合来设置cachedump时从服务端获取的实体条数。

<comment>Return:</comment>
  <info>array|false</info>  返回关联数组表示的服务器统计信息 或者在失败时返回 <info>false</info>

<comment>See Also:</comment>
   * <strong>Memcache::getVersion()</strong>
   * <strong>Memcache::getExtendedStats()</strong>


id: Memcache::getVersion
type: function
doc:
<comment>Description:</comment>
  返回服务器版本信息
  
  <strong>Memcache::getVersion()</strong> 返回一个字符串表示的服务端版本号。 同样你也可以使用函数
  <strong>memcache_get_version()</strong>。

<comment>Return:</comment>
  <info>string|false</info>  返回服务端版本号 或者在失败时返回 <info>false</info>

<comment>See Also:</comment>
   * <strong>Memcache::getExtendedStats()</strong>
   * <strong>Memcache::getStats()</strong>


id: Memcache::increment
type: function
doc:
<comment>Description:</comment>
  增加一个元素的值
  
  <strong>Memcache::increment()</strong> 将指定元素的值增加 <strong>$value</strong>。如果指定的 <strong>$key</strong> 对应的元素不是数值类型并且不能被
  转换为数值，会将此值修改为 <strong>$value</strong>。 <strong>Memcache::increment()</strong> 不会在 key 对应元素不存在时创建元素。
  不要在经过压缩存储的元素上使用 <strong>Memcache::increment()</strong>，因为这样作会导致后续对 <strong>Memcache::get()</strong> 的调
  用失败。  同样你也可以使用函数 <strong>memcache_increment()</strong>。
  
  不要在经过压缩存储的元素上使用 <strong>Memcache::increment()</strong>，因为这样作会导致后续对 <strong>Memcache::get()</strong> 的调
  用失败。

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>    将要增加值的元素的 key。
  <info>int</info>     <strong>$value</strong>  参数 <strong>$value</strong> 表明要将指定元素值增加多少。

<comment>Return:</comment>
  <info>int|false</info>  成功时返回新的元素值 或者在失败时返回 <info>false</info>

<comment>See Also:</comment>
   * <strong>Memcache::decrement()</strong>
   * <strong>Memcache::replace()</strong>


id: Memcache::pconnect
type: function
doc:
<comment>Description:</comment>
  打开一个到服务器的持久化连接
  
  <strong>Memcache::pconnect()</strong> 和 <strong>Memcache::connect()</strong> 非常类似，不同点在于这里建立的连接是持久化的。 这个连
  接不会在脚本执行结束后或者 <strong>Memcache::close()</strong> 被调用后关闭。 同样你也可以使用函数
  <strong>memcache_pconnect()</strong>。

<comment>Param:</comment>
  <info>string</info>  <strong>$host</strong>     服务端监听的主机地址。这个参数还可以指定为其他传输方式比如
                    <return>unix:///path/to/memcached.sock</return> 来使用 Unix 域套接字，使用这种方式 <strong>$port</strong> 参数必须
                    设置为 <return>0</return>。
  <info>int</info>     <strong>$port</strong>     服务端监听的端口号。使用 Unix 域套接字的时候需要将这个参数设置为 <return>0</return>。
  <info>int</info>     <strong>$timeout</strong>  连接持续（超时）时间，单位秒。默认值 1 秒，修改此值之前请三思，过长的连接持续时
                    间可能会导致失去所有的缓存优势。

<comment>Return:</comment>
  <info>mixed</info>  返回一个 Memcache 对象 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>Memcache::connect()</strong>


id: Memcache::replace
type: function
doc:
<comment>Description:</comment>
  替换已经存在的元素的值
  
  <strong>Memcache::replace()</strong> 通过 <strong>$key</strong> 来查找元素并替换其值。当 key 对应的元素不存在时，<strong>Memcache::replace()</strong>
  返回 <info>false</info>。其他方面 <strong>Memcache::replace()</strong> 的行为和 <strong>Memcache::set()</strong> 一样。 同样你也可以使用函数
  <strong>memcache_replace()</strong>。

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>     期望替换值的元素的 key。
  <info>mixed</info>   <strong>$var</strong>     将要存储的新的值，字符串和数值直接存储，其他类型序列化后存储。
  <info>int</info>     <strong>$flag</strong>    使用 <info>MEMCACHE_COMPRESSED</info> 指定对值进行压缩（使用 zlib）。
  <info>int</info>     <strong>$expire</strong>  当前写入缓存的数据的失效时间。如果此值设置为0表明此数据永不过期。你可以设置一个
                   UNIX 时间戳或 以秒为单位的整数（从当前算起的时间差）来说明此数据的过期时间，但是
                   在后一种设置方式中，不能超过 2592000 秒（30天）。

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

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


id: Memcache::set
type: function
doc:
<comment>Description:</comment>
  存储数据到服务器
  
  <strong>Memcache::set()</strong> 向 <strong>$key</strong> 存储一个元素值为 <strong>$var</strong>。参数 <strong>$expire</strong> 是以秒为单位的失效时间， 如果设置为0表
  明该元素永不过期（但是它可能会因为为了给其他项分配空间而被删除）。如果你希望存储的元素 经过压缩
  （使用 zlib），你可以设置 <strong>$flag</strong> 的值为 <info>MEMCACHE_COMPRESSED</info>。  谨记：资源类型变量（比如文件或连接）
  不能被存储在缓存中，因为它们在序列化状态不能被完整描述。  同样你也可以使用函数 <strong>memcache_set()</strong>。
  
  谨记：资源类型变量（比如文件或连接）不能被存储在缓存中，因为它们在序列化状态不能被完整描述。

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>     要设置值的 key。
  <info>mixed</info>   <strong>$var</strong>     要存储的值，字符串和数值直接存储，其他类型序列化后存储。
  <info>int</info>     <strong>$flag</strong>    使用 <info>MEMCACHE_COMPRESSED</info> 指定对值进行压缩（使用 zlib）。
  <info>int</info>     <strong>$expire</strong>  当前写入缓存的数据的失效时间。如果此值设置为0表明此数据永不过期。你可以设置一个
                   UNIX 时间戳或 以秒为单位的整数（从当前算起的时间差）来说明此数据的过期时间，但是
                   在后一种设置方式中，不能超过 2592000 秒（30天）。

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

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


id: Memcache::setCompressThreshold
type: function
doc:
<comment>Description:</comment>
  开启大值自动压缩
  
  <strong>Memcache::setCompressThreshold()</strong> 开启对于大值的自动压缩。 同样你也可以使用函数
  <strong>memcache_set_compress_threshold()</strong>。
  
  此函数在 memcache 2.0.0 加入。

<comment>Param:</comment>
  <info>int</info>  <strong>$threshold</strong>   控制多大值进行自动压缩的阈值。
  <info></info>     <strong>$min_saving</strong>  指定经过压缩实际存储的值的压缩率，支持的值必须在0和1之间。默认值是 0.2 表示 20%
                    压缩率。

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


id: Memcache::setServerParams
type: function
doc:
<comment>Description:</comment>
  运行时修改服务器参数和状态
  
  <strong>Memcache::setServerParams()</strong> 用于运行时修改服务器参数。 同样你可以使用函数
  <strong>memcache_set_server_params()</strong>。
  
  在 memcache 2.1.0 加入。

<comment>Param:</comment>
  <info>string</info>    <strong>$host</strong>              服务端监听地址。
  <info>int</info>       <strong>$port</strong>              服务端监听端口。
  <info>int</info>       <strong>$timeout</strong>           连接持续（超时）时间（单位秒），默认值 1 秒，修改此值之前请三思，过长
                               的连接持续时间可能会导致失去所有的缓存优势。
  <info>int</info>       <strong>$retry_interval</strong>    服务器连接失败时重试的间隔时间，默认值 15 秒。如果此参数设置为 -1 表
                               示不重试。此参数和 <strong>$persistent</strong> 参数在扩展以 <strong>dl()</strong> 函数动态加载的时候无
                               效。
  <info>bool</info>      <strong>$status</strong>            控制此服务器是否可以被标记为在线状态。设置此参数值为 <info>false</info> 并且
                               <strong>$retry_interval</strong> 参数 设置为 -1 时允许将失败的服务器保留在一个池中以免
                               影响 key 的分配算法。对于这个服务器的请求会进行故障转移或者立即失败，
                               这受限于 <strong>$memcache.allow_failover</strong> 参数的设置。该参数默认 <info>true</info>，表明允
                               许进行故障转移。
  <info>callable</info>  <strong>$failure_callback</strong>  允许用户指定一个运行时发生错误后的回调函数。回调函数会在故障转移之前
                               运行。回调函数会接受到两个参数，分别是失败主机的 主机名和端口号。

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

<comment>See Also:</comment>
   * <strong>Memcache::addServer()</strong>
   * <strong>Memcache::getServerStatus()</strong>


id: Memcached::GET_EXTENDED
type: constant
doc:
<comment>Description:</comment>
  <strong>Memcached::get()</strong>、<strong>Memcached::getMulti()</strong> 和 <strong>Memcached::getMultiByKey()</strong> 的 flag，确保返回 CAS 令牌
  值。
  
  自 Memcached 3.0.0 起可用。


id: Memcached::GET_PRESERVE_ORDER
type: constant
doc:
<comment>Description:</comment>
  一个用于 <strong>Memcached::getMulti()</strong> 和 <strong>Memcached::getMultiByKey()</strong> 的标记用以确保返回的 key 和请求的 key
  顺序保持一致。 不存在的 key 将会得到一个 NULL 值。


id: Memcached::HAVE_MSGPACK
type: constant
doc:
<comment>Description:</comment>
  表示 msgpack 序列化支持是否有效。
  
  类型：<info>bool</info>。
  
  自 Memcached 3.0.0 起可用。


id: Memcached::OPT_BINARY_PROTOCOL
type: constant
doc:
<comment>Description:</comment>
  开启使用二进制协议。请注意这个选项不能在一个打开的连接上进行切换。
  
  类型：<return>boolean</return>，默认：<info>false</info>。


id: Memcached::OPT_BUFFER_WRITES
type: constant
doc:
<comment>Description:</comment>
  开启或关闭 I/O 缓存。开启 I/O 缓存会导致存储命令不实际发送而是存储到缓冲区中。任意的检索数据操作都
  会导致 缓存中的数据被发送到远程服务端。退出连接或关闭连接也会导致缓存数据被发送到远程服务端。
  
  类型：<return>boolean</return>，默认：<info>false</info>。


id: Memcached::OPT_CACHE_LOOKUPS
type: constant
doc:
<comment>Description:</comment>
  开启或禁用 DNS 查找缓存。
  
  类型：<return>boolean</return>，默认：<info>false</info>。


id: Memcached::OPT_COMPRESSION
type: constant
doc:
<comment>Description:</comment>
  开启或关闭压缩功能。当开启的时候，item 的值超过某个阈值（当前是 100 bytes）时，会首先对值进行压缩
  然后存储，并 在获取该值时进行解压缩然后返回，使得压缩对应用层透明。
  
  类型：<info>bool</info>，默认：<info>true</info>。


id: Memcached::OPT_CONNECT_TIMEOUT
type: constant
doc:
<comment>Description:</comment>
  在非阻塞模式下这里设置的值就是 socket 连接的超时时间，单位是毫秒。
  
  类型：<info>int</info>，默认：<return>1000</return>。


id: Memcached::OPT_DISTRIBUTION
type: constant
doc:
<comment>Description:</comment>
  指定元素 key 分布到各个服务器的方法。当前支持的方法有余数分步法合一致性 hash 算法两种。一致性 hash
  算法提供 了更好的分配策略并且在添加服务器到集群时可以最小化缓存丢失。
  
  类型：<info>int</info>，默认:：<info>Memcached::DISTRIBUTION_MODULA</info>。


id: Memcached::OPT_HASH
type: constant
doc:
<comment>Description:</comment>
  指定存储元素 key 使用的 hash 算法。可用的值是 <info>Memcached::HASH_*</info> 系列的常量。 每种 hash 算法都有它
  的优势和劣势，在你不了解或不确定哪种算法对你更有利时，请使用默认值。
  
  类型：<info>int</info>，默认：<info>Memcached::HASH_DEFAULT</info>


id: Memcached::OPT_LIBKETAMA_COMPATIBLE
type: constant
doc:
<comment>Description:</comment>
  开启或关闭兼容的 libketama 类行为。当开启此选项后，元素 key 的 hash 算法将会被设置为 md5 并且分布
  算法将会 采用带有权重的一致性 hash 分布。这一点非常有用因为其他基于 libketama 的客户端（比如
  Python、Ruby 等）在同样 的服务端配置下可以透明的访问 key。
  
  如果你要使用一致性 hash 算法强烈建议开启此选项，并且这个选项可能在未来的发布版中被设置为默认开启。
  
  类型：<return>boolean</return>，默认：<info>false</info>。


id: Memcached::OPT_NOREPLY
type: constant
doc:
<comment>Description:</comment>
  启用或禁用忽略存储命令的结果（set、add、replace、append、prepend、delete、increment、decrement
  等）。存储命令将会直接发送而无需花费时间等待回复（没有回复）。Memcached::get() 等检索命令不受此设
  置的影响。
  
  类型：<info>bool</info>，默认：<info>false</info>。


id: Memcached::OPT_NO_BLOCK
type: constant
doc:
<comment>Description:</comment>
  开启或关闭异步 I/O。这将使得存储函数传输速度最大化。
  
  类型：<return>boolean</return>，默认：<info>false</info>。


id: Memcached::OPT_POLL_TIMEOUT
type: constant
doc:
<comment>Description:</comment>
  poll 连接超时时间，单位毫秒。
  
  类型：<info>int</info>，默认：<return>1000</return>。


id: Memcached::OPT_PREFIX_KEY
type: constant
doc:
<comment>Description:</comment>
  可以用于为 key 创建“域”。这个值将会被作为每个 key 的前缀，它不能长于 <return>128</return> 个字符， 并且将会缩短最大
  可允许的 key 的长度。这个前缀仅仅用于被存储的元素的 key，而不会用于服务器 key。
  
  类型：<info>string</info>，默认：<return>""</return>。


id: Memcached::OPT_RECV_TIMEOUT
type: constant
doc:
<comment>Description:</comment>
  socket 读取超时时间，单位微秒。在这种情况下您不能使用非阻塞 I/O，这将使得您仍然有数据会读取超时。
  
  类型：<info>int</info>，默认：<return>0</return>。


id: Memcached::OPT_RETRY_TIMEOUT
type: constant
doc:
<comment>Description:</comment>
  等待失败的连接重试的时间，单位秒。
  
  类型：<info>int</info>，默认：<return>0</return>。


id: Memcached::OPT_SEND_TIMEOUT
type: constant
doc:
<comment>Description:</comment>
  socket 发送超时时间，单位微秒。在这种情况下您不能使用非阻塞 I/O，这将使得您仍然有数据会发送超时。
  
  类型：<info>int</info>，默认：<return>0</return>。


id: Memcached::OPT_SERIALIZER
type: constant
doc:
<comment>Description:</comment>
  指定对于非标量值进行序列化的序列化工具。可用的值有 <info>Memcached::SERIALIZER_PHP</info> 和
  <info>Memcached::SERIALIZER_IGBINARY</info>。后者仅在 memcached 配置时开启 <return>--enable-memcached-igbinary</return> 选项并且
  <return>igbinary</return> 扩展被加载时才有效。
  
  类型：<info>int</info>，默认：<info>Memcached::SERIALIZER_PHP</info>。


id: Memcached::OPT_SERVER_FAILURE_LIMIT
type: constant
doc:
<comment>Description:</comment>
  指定一个服务器连接的失败重试次数限制。在达到此数量的失败重连后此服务器将被从服务器池中移除。
  
  类型：<info>int</info>，默认：<return>0</return>。


id: Memcached::OPT_TCP_NODELAY
type: constant
doc:
<comment>Description:</comment>
  开启或关闭已连接 socket 的无延迟特性（在某些幻境可能会带来速度上的提升）。
  
  类型：<return>boolean</return>，默认：<info>false</info>。


id: Memcached::RES_NOTSTORED
type: constant
doc:
<comment>Description:</comment>
  元素没有被存储，但并不是因为一个错误。这通常表明 add（元素已存在）或 replace（元素不存在）方式存储
  数据失败或者元素已经在一个删除序列中（延时删除）。


id: Memcached::__construct
type: function
doc:
<comment>Description:</comment>
  创建 Memcached 实例
  
  创建 Memcached 实例表示连接到 Memcached 服务端。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string|null</info>    <strong>$persistent_id</strong>   默认情况下，在请求结束后会销毁 Memcached 实例。但可以在创建时通过
                                  <strong>$persistent_id</strong> 为每个实例指定唯一的 ID，在请求间共享实例。所有通过
                                  相同的 <strong>$persistent_id</strong> 值创建的实例共享同一个连接。
  <info>callable|null</info>  <strong>$callback</strong>        
  <info>string|null</info>    <strong>$connection_str</strong>  


id: Memcached::add
type: function
doc:
<comment>Description:</comment>
  向新 key 添加元素
  
  <strong>Memcached::add()</strong> 与 Memcached::set 类似，但如果 <strong>$key</strong> 已经在服务端存在，则操作失败。

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>         用于存储值的键名。
  <info>mixed</info>   <strong>$value</strong>       存储的值。
  <info>int</info>     <strong>$expiration</strong>  到期时间，默认为 0。 更多信息请参见到期时间。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 如果 key 已经存在，Memcached::getResultCode 将会
        返回 <info>Memcached::RES_NOTSTORED</info>。

<comment>See Also:</comment>
   * Memcached::addByKey
   * Memcached::set
   * Memcached::replace


id: Memcached::addByKey
type: function
doc:
<comment>Description:</comment>
  在特定服务器上向新 key 添加元素
  
  <strong>Memcached::addByKey()</strong> 在功能上等同于 Memcached::add，只是可以自由的指定 <strong>$server_key</strong> 用于将 <strong>$key</strong> 映
  射到特定的服务器。如果需要将一堆相关的 key 保存在特定的服务器时非常有用。(译注: $server_key 也是普
  通的 key, ByKey 系列接口的工作过程是: 首先, 对 $server_key 进行 hash, 得到 $server_key 应该存储的
  服务器, 然后将相应的操作在 $server_key 所在的服务器上进行。)

<comment>Param:</comment>
  <info>string</info>  <strong>$server_key</strong>  本键名用于识别储存和读取值的服务器。没有将实际的键名散列到具体的项目，而是在
                       决定与哪一个 memcached 服务器通信时将其散列为服务器键名。这使得关联的项目在单
                       一的服务上被组合起来以提高多重操作的效率。
  <info>string</info>  <strong>$key</strong>         用于存储值的键名。
  <info>mixed</info>   <strong>$value</strong>       存储的值。
  <info>int</info>     <strong>$expiration</strong>  到期时间，默认为 0。 更多信息请参见到期时间。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。如果 key 已经存在，Memcached::getResultCode 将会返
        回 <info>Memcached::RES_NOTSTORED</info>。

<comment>See Also:</comment>
   * Memcached::add
   * Memcached::set
   * Memcached::replace


id: Memcached::addServer
type: function
doc:
<comment>Description:</comment>
  向服务器池增加服务器
  
  <strong>Memcached::addServer()</strong> 增加指定服务器到服务器池。此时不会与服务端建立连接，但如果使用一致性 key 分
  发选项（<info>Memcached::DISTRIBUTION_CONSISTENT</info> 或 <info>Memcached::OPT_LIBKETAMA_COMPATIBLE</info>），则必须更新一
  些内部的数据结构。 因此，如果需要增加多台服务器，最好使用 Memcached::addServers 以确保这种更新只发
  生一次。
  
  同一台服务器可以在服务器池中多次出现，因为没有做重复检测。但并不推荐这样做，对于期望提高某台服务器
  的权重，请使用 <strong>$weight</strong> 参数。

<comment>Param:</comment>
  <info>string</info>  <strong>$host</strong>    memcached 服务端主机名。如果主机名无效，相关的数据操作的结果代码将被设置为
                   <info>Memcached::RES_HOST_LOOKUP_FAILURE</info>。从 2.0.0b1 版本开始，这个参数还可以指定 unix
                   套接字文件的路径。例如：<return>/path/to/memcached.sock</return> 使用 UNIX 域套接字，在这种情况下
                   <strong>$port</strong> 也必须设置为 <return>0</return>。
  <info>int</info>     <strong>$port</strong>    运行 memcached 的端口号，通常是 <return>11211</return>。从版本 2.0.0b1 开始，在使用 UNIX 域套接字
                   时将此参数设置为 <return>0</return>。
  <info>int</info>     <strong>$weight</strong>  此服务器相对于服务器池中所有服务器的权重。此参数用来控制服务器在操作时被选中的概
                   率。这个仅用于一致性分布选项，并且这个值通常是由服务端分配的内存来设置的。

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

<comment>See Also:</comment>
   * Memcached::addServers
   * Memcached::resetServerList


id: Memcached::addServers
type: function
doc:
<comment>Description:</comment>
  向服务器池中增加多台服务器
  
  <strong>Memcached::addServers()</strong> 向服务器池中增加 <strong>$servers</strong>。<strong>$servers</strong> 中的每个条目都应该是包含主机名、端口以
  及可选权重的数组。此时并不会与这些服务端建立连接。
  
  同一台服务器可能会在服务器池中多次出现，因为这里没有做重复检测。但这并不可取；相反，应该使用
  <strong>$weight</strong> 选项增加此服务器的选择权重。

<comment>Param:</comment>
  <info></info>  <strong>$array</strong>  增加到池中的服务器数组。

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

<comment>See Also:</comment>
   * Memcached::addServer
   * Memcached::resetServerList


id: Memcached::append
type: function
doc:
<comment>Description:</comment>
  向已存在元素追加数据
  
  <strong>Memcached::append()</strong> 向已存在的元素值末尾追加 <strong>$value</strong> 字符串。<strong>$value</strong> 强制为字符串的原因是因为对于
  mix 类型的追加没有明确定义。
  
  如果启用 <info>Memcached::OPT_COMPRESSION</info>，该操作将会失败并引发警告，因为无法向已压缩的数据追加压缩数
  据。

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>    用于存储值的键名。
  <info>string</info>  <strong>$value</strong>  将要追加的值。

<comment>Return:</comment>
  <info>bool|null</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 当打开压缩时，返回 <info>null</info>。

<comment>See Also:</comment>
   * Memcached::appendByKey
   * Memcached::prepend


id: Memcached::appendByKey
type: function
doc:
<comment>Description:</comment>
  向指定服务器上已存在元素追加数据
  
  <strong>Memcached::appendByKey()</strong> 在功能上等同于 Memcached::append。区别在于使用 <strong>$server_key</strong> 可以自由的将
  <strong>$key</strong> 映射到指定服务器。

<comment>Param:</comment>
  <info>string</info>  <strong>$server_key</strong>  本键名用于识别储存和读取值的服务器。没有将实际的键名散列到具体的项目，而是在
                       决定与哪一个 memcached 服务器通信时将其散列为服务器键名。这使得关联的项目在单
                       一的服务上被组合起来以提高多重操作的效率。
  <info>string</info>  <strong>$key</strong>         用于存储值的键名。
  <info>string</info>  <strong>$value</strong>       要追加的字符串。

<comment>Return:</comment>
  <info>bool|null</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 当打开压缩时，返回 <info>null</info>。

<comment>See Also:</comment>
   * Memcached::append
   * Memcached::prepend


id: Memcached::cas
type: function
doc:
<comment>Description:</comment>
  比较并交换值
  
  <strong>Memcached::cas()</strong> 执行“检查并设置”的操作，因此仅在当前客户端最后一次取值后，该 key 对应的值没有被其
  他客户端修改的情况下，才能够将值写入。检查是通过 <strong>$cas_token</strong> 参数进行的，这个参数是 memcache 分配给
  已存在元素的唯一 64 位值。怎样获取这个值请查看 Memcached::get* 系列方法的文档。注意：这个值作为
  float 类型是因为 PHP 的整型空间限制。
  
  译注：这是 Memcached 扩展比 Memcache 扩展一个非常重要的优势，在这样一个系统级（Memcache 自身提供）
  的冲突检测机制（乐观锁）下，才能保证高并发下的数据安全。

<comment>Param:</comment>
  <info>string|int|float</info>  <strong>$cas_token</strong>   与已存在元素关联的唯一的值，由 Memcache 生成。
  <info>string</info>            <strong>$key</strong>         用于存储值的键名。
  <info>mixed</info>             <strong>$value</strong>       存储的值。
  <info>int</info>               <strong>$expiration</strong>  到期时间，默认为 0。 更多信息请参见到期时间。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 如果在元素尝试存储时发现在本客户端最后一次获取后
        被其他客户端修改，Memcached::getResultCode 将返回 <info>Memcached::RES_DATA_EXISTS</info>。

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


id: Memcached::casByKey
type: function
doc:
<comment>Description:</comment>
  在指定服务器上比较并交换值
  
  除了可以使用 <strong>$server_key</strong> 将 <strong>$key</strong> 自由的映射到指定服务器外， <strong>Memcached::casByKey()</strong> 和
  Memcached::cas 在功能上是等同的。 这通常用于需要保持一批相关的 key 在一个中心服务器上的情况。

<comment>Param:</comment>
  <info>string|int|float</info>  <strong>$cas_token</strong>   与已存在元素关联的唯一的值，由 Memcache 生成。
  <info>string</info>            <strong>$server_key</strong>  本键名用于识别储存和读取值的服务器。没有将实际的键名散列到具体的项
                                 目，而是在决定与哪一个 memcached 服务器通信时将其散列为服务器键名。
                                 这使得关联的项目在单一的服务上被组合起来以提高多重操作的效率。
  <info>string</info>            <strong>$key</strong>         用于存储值的键名。
  <info>mixed</info>             <strong>$value</strong>       存储的值。
  <info>int</info>               <strong>$expiration</strong>  到期时间，默认为 0。 更多信息请参见到期时间。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 如果在元素尝试存储时发现在本客户端最后一次获取后
        被其他客户端修改，Memcached::getResultCode 将返回 <info>Memcached::RES_DATA_EXISTS</info>。

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


id: Memcached::decrement
type: function
doc:
<comment>Description:</comment>
  减小数值元素的值
  
  <strong>Memcached::decrement()</strong> 减小数值元素的值，减小多少由参数 <strong>$offset</strong> 决定。如果元素的值不是数值，则会导
  致错误。如果减小后的值小于 0,则新值会设为 0。如果键不存在，<strong>Memcached::decrement()</strong> 会将元素设置为
  <strong>$initial_value</strong> 参数。

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>            将要减小值的元素的 key。
  <info>int</info>     <strong>$offset</strong>         要减少的元素值要减少的数量。
  <info>int</info>     <strong>$initial_value</strong>  如果 key 不存在的时候设置到元素的值。
  <info>int</info>     <strong>$expiry</strong>         设置的元素过期时间。

<comment>Return:</comment>
  <info>int|false</info>  成功时返回元素的新值， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * Memcached::increment
   * Memcached::incrementByKey
   * Memcached::decrementByKey


id: Memcached::decrementByKey
type: function
doc:
<comment>Description:</comment>
  Decrement numeric item's value, stored on a specific server
  
  <strong>Memcached::decrementByKey()</strong> decrements a numeric item's value by the specified <strong>$offset</strong>. If the
  item's value is not numeric, an error will result. If the operation would decrease the value below
  0, the new value will be 0. <strong>Memcached::decrementByKey()</strong> will set the item to the <strong>$initial_value</strong>
  parameter if the key doesn't exist.

<comment>Param:</comment>
  <info>string</info>  <strong>$server_key</strong>     本键名用于识别储存和读取值的服务器。没有将实际的键名散列到具体的项目，而是
                          在决定与哪一个 memcached 服务器通信时将其散列为服务器键名。这使得关联的项
                          目在单一的服务上被组合起来以提高多重操作的效率。
  <info>string</info>  <strong>$key</strong>            The key of the item to decrement.
  <info>int</info>     <strong>$offset</strong>         The amount by which to decrement the item's value.
  <info>int</info>     <strong>$initial_value</strong>  The value to set the item to if it doesn't currently exist.
  <info>int</info>     <strong>$expiry</strong>         The expiry time to set on the item.

<comment>Return:</comment>
  <info>int|false</info>  Returns item's new value on success 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * Memcached::decrement
   * Memcached::increment
   * Memcached::incrementByKey


id: Memcached::delete
type: function
doc:
<comment>Description:</comment>
  删除元素
  
  从服务器上删除 <strong>$key</strong>。

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>   要删除的 key。
  <info>int</info>     <strong>$time</strong>  服务端等待删除该元素的总时间。
                 
                 As of memcached 1.3.0 (released 2009) this feature is no longer supported. Passing
                 a non-zero <strong>$time</strong> will cause the deletion to fail. Memcached::getResultCode will
                 return <info>MEMCACHED_INVALID_ARGUMENTS</info>.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 如果 key 不存在, Memcached::getResultCode 将会返
        回 <info>Memcached::RES_NOTFOUND</info>。

<comment>See Also:</comment>
   * Memcached::deleteByKey
   * Memcached::deleteMulti


id: Memcached::deleteByKey
type: function
doc:
<comment>Description:</comment>
  从指定的服务器删除元素
  
  <strong>Memcached::deleteByKey()</strong> 除了可以通过 <strong>$server_key</strong> 参数自由的指定 <strong>$key</strong> 所映射的服务器外，在功能上等
  同于 Memcached::delete。

<comment>Param:</comment>
  <info>string</info>  <strong>$server_key</strong>  本键名用于识别储存和读取值的服务器。没有将实际的键名散列到具体的项目，而是在
                       决定与哪一个 memcached 服务器通信时将其散列为服务器键名。这使得关联的项目在单
                       一的服务上被组合起来以提高多重操作的效率。
  <info>string</info>  <strong>$key</strong>         要删除的 key。
  <info>int</info>     <strong>$time</strong>        服务端等待删除该元素的总时间。
                       
                       As of memcached 1.3.0 (released 2009) this feature is no longer supported.
                       Passing a non-zero <strong>$time</strong> will cause the deletion to fail.
                       Memcached::getResultCode will return <info>MEMCACHED_INVALID_ARGUMENTS</info>.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 如果 key 不存在，Memcached::getResultCode 返回
        <info>Memcached::RES_NOTFOUND</info>。

<comment>See Also:</comment>
   * Memcached::delete
   * Memcached::deleteMulti
   * Memcached::deleteMultiByKey


id: Memcached::deleteMulti
type: function
doc:
<comment>Description:</comment>
  Delete multiple items
  
  Delete the array of <strong>$keys</strong> from the server.

<comment>Param:</comment>
  <info>array</info>  <strong>$keys</strong>  The keys to be deleted.
  <info>int</info>    <strong>$time</strong>  The amount of time the server will wait to delete the items.
                
                As of memcached 1.3.0 (released 2009) this feature is no longer supported. Passing a
                non-zero <strong>$time</strong> will cause the deletion to fail. Memcached::getResultCode will return
                <info>MEMCACHED_INVALID_ARGUMENTS</info>.

<comment>Return:</comment>
  <info>array</info>  Returns an array indexed by <strong>$keys</strong>. Each element is <info>true</info> if the corresponding key was
         deleted, or one of the <info>Memcached::RES_*</info> constants if the corresponding deletion failed.
         
         The Memcached::getResultCode will return the result code for the last executed delete
         operation, that is, the delete operation for the last element of <strong>$keys</strong>.

<comment>See Also:</comment>
   * Memcached::delete
   * Memcached::deleteByKey
   * Memcached::deleteMultiByKey


id: Memcached::deleteMultiByKey
type: function
doc:
<comment>Description:</comment>
  Delete multiple items from a specific server
  
  <strong>Memcached::deleteMultiByKey()</strong> is functionally equivalent to Memcached::deleteMulti, except that
  the free-form <strong>$server_key</strong> can be used to map the <strong>$keys</strong> to a specific server.

<comment>Param:</comment>
  <info>string</info>  <strong>$server_key</strong>  本键名用于识别储存和读取值的服务器。没有将实际的键名散列到具体的项目，而是在
                       决定与哪一个 memcached 服务器通信时将其散列为服务器键名。这使得关联的项目在单
                       一的服务上被组合起来以提高多重操作的效率。
  <info>array</info>   <strong>$keys</strong>        The keys to be deleted.
  <info>int</info>     <strong>$time</strong>        The amount of time the server will wait to delete the items.
                       
                       As of memcached 1.3.0 (released 2009) this feature is no longer supported.
                       Passing a non-zero <strong>$time</strong> will cause the deletion to fail.
                       Memcached::getResultCode will return <info>MEMCACHED_INVALID_ARGUMENTS</info>.

<comment>Return:</comment>
  <info>array</info>  Returns an array indexed by <strong>$keys</strong>. Each element is <info>true</info> if the corresponding key was
         deleted, or one of the <info>Memcached::RES_*</info> constants if the corresponding deletion failed.
         
         The Memcached::getResultCode will return the result code for the last executed delete
         operation, that is, the delete operation for the last element of <strong>$keys</strong>.

<comment>See Also:</comment>
   * Memcached::delete
   * Memcached::deleteByKey
   * Memcached::deleteMulti


id: Memcached::fetch
type: function
doc:
<comment>Description:</comment>
  读取下一个结果
  
  <strong>Memcached::fetch()</strong> 从最后一次请求中检索下一个结果。

<comment>Return:</comment>
  <info>array|false</info>  返回下一个结果或其他情况下返回 <info>false</info>。如果结果集已经检索完毕，
               Memcached::getResultCode 将返回 <info>Memcached::RES_END</info>。

<comment>See Also:</comment>
   * Memcached::fetchAll
   * Memcached::getDelayed


id: Memcached::fetchAll
type: function
doc:
<comment>Description:</comment>
  读取所有剩余结果
  
  <strong>Memcached::fetchAll()</strong> 从最后一次请求中检索所有剩余结果。

<comment>Return:</comment>
  <info>array|false</info>  返回结果集 或者在失败时返回 <info>false</info>。 如需要则使用 Memcached::getResultCode。

<comment>See Also:</comment>
   * Memcached::fetch
   * Memcached::getDelayed


id: Memcached::flush
type: function
doc:
<comment>Description:</comment>
  作废缓存中的所有元素
  
  <strong>Memcached::flush()</strong> 立即（默认）或者在 <strong>$delay</strong> 延迟后作废所有缓存中已经存在的元素。 在作废之后检索命
  令将不会有任何返回（除非在执行 <strong>Memcached::flush()</strong> 作废之后，该 key 下被重新存储过）。flush 不会真
  正的释放已有元素的内存，而是逐渐的存入新元素重用那些内存。

<comment>Param:</comment>
  <info>int</info>  <strong>$delay</strong>  在作废所有元素之前等待的时间（单位秒）。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 如需要则使用 Memcached::getResultCode。


id: Memcached::get
type: function
doc:
<comment>Description:</comment>
  检索元素
  
  <strong>Memcached::get()</strong> 返回之前存储在 <strong>$key</strong> 下的元素。如果元素被找到，并且 <strong>$get_flags</strong> 指定为
  <info>Memcached::GET_EXTENDED</info>，也会返回该元素的 CAS 记号。关于 CAS 记号的使用，参阅 Memcached::cas。可以
  通过 <strong>$cache_cb</strong> 参数指定 通读缓存回调。

<comment>Param:</comment>
  <info>string</info>         <strong>$key</strong>        要检索的元素的 key。
  <info>callable|null</info>  <strong>$cache_cb</strong>   通读缓存回掉函数或 <info>null</info>。
  <info>int</info>            <strong>$get_flags</strong>  flag 控制返回结果。当指定为 <info>Memcached::GET_EXTENDED</info> 时，该函数还将返回
                             CAS 记号。

<comment>Return:</comment>
  <info>mixed</info>  返回存储在缓存中的值，否则返回 <info>false</info>。 如果 <strong>$get_flags</strong> 设置为 <info>Memcached::GET_EXTENDED</info>，则返
         回包含值和 CAS 记号的数组，而不仅仅返回值。如果 key 不存在，Memcached::getResultCode 将返回
         <info>Memcached::RES_NOTFOUND</info>。

<comment>See Also:</comment>
   * Memcached::getByKey
   * Memcached::getMulti
   * Memcached::getDelayed


id: Memcached::getAllKeys
type: function
doc:
<comment>Description:</comment>
  Gets the keys stored on all the servers
  
  <strong>Memcached::getAllKeys()</strong> queries each memcache server and retrieves an array of all keys stored on
  them at that point in time. This is not an atomic operation, so it isn't a truly consistent
  snapshot of the keys at point in time. As memcache doesn't guarantee to return all keys you also
  cannot assume that all keys have been returned.
  
  This method is intended for debugging purposes and should not be used at scale!

<comment>Return:</comment>
  <info>array|false</info>  Returns the keys stored on all the servers on success 或者在失败时返回 <info>false</info>.


id: Memcached::getByKey
type: function
doc:
<comment>Description:</comment>
  从特定的服务器检索元素
  
  <strong>Memcached::getByKey()</strong> 除了可以通过 <strong>$server_key</strong> 参数自由的指定 <strong>$key</strong> 所映射的服务器外，在功能上等同
  于 Memcached::get。

<comment>Param:</comment>
  <info>string</info>         <strong>$server_key</strong>  本键名用于识别储存和读取值的服务器。没有将实际的键名散列到具体的项目，
                              而是在决定与哪一个 memcached 服务器通信时将其散列为服务器键名。这使得
                              关联的项目在单一的服务上被组合起来以提高多重操作的效率。
  <info>string</info>         <strong>$key</strong>         要读取的元素的 key。
  <info>callable|null</info>  <strong>$cache_cb</strong>    通读缓存回掉函数或 <info>null</info>。
  <info>int</info>            <strong>$get_flags</strong>   flag 控制返回结果。当指定 <info>Memcached::GET_EXTENDED</info> 的值时，将返回 CAS
                              记号。

<comment>Return:</comment>
  <info>mixed</info>  返回存储在缓存中的值，否则返回 <info>false</info>。 如果 key 不存在，Memcached::getResultCode 返回
         <info>Memcached::RES_NOTFOUND</info>。

<comment>See Also:</comment>
   * Memcached::get
   * Memcached::getMulti
   * Memcached::getDelayed


id: Memcached::getDelayed
type: function
doc:
<comment>Description:</comment>
  请求多个元素
  
  <strong>Memcached::getDelayed()</strong> 向 Memcached 服务端发出一个检索 <strong>$keys</strong> 指定的多个 key 对应元素的请求。这个
  方法不会等待响应而是立即返回。当你需要收集元素值时，调用 Memcached::fetch 或 Memcached::fetchAll。
  如果 <strong>$with_cas</strong> 设置为 true，会同时请求每个元素的 CAS 标记。
  
  可以通过参数 <strong>$value_cb</strong> 指定一个 result callback 来替代明确的抓取结果（fetch 或 fetchAll 为明确抓取
  方式）。

<comment>Param:</comment>
  <info>array</info>          <strong>$keys</strong>      要请求的 key 的数组。
  <info>bool</info>           <strong>$with_cas</strong>  是否同时请求 CAS 标记。
  <info>callable|null</info>  <strong>$value_cb</strong>  结果回调函数或 <info>null</info>。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 如需要则使用 Memcached::getResultCode。

<comment>See Also:</comment>
   * Memcached::getDelayedByKey
   * Memcached::fetch
   * Memcached::fetchAll


id: Memcached::getDelayedByKey
type: function
doc:
<comment>Description:</comment>
  从指定的服务器上请求多个元素
  
  <strong>Memcached::getDelayedByKey()</strong> 除了可以通过 <strong>$server_key</strong> 参数自由的指定 <strong>$key</strong> 所映射的服务器外，在功能
  上等同于 Memcached::getDelayed。(译注: 关于 *ByKey 系列方法及 $server_key 的工作原理请参照
  addByKey 方法文档)

<comment>Param:</comment>
  <info>string</info>         <strong>$server_key</strong>  本键名用于识别储存和读取值的服务器。没有将实际的键名散列到具体的项目，
                              而是在决定与哪一个 memcached 服务器通信时将其散列为服务器键名。这使得
                              关联的项目在单一的服务上被组合起来以提高多重操作的效率。
  <info>array</info>          <strong>$keys</strong>        要请求的 key 的数组。
  <info>bool</info>           <strong>$with_cas</strong>    是否同时请求 CAS 标记。
  <info>callable|null</info>  <strong>$value_cb</strong>    结果回调函数或 <info>null</info>。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 如需要则使用 Memcached::getResultCode。

<comment>See Also:</comment>
   * Memcached::getDelayed
   * Memcached::fetch
   * Memcached::fetchAll


id: Memcached::getMulti
type: function
doc:
<comment>Description:</comment>
  检索多个元素
  
  <strong>Memcached::getMulti()</strong> 与 Memcached::get 类似，但是这个方法用来检索 <strong>$keys</strong> 数组指定的多个 key 对应的
  元素。  在 v3.0 之前，使用的第二个参数是 cas_tokens</strong>。 它会填充进元素的 CAS token 值。 在本扩展里，
  cas_tokens</strong> 参数在 v3.0 中已经移除。 它被新的附加选项（flag） <info>Memcached::GET_EXTENDED</info> 代替，需要在
  <strong>$get_flags</strong> 值里使用。
  
  在 v3.0 之前，使用的第二个参数是 cas_tokens</strong>。 它会填充进元素的 CAS token 值。 在本扩展里，
  cas_tokens</strong> 参数在 v3.0 中已经移除。 它被新的附加选项（flag） <info>Memcached::GET_EXTENDED</info> 代替，需要在
  <strong>$get_flags</strong> 值里使用。
  
  <strong>$get_flags</strong>参数可以用做指定<strong>Memcached::getMulti()</strong>的附加选项。 当前，仅可以指定为
  <info>Memcached::GET_PRESERVE_ORDER</info>以保证返回的key的顺序和请求时一致。 <info>Memcached::GET_EXTENDED</info> 可以确保
  同时返回了 CAS token 信息。

<comment>Param:</comment>
  <info>array</info>  <strong>$keys</strong>       要检索的key的数组。
  <info>int</info>    <strong>$get_flags</strong>  Get 操作的附加选项。

<comment>Return:</comment>
  <info>array|false</info>  返回检索到的元素的数组 或者在失败时返回 <info>false</info>。 如需要则使用
               Memcached::getResultCode。

<comment>See Also:</comment>
   * Memcached::getMultiByKey
   * Memcached::get
   * Memcached::getDelayed


id: Memcached::getMultiByKey
type: function
doc:
<comment>Description:</comment>
  从特定服务器检索多个元素
  
  <strong>Memcached::getMultiByKey()</strong>除了可以通过<strong>$server_key</strong>参数自由的指定<strong>$key</strong> 所映射的服务器外， 在功能上等
  同于Memcached::getMulti。(译注: 关于*ByKey系列方法及$server_key的工作原理请参照addByKey方法文档)

<comment>Param:</comment>
  <info>string</info>  <strong>$server_key</strong>  本键名用于识别储存和读取值的服务器。没有将实际的键名散列到具体的项目，而是在
                       决定与哪一个 memcached 服务器通信时将其散列为服务器键名。这使得关联的项目在单
                       一的服务上被组合起来以提高多重操作的效率。
  <info>array</info>   <strong>$keys</strong>        要检索的key的数组。
  <info>int</info>     <strong>$get_flags</strong>   get操作的附加选项。

<comment>Return:</comment>
  <info>array|false</info>  返回检索到的元素的数组 或者在失败时返回 <info>false</info>. 如需要则使用
               Memcached::getResultCode。

<comment>See Also:</comment>
   * Memcached::getMulti
   * Memcached::get
   * Memcached::getDelayed


id: Memcached::getOption
type: function
doc:
<comment>Description:</comment>
  获取 Memcached 的选项值
  
  这个方法返回 <strong>$option</strong> 指定的 Memcached 选项的值。一些选项是和 libmemcached 中相对应的， 也有一些特
  殊的选项仅仅是扩展自身的。关于选项的更多信息请查看 Memcached 常量。

<comment>Param:</comment>
  <info>int</info>  <strong>$option</strong>  <return>Memcached::OPT_*</return> 系列常量中的一个。

<comment>Return:</comment>
  <info>mixed</info>  返回请求的选项的值，或者在发生错误时返回 <info>false</info>。

<comment>See Also:</comment>
   * Memcached::getOption
   * Memcached::setOption
   * Memcached 常量


id: Memcached::getResultCode
type: function
doc:
<comment>Description:</comment>
  返回最后一次操作的结果代码
  
  <strong>Memcached::getResultCode()</strong> 返回 <info>Memcached::RES_*</info> 系列常量中的一个来表明最后一次执行 Memcached 方法
  的结果。

<comment>Return:</comment>
  <info>int</info>  最后一次 Memcached 操作的结果代码。


id: Memcached::getResultMessage
type: function
doc:
<comment>Description:</comment>
  返回最后一次操作的结果描述消息
  
  <strong>Memcached::getResultMessage()</strong> 返回一个字符串来描述最后一次 Memcached 方法执行的结果。

<comment>Return:</comment>
  <info>string</info>  最后一次 Memcached 操作结果的描述消息。


id: Memcached::getServerByKey
type: function
doc:
<comment>Description:</comment>
  获取一个 key 所映射的服务器信息
  
  <strong>Memcached::getServerByKey()</strong> 返回 <strong>$server_key</strong> 所映射的服务器,  <strong>Memcached::*ByKey()</strong> 系列方法的中的
  <strong>$server_key</strong> 参数, 实际上就是用来获取 操作的服务器的。（译注: 可以这样理解, *ByKey 系列函数首先调用
  <strong>Memcached::getServerByKey()</strong> 获取服务器,  然后在此服务器上进行操作）

<comment>Param:</comment>
  <info>string</info>  <strong>$server_key</strong>  本键名用于识别储存和读取值的服务器。没有将实际的键名散列到具体的项目，而是在
                       决定与哪一个 memcached 服务器通信时将其散列为服务器键名。这使得关联的项目在单
                       一的服务上被组合起来以提高多重操作的效率。

<comment>Return:</comment>
  <info>array|false</info>  成功时返回数组，包含三个 key <return>host</return>、<return>port</return> 和 <return>weight</return> 或者在失败时返回 <info>false</info>。 如需要则使
               用 Memcached::getResultCode。


id: Memcached::getServerList
type: function
doc:
<comment>Description:</comment>
  获取服务器池中的服务器列表
  
  <strong>Memcached::getServerList()</strong> 返回服务器池中所有服务器列表.

<comment>Return:</comment>
  <info>array</info>  服务器池中所有服务器列表.


id: Memcached::getStats
type: function
doc:
<comment>Description:</comment>
  获取服务器池的统计信息
  
  <strong>Memcached::getStats()</strong> 返回一个包含所有可用 memcache 服务器状态的数组。 返回的统计信息的详细描述参
  见 memcache 协议。 （译注：经实验，服务器池中有不可用服务器时，返回 false）

<comment>Param:</comment>
  <info>string|null</info>  <strong>$type</strong>  要获取的统计的类型。

<comment>Return:</comment>
  <info>array|false</info>  服务器统计信息数组，每个服务器一项， 或者在失败时返回 <info>false</info>。


id: Memcached::getVersion
type: function
doc:
<comment>Description:</comment>
  获取服务器池中所有服务器的版本信息
  
  <strong>Memcached::getVersion()</strong> 返回一个包含所有可用 memcached 服务器版本信息的数组。 （译注：经实验，服务
  器池中有不可用服务器时，返回 false）

<comment>Return:</comment>
  <info>array|false</info>  服务器版本信息的数组，每个服务器占一项。


id: Memcached::increment
type: function
doc:
<comment>Description:</comment>
  增加数值元素的值
  
  <strong>Memcached::increment()</strong>  将数值元素增加 <strong>$offset</strong> 大小。如果元素的值不是数值类型，将返回错误。如果
  key 不存在，<strong>Memcached::increment()</strong> 会将元素设置为 <strong>$initial_value</strong> 参数。

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>            要增加值的元素的 key。
  <info>int</info>     <strong>$offset</strong>         要将元素的值增加的大小。
  <info>int</info>     <strong>$initial_value</strong>  如果元素不存在，要设置的默认值。
  <info>int</info>     <strong>$expiry</strong>         设置元素值的过期时间。

<comment>Return:</comment>
  <info>int|false</info>  成功时返回元素的新值 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * Memcached::decrement
   * Memcached::decrementByKey
   * Memcached::incrementByKey


id: Memcached::incrementByKey
type: function
doc:
<comment>Description:</comment>
  Increment numeric item's value, stored on a specific server
  
  <strong>Memcached::incrementByKey()</strong> increments a numeric item's value by the specified <strong>$offset</strong>. If the
  item's value is not numeric, an error will result. <strong>Memcached::incrementByKey()</strong> will set the item
  to the <strong>$initial_value</strong> parameter if the key doesn't exist.

<comment>Param:</comment>
  <info>string</info>  <strong>$server_key</strong>     本键名用于识别储存和读取值的服务器。没有将实际的键名散列到具体的项目，而是
                          在决定与哪一个 memcached 服务器通信时将其散列为服务器键名。这使得关联的项
                          目在单一的服务上被组合起来以提高多重操作的效率。
  <info>string</info>  <strong>$key</strong>            The key of the item to increment.
  <info>int</info>     <strong>$offset</strong>         The amount by which to increment the item's value.
  <info>int</info>     <strong>$initial_value</strong>  The value to set the item to if it doesn't currently exist.
  <info>int</info>     <strong>$expiry</strong>         The expiry time to set on the item.

<comment>Return:</comment>
  <info>int|false</info>  Returns new item's value on success 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * Memcached::decrement
   * Memcached::decrementByKey
   * Memcached::increment


id: Memcached::isPersistent
type: function
doc:
<comment>Description:</comment>
  Check if a persitent connection to memcache is being used
  
  <strong>Memcached::isPersistent()</strong> checks if the connections to the memcache servers are persistent
  connections.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if Memcache instance uses a persistent connection, <info>false</info> otherwise.

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


id: Memcached::isPristine
type: function
doc:
<comment>Description:</comment>
  Check if the instance was recently created
  
  <strong>Memcached::isPristine()</strong> checks if the Memcache instance was recently created.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if instance is recently created, <info>false</info> otherwise.

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


id: Memcached::prepend
type: function
doc:
<comment>Description:</comment>
  向一个已存在的元素前面追加数据
  
  <strong>Memcached::prepend()</strong> 向已存在元素的字符串值前追加 <strong>$value</strong>。 <strong>$value</strong> 被强制转换成字符串类型主要是因为
  对于 mix 类型的追加没有很好的定义。
  
  如果 <info>Memcached::OPT_COMPRESSION</info> 常量开启，这个操作会失败，并引发一个警告，因为向压缩数据 后追加数
  据可能会导致解压不了。

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>    要向前追加数据的元素的 key。
  <info>string</info>  <strong>$value</strong>  要追加的字符串。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 当打开压缩时，返回 <info>null</info>。

<comment>See Also:</comment>
   * Memcached::prependByKey
   * Memcached::append


id: Memcached::prependByKey
type: function
doc:
<comment>Description:</comment>
  在指定服务器上追加数据到已存在的元素
  
  除了可以使用 <strong>$server_key</strong> 自由的将 <strong>$key</strong> 映射到指定服务器外， <strong>Memcached::prependByKey()</strong> 在功能上等同
  于 Memcached::prepend。 （译注: 关于 *ByKey 系列方法及 $server_key 的工作原理请参照 addByKey 方法
  文档）

<comment>Param:</comment>
  <info>string</info>  <strong>$server_key</strong>  本键名用于识别储存和读取值的服务器。没有将实际的键名散列到具体的项目，而是在
                       决定与哪一个 memcached 服务器通信时将其散列为服务器键名。这使得关联的项目在单
                       一的服务上被组合起来以提高多重操作的效率。
  <info>string</info>  <strong>$key</strong>         要向前追加数据的元素的 key。
  <info>string</info>  <strong>$value</strong>       要追加的字符串。

<comment>Return:</comment>
  <info>bool|null</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 当打开压缩时，返回 <info>null</info>。

<comment>See Also:</comment>
   * Memcached::prepend
   * Memcached::append


id: Memcached::quit
type: function
doc:
<comment>Description:</comment>
  关闭所有打开的链接
  
  <strong>Memcached::quit()</strong> 关闭所有 memcache 服务器的链接。

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


id: Memcached::replace
type: function
doc:
<comment>Description:</comment>
  替换已存在 key 下的元素
  
  <strong>Memcached::replace()</strong> 和 Memcached::set 类似，但是如果 服务端不存在 <strong>$key</strong>，操作将失败。

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>         用于存储值的键名。
  <info>mixed</info>   <strong>$value</strong>       存储的值。
  <info>int</info>     <strong>$expiration</strong>  到期时间，默认为 0。 更多信息请参见到期时间。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 如果 key 不存在，Memcached::getResultCode 返回
        <info>Memcached::RES_NOTSTORED</info>。

<comment>See Also:</comment>
   * Memcached::replaceByKey
   * Memcached::set
   * Memcached::add


id: Memcached::replaceByKey
type: function
doc:
<comment>Description:</comment>
  在指定服务器上，替换已存在 key 下的元素
  
  除了可以使用 <strong>$server_key</strong> 自由的将 <strong>$key</strong> 映射到指定服务器外， <strong>Memcached::replaceByKey()</strong> 在功能上等同
  于 Memcached::replace。 （译注: 关于 *ByKey 系列方法及 $server_key 的工作原理请参照 addByKey 方法
  文档）。

<comment>Param:</comment>
  <info>string</info>  <strong>$server_key</strong>  本键名用于识别储存和读取值的服务器。没有将实际的键名散列到具体的项目，而是在
                       决定与哪一个 memcached 服务器通信时将其散列为服务器键名。这使得关联的项目在单
                       一的服务上被组合起来以提高多重操作的效率。
  <info>string</info>  <strong>$key</strong>         用于存储值的键名。
  <info>mixed</info>   <strong>$value</strong>       存储的值。
  <info>int</info>     <strong>$expiration</strong>  到期时间，默认为 0。 更多信息请参见到期时间。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 如果 key 不存在，Memcached::getResultCode 返回
        <info>Memcached::RES_NOTSTORED</info>。

<comment>See Also:</comment>
   * Memcached::replace
   * Memcached::set
   * Memcached::add


id: Memcached::resetServerList
type: function
doc:
<comment>Description:</comment>
  Clears all servers from the server list
  
  <strong>Memcached::resetserverlist()</strong> removes all memcache servers from the known server list, resetting it
  back to empty.

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

<comment>See Also:</comment>
   * Memcached::addServer
   * Memcached::addServers


id: Memcached::set
type: function
doc:
<comment>Description:</comment>
  存储一个元素
  
  <strong>Memcached::set()</strong> 将 <strong>$value</strong> 存储在一个 memcached 服务器上的 <strong>$key</strong> 下。<strong>$expiration</strong> 参数 用于控制值的
  过期时间。
  
  值可以是任何有效的非资源型 php 类型，因为资源类型不能被序列化存储。如果 <info>Memcached::OPT_COMPRESSION</info>
  选项开启，序列化的值同样会被压缩存储。

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>         用于存储值的键名。
  <info>mixed</info>   <strong>$value</strong>       存储的值。
  <info>int</info>     <strong>$expiration</strong>  到期时间，默认为 0。 更多信息请参见到期时间。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 如需要则使用 Memcached::getResultCode。

<comment>See Also:</comment>
   * Memcached::setByKey
   * Memcached::add
   * Memcached::replace


id: Memcached::setByKey
type: function
doc:
<comment>Description:</comment>
  将元素存储到指定的服务器上
  
  除了可以使用 <strong>$server_key</strong> 自由的将 <strong>$key</strong> 映射到指定服务器外， <strong>Memcached::setByKey()</strong> 在功能上等同于
  Memcached::set。 （译注: 关于 *ByKey 系列方法及 $server_key 的工作原理请参照 addByKey 方法文档）。

<comment>Param:</comment>
  <info>string</info>  <strong>$server_key</strong>  本键名用于识别储存和读取值的服务器。没有将实际的键名散列到具体的项目，而是在
                       决定与哪一个 memcached 服务器通信时将其散列为服务器键名。这使得关联的项目在单
                       一的服务上被组合起来以提高多重操作的效率。
  <info>string</info>  <strong>$key</strong>         用于存储值的键名。
  <info>mixed</info>   <strong>$value</strong>       存储的值。
  <info>int</info>     <strong>$expiration</strong>  到期时间，默认为 0。 更多信息请参见到期时间。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 如需要则使用 Memcached::getResultCode。

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


id: Memcached::setMulti
type: function
doc:
<comment>Description:</comment>
  存储多个元素
  
  <strong>Memcached::setMulti()</strong> 类似于 Memcached::set，但是使用了 参数 <strong>$items</strong> 指定多个元素来替代单独的
  key/value 设置以便于对多个元素的操作。<strong>$expiration</strong> 参数指定的时候一次应用到所有的元素上。

<comment>Param:</comment>
  <info>array</info>  <strong>$items</strong>       存放在服务器上的键／值对数组。
  <info>int</info>    <strong>$expiration</strong>  到期时间，默认为 0。 更多信息请参见到期时间。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 如需要则使用 Memcached::getResultCode。

<comment>See Also:</comment>
   * Memcached::setMultiByKey
   * Memcached::set


id: Memcached::setMultiByKey
type: function
doc:
<comment>Description:</comment>
  在指定服务器存储多个元素
  
  除了可以使用 <strong>$server_key</strong> 自由的将 <strong>$key</strong> 映射到指定服务器外， <strong>Memcached::setMultiByKey()</strong> 在功能上等
  同于 Memcached::setMulti。 （译注: 关于 *ByKey 系列方法及 $server_key 的工作原理请参照 addByKey 方
  法文档）。

<comment>Param:</comment>
  <info>string</info>  <strong>$server_key</strong>  本键名用于识别储存和读取值的服务器。没有将实际的键名散列到具体的项目，而是在
                       决定与哪一个 memcached 服务器通信时将其散列为服务器键名。这使得关联的项目在单
                       一的服务上被组合起来以提高多重操作的效率。
  <info>array</info>   <strong>$items</strong>       存放在服务器上的键／值对数组。
  <info>int</info>     <strong>$expiration</strong>  到期时间，默认为 0。 更多信息请参见到期时间。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 如需要则使用 Memcached::getResultCode。

<comment>See Also:</comment>
   * Memcached::setMulti
   * Memcached::set


id: Memcached::setOption
type: function
doc:
<comment>Description:</comment>
  设置一个 memcached 选项
  
  这个方法用来设置 Memcached <strong>$option</strong> 的值。一些选项和 libmemcached 中定义的类似，还有一些则是 扩展所
  特有的。

<comment>Param:</comment>
  <info>int</info>    <strong>$option</strong>  <return>Memcached::OPT_*</return> 常量之一。 参阅 Memcached 常量获取更多信息。
  <info>mixed</info>  <strong>$value</strong>   要设置的值
                  
                  下面的选项列表需要通过特定的常量指定值。 <return>Memcached::OPT_HASH</return> 需要
                  <return>Memcached::HASH_*</return> 值。<return>Memcached::OPT_DISTRIBUTION</return> 需要 <return>Memcached::DISTRIBUTION_*</return>
                  值。

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

<comment>See Also:</comment>
   * Memcached::getOption
   * Memcached::setOptions
   * Memcached 常量


id: Memcached::setOptions
type: function
doc:
<comment>Description:</comment>
  Set Memcached options
  
  <strong>Memcached::setOptions()</strong> is a variation of the Memcached::setOption that takes an array of options
  to be set.

<comment>Param:</comment>
  <info>array</info>  <strong>$options</strong>  An associative array of options where the key is the option to set and the value
                   is the new value for the option.

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

<comment>See Also:</comment>
   * Memcached::getOption
   * Memcached::setOption
   * Memcached Constants


id: Memcached::setSaslAuthData
type: function
doc:
<comment>Description:</comment>
  Set the credentials to use for authentication
  
  <strong>Memcached::setSaslAuthData()</strong> sets the username and password that should be used for SASL
  authentication with the memcache servers.
  
  This method is only available when the memcached extension is built with SASL support. Please
  refer to Memcached setup for how to do this.

<comment>Param:</comment>
  <info>string</info>  <strong>$username</strong>  The username to use for authentication.
  <info>string</info>  <strong>$password</strong>  The password to use for authentication.

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


id: Memcached::touch
type: function
doc:
<comment>Description:</comment>
  Set a new expiration on an item
  
  <strong>Memcached::touch()</strong> sets a new expiration value on the given key.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>         用于存储值的键名。
  <info>int</info>     <strong>$expiration</strong>  到期时间，默认为 0。 更多信息请参见到期时间。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 如需要则使用 Memcached::getResultCode。

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


id: Memcached::touchByKey
type: function
doc:
<comment>Description:</comment>
  Set a new expiration on an item on a specific server
  
  <strong>Memcached::touchByKey()</strong> is functionally equivalent to Memcached::touch, except that the free-form
  <strong>$server_key</strong> can be used to map the <strong>$key</strong> to a specific server.

<comment>Param:</comment>
  <info>string</info>  <strong>$server_key</strong>  本键名用于识别储存和读取值的服务器。没有将实际的键名散列到具体的项目，而是在
                       决定与哪一个 memcached 服务器通信时将其散列为服务器键名。这使得关联的项目在单
                       一的服务上被组合起来以提高多重操作的效率。
  <info>string</info>  <strong>$key</strong>         用于存储值的键名。
  <info>int</info>     <strong>$expiration</strong>  到期时间，默认为 0。 更多信息请参见到期时间。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 如需要则使用 Memcached::getResultCode。

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


id: MessageFormatter
type: class
doc:
<comment>Description:</comment>
  MessageFormatter is a concrete class that enables users to produce concatenated, language-neutral
  messages. The methods supplied in this class are used to build all the messages that are seen by
  end users.
  
  The MessageFormatter class assembles messages from various fragments (such as text fragments,
  numbers, and dates) supplied by the program. Because of the MessageFormatter class, the program
  does not need to know the order of the fragments. The class uses the formatting specifications for
  the fragments to assemble them into a message that is contained in a single string within a
  resource bundle. For example, MessageFormatter enables you to print the phrase "Finished printing
  x out of y files..." in a manner that still allows for flexibility in translation.
  
  Previously, an end user message was created as a sentence and handled as a string. This procedure
  created problems for localizers because the sentence structure, word order, number format and so
  on are very different from language to language. The language-neutral way to create messages keeps
  each part of the message separate and provides keys to the data. Using these keys, the
  MessageFormatter class can concatenate the parts of the message, localize them, and display a
  well-formed string to the end user.
  
  MessageFormatter takes a set of objects, formats them, and then inserts the formatted strings into
  the pattern at the appropriate places. Choice formats can be used in conjunction with
  MessageFormatter to handle plurals, match numbers, and select from an array of items. Typically,
  the message format will come from resources and the arguments will be dynamically set at runtime.


id: MessageFormatter::__construct
type: function
doc:
<comment>Description:</comment>
  Constructs a new Message Formatter
  
  面向对象风格 (method)
  
  面向对象风格 (constructor):
  
  过程化风格
  
  Constructs a new Message Formatter

<comment>Param:</comment>
  <info>string</info>  <strong>$locale</strong>   The locale to use when formatting arguments
  <info>string</info>  <strong>$pattern</strong>  The pattern string to stick arguments into.  The pattern uses an
                    'apostrophe-friendly' syntax; see Quoting/Escaping for details.

<comment>Return:</comment>
  <info>MessageFormatter|null</info>  The formatter <info>object</info>, or <info>null</info> on failure.

<comment>See Also:</comment>
   * <strong>msgfmt_format()</strong>
   * <strong>msgfmt_parse()</strong>
   * <strong>msgfmt_get_error_code()</strong>
   * <strong>msgfmt_get_error_message()</strong>


id: MessageFormatter::format
type: function
doc:
<comment>Description:</comment>
  Format the message
  
  面向对象风格
  
  过程化风格
  
  Format the message by substituting the data into the format string according to the locale rules

<comment>Param:</comment>
  <info>MessageFormatter</info>  <strong>$formatter</strong>  The message formatter
  <info>array</info>             <strong>$values</strong>     Arguments to insert into the format string

<comment>Return:</comment>
  <info>string|false</info>  The formatted string, or <info>false</info> if an error occurred

<comment>See Also:</comment>
   * <strong>msgfmt_create()</strong>
   * <strong>msgfmt_parse()</strong>
   * <strong>msgfmt_format_message()</strong>
   * <strong>msgfmt_get_error_code()</strong>
   * <strong>msgfmt_get_error_message()</strong>


id: MessageFormatter::formatMessage
type: function
doc:
<comment>Description:</comment>
  Quick format message
  
  面向对象风格
  
  过程化风格
  
  Quick formatting function that formats the string without having to explicitly create the
  formatter object. Use this function when the format operation is done only once and does not need
  any parameters or state to be kept or when wanting to customize the output by providing additional
  context to ICU directly.

<comment>Param:</comment>
  <info>string</info>  <strong>$locale</strong>   The locale to use for formatting locale-dependent parts
  <info>string</info>  <strong>$pattern</strong>  The pattern <info>string</info> to insert things into. The pattern uses an
                    'apostrophe-friendly' syntax; see Quoting/Escaping for details.
  <info>array</info>   <strong>$values</strong>   The <info>array</info> of values to insert into the format <info>string</info>

<comment>Return:</comment>
  <info>string|false</info>  The formatted pattern string or <info>false</info> if an error occurred

<comment>See Also:</comment>
   * <strong>msgfmt_create()</strong>
   * <strong>msgfmt_parse()</strong>
   * <strong>msgfmt_get_error_code()</strong>
   * <strong>msgfmt_get_error_message()</strong>


id: MessageFormatter::getErrorCode
type: function
doc:
<comment>Description:</comment>
  Get the error code from last operation
  
  面向对象风格
  
  过程化风格
  
  Get the error code from last operation.

<comment>Param:</comment>
  <info>MessageFormatter</info>  <strong>$formatter</strong>  The message formatter

<comment>Return:</comment>
  <info>int</info>  The error code, one of UErrorCode values. Initial value is U_ZERO_ERROR.

<comment>See Also:</comment>
   * <strong>msgfmt_get_error_message()</strong>
   * <strong>intl_get_error_code()</strong>
   * <strong>intl_is_failure()</strong>


id: MessageFormatter::getErrorMessage
type: function
doc:
<comment>Description:</comment>
  Get the error text from the last operation
  
  面向对象风格
  
  过程化风格
  
  Get the error text from the last operation.

<comment>Param:</comment>
  <info>MessageFormatter</info>  <strong>$formatter</strong>  The message formatter

<comment>Return:</comment>
  <info>string</info>  Description of the last error.

<comment>See Also:</comment>
   * <strong>msgfmt_get_error_code()</strong>
   * <strong>intl_get_error_code()</strong>
   * <strong>intl_is_failure()</strong>


id: MessageFormatter::getLocale
type: function
doc:
<comment>Description:</comment>
  Get the locale for which the formatter was created
  
  面向对象风格
  
  过程化风格
  
  Get the locale for which the formatter was created.

<comment>Param:</comment>
  <info>MessageFormatter</info>  <strong>$formatter</strong>  The formatter resource

<comment>Return:</comment>
  <info>string</info>  The locale name

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


id: MessageFormatter::getPattern
type: function
doc:
<comment>Description:</comment>
  Get the pattern used by the formatter
  
  面向对象风格
  
  过程化风格
  
  Get the pattern used by the formatter

<comment>Param:</comment>
  <info>MessageFormatter</info>  <strong>$formatter</strong>  The message formatter

<comment>Return:</comment>
  <info>string|false</info>  The pattern <info>string</info> for this message formatter,  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>msgfmt_create()</strong>
   * <strong>msgfmt_set_pattern()</strong>


id: MessageFormatter::parse
type: function
doc:
<comment>Description:</comment>
  Parse input string according to pattern
  
  面向对象风格
  
  过程化风格
  
  Parses input <info>string</info> and return any extracted items as an <info>array</info>.

<comment>Param:</comment>
  <info>MessageFormatter</info>  <strong>$formatter</strong>  The message formatter
  <info>string</info>            <strong>$string</strong>     The <info>string</info> to parse

<comment>Return:</comment>
  <info>array|false</info>  An <info>array</info> containing the items extracted, or <info>false</info> on error

<comment>See Also:</comment>
   * <strong>msgfmt_create()</strong>
   * <strong>msgfmt_format()</strong>
   * <strong>msgfmt_parse_message()</strong>


id: MessageFormatter::parseMessage
type: function
doc:
<comment>Description:</comment>
  Quick parse input string
  
  面向对象风格
  
  过程化风格
  
  Parses input string without explicitly creating the formatter object. Use this function when the
  format operation is done only once and does not need any parameters or state to be kept.

<comment>Param:</comment>
  <info>string</info>  <strong>$locale</strong>   The locale to use for parsing locale-dependent parts
  <info>string</info>  <strong>$pattern</strong>  The pattern with which to parse the <strong>$message</strong>.
  <info>string</info>  <strong>$message</strong>  The <info>string</info> to parse, conforming to the <strong>$pattern</strong>.

<comment>Return:</comment>
  <info>array|false</info>  An <info>array</info> containing items extracted, or <info>false</info> on error

<comment>See Also:</comment>
   * <strong>msgfmt_create()</strong>
   * <strong>msgfmt_format_message()</strong>
   * <strong>msgfmt_parse()</strong>


id: MessageFormatter::setPattern
type: function
doc:
<comment>Description:</comment>
  Set the pattern used by the formatter
  
  面向对象风格
  
  过程化风格
  
  Set the pattern used by the formatter

<comment>Param:</comment>
  <info>MessageFormatter</info>  <strong>$formatter</strong>  The message formatter
  <info>string</info>            <strong>$pattern</strong>    The pattern <info>string</info> to use in this message formatter. The pattern
                                uses an 'apostrophe-friendly' syntax; see Quoting/Escaping for
                                details.

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

<comment>See Also:</comment>
   * <strong>msgfmt_create()</strong>
   * <strong>msgfmt_get_pattern()</strong>


id: MongoDB\BSON\Binary
type: class
doc:
<comment>Description:</comment>
  BSON type for binary data (i.e. array of bytes). Binary values also have a subtype, which is used
  to indicate what kind of data is in the byte array. Subtypes from zero to 127 are predefined or
  reserved. Subtypes from 128-255 are user-defined.


id: MongoDB\BSON\Binary::TYPE_ENCRYPTED
type: constant
doc:
<comment>Description:</comment>
  Encrypted value. This subtype is used for client-side encryption.


id: MongoDB\BSON\Binary::TYPE_MD5
type: constant
doc:
<comment>Description:</comment>
  MD5 hash. When using this type, the Binary's data should be 16 bytes in length.


id: MongoDB\BSON\Binary::TYPE_OLD_BINARY
type: constant
doc:
<comment>Description:</comment>
  Generic binary data (deprecated in favor of <info>MongoDB\BSON\Binary::TYPE_GENERIC</info>).


id: MongoDB\BSON\Binary::TYPE_OLD_UUID
type: constant
doc:
<comment>Description:</comment>
  Universally unique identifier (deprecated in favor of <info>MongoDB\BSON\Binary::TYPE_UUID</info>). When using
  this type, the Binary's data should be 16 bytes in length.
  
  Historically, other drivers encoded values with this type based on their language conventions
  (e.g. varying endianness), which makes it non-portable. The PHP driver applies no special handling
  for encoding or decoding data with this type.


id: MongoDB\BSON\Binary::TYPE_SENSITIVE
type: constant
doc:
<comment>Description:</comment>
  Sensitive data. This subtype is used for sensitive data that should be excluded from server-side
  logging when possible.


id: MongoDB\BSON\Binary::TYPE_USER_DEFINED
type: constant
doc:
<comment>Description:</comment>
  User-defined type. While types between 0 and 127 are predefined or reserved, types between 128 and
  255 are user-defined and may be used for anything.


id: MongoDB\BSON\Binary::TYPE_UUID
type: constant
doc:
<comment>Description:</comment>
  Universally unique identifier. When using this type, the Binary's data should be 16 bytes in
  length and encoded according to RFC 4122.


id: MongoDB\BSON\Binary::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Binary

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  Binary data.
  <info>int</info>     <strong>$type</strong>  Unsigned 8-bit integer denoting the data's type. Defaults to
                 <info>MongoDB\BSON\Binary::TYPE_GENERIC</info> if not specified.

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


id: MongoDB\BSON\Binary::__toString
type: function
doc:
<comment>Description:</comment>
  Returns the Binary's data
  
  此方法是该方法的别名： MongoDB\BSON\Binary::getData.

<comment>Return:</comment>
  <info>string</info>  Returns the Binary's data.

<comment>See Also:</comment>
   * MongoDB\BSON\Binary::getData
   * BSON Types


id: MongoDB\BSON\Binary::getData
type: function
doc:
<comment>Description:</comment>
  Returns the Binary's data

<comment>Return:</comment>
  <info>string</info>  Returns the Binary's data.

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


id: MongoDB\BSON\Binary::getType
type: function
doc:
<comment>Description:</comment>
  Returns the Binary's type

<comment>Return:</comment>
  <info>int</info>  Returns the Binary's type.

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


id: MongoDB\BSON\Binary::jsonSerialize
type: function
doc:
<comment>Description:</comment>
  Returns a representation that can be converted to JSON

<comment>Return:</comment>
  <info>mixed</info>  Returns data which can be serialized by <strong>json_encode()</strong> to produce an extended JSON
         representation of the <class>MongoDB\BSON\Binary</class>.
         
         The output is consistent with the <strong>MongoDB\BSON\toJSON()</strong> function, which uses the
         driver-specific legacy extended JSON format. This does not necessarily match the relaxed or
         canonical extended JSON representations used by <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong> and
         <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>, respectively.

<comment>See Also:</comment>
   * JsonSerializable::jsonSerialize
   * <strong>json_encode()</strong>
   * <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>
   * <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong>
   * MongoDB Extended JSON


id: MongoDB\BSON\Binary::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize a Binary

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\BSON\Binary</class>.

<comment>See Also:</comment>
   * MongoDB\BSON\Binary::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\Binary::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize a Binary

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\BSON\Binary</class>.

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

<comment>See Also:</comment>
   * MongoDB\BSON\Binary::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\BinaryInterface
type: class
doc:
<comment>Description:</comment>
  This interface is implemented by <class>MongoDB\BSON\Binary</class> to be used as a parameter, return, or
  property type in userland classes.


id: MongoDB\BSON\BinaryInterface::__toString
type: function
doc:
<comment>Description:</comment>
  Returns the BinaryInterface's data
  
  此方法是该方法的别名： MongoDB\BSON\BinaryInterface::getData.

<comment>Return:</comment>
  <info>string</info>  Returns the BinaryInterface's data.

<comment>See Also:</comment>
   * MongoDB\BSON\BinaryInterface::getData
   * MongoDB\BSON\Binary::__toString


id: MongoDB\BSON\BinaryInterface::getData
type: function
doc:
<comment>Description:</comment>
  Returns the BinaryInterface's data

<comment>Return:</comment>
  <info>string</info>  Returns the BinaryInterface's data.

<comment>See Also:</comment>
   * MongoDB\BSON\Binary::getData


id: MongoDB\BSON\BinaryInterface::getType
type: function
doc:
<comment>Description:</comment>
  Returns the BinaryInterface's type

<comment>Return:</comment>
  <info>int</info>  Returns the BinaryInterface's type.

<comment>See Also:</comment>
   * MongoDB\BSON\Binary::getType


id: MongoDB\BSON\DBPointer
type: class
doc:
<comment>Description:</comment>
  BSON type for the "DBPointer" type. This BSON type is deprecated, and this class can not be
  instantiated. It will be created from a BSON DBPointer type while converting BSON to PHP, and can
  also be converted back into BSON while storing documents in the database.


id: MongoDB\BSON\DBPointer::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new DBPointer (unused)
  
  <class>MongoDB\BSON\DBPointer</class> objects are created through conversion from a deprecated BSON type and
  cannot be constructed directly.

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


id: MongoDB\BSON\DBPointer::__toString
type: function
doc:
<comment>Description:</comment>
  Returns an empty string

<comment>Return:</comment>
  <info>string</info>  Returns an empty string.

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


id: MongoDB\BSON\DBPointer::jsonSerialize
type: function
doc:
<comment>Description:</comment>
  Returns a representation that can be converted to JSON

<comment>Return:</comment>
  <info>mixed</info>  Returns data which can be serialized by <strong>json_encode()</strong> to produce an extended JSON
         representation of the <class>MongoDB\BSON\DBPointer</class>.
         
         The output is consistent with the <strong>MongoDB\BSON\toJSON()</strong> function, which uses the
         driver-specific legacy extended JSON format. This does not necessarily match the relaxed or
         canonical extended JSON representations used by <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong> and
         <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>, respectively.

<comment>See Also:</comment>
   * JsonSerializable::jsonSerialize
   * <strong>json_encode()</strong>
   * <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>
   * <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong>
   * MongoDB Extended JSON


id: MongoDB\BSON\DBPointer::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize a DBPointer

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\BSON\DBPointer</class>.

<comment>See Also:</comment>
   * MongoDB\BSON\DBPointer::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\DBPointer::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize a DBPointer

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\BSON\DBPointer</class>.

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

<comment>See Also:</comment>
   * MongoDB\BSON\DBPointer::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\Decimal128
type: class
doc:
<comment>Description:</comment>
  BSON type for the Decimal128 floating-point format, which supports numbers with up to 34 decimal
  digits (i.e. significant digits) and an exponent range of −6143 to +6144.
  
  Unlike the double BSON type (i.e. <info>float</info> in PHP), which only stores an approximation of the decimal
  values, the decimal data type stores the exact value. For example, <return>MongoDB\BSON\Decimal128('9.99')</return>
  has a precise value of 9.99 where as a double 9.99 would have an approximate value of
  9.9900000000000002131628….
  
  <class>MongoDB\BSON\Decimal128</class> is only compatible with MongoDB 3.4+. Attempting to use the BSON type with
  an earlier version of MongoDB will result in an error.


id: MongoDB\BSON\Decimal128::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Decimal128
  
  <class>MongoDB\BSON\Decimal128</class> is only compatible with MongoDB 3.4+. Attempting to use the BSON type with
  an earlier version of MongoDB will result in an error.

<comment>Param:</comment>
  <info>string</info>  <strong>$value</strong>  A decimal string.

<comment>See Also:</comment>
   * Decimal128 floating-point format
   * BSON Types


id: MongoDB\BSON\Decimal128::__toString
type: function
doc:
<comment>Description:</comment>
  Returns the string representation of this Decimal128

<comment>Return:</comment>
  <info>string</info>  Returns the string representation of this Decimal128.

<comment>See Also:</comment>
   * Decimal128 floating-point format
   * BSON Types


id: MongoDB\BSON\Decimal128::jsonSerialize
type: function
doc:
<comment>Description:</comment>
  Returns a representation that can be converted to JSON

<comment>Return:</comment>
  <info>mixed</info>  Returns data which can be serialized by <strong>json_encode()</strong> to produce an extended JSON
         representation of the <class>MongoDB\BSON\Decimal128</class>.
         
         The output is consistent with the <strong>MongoDB\BSON\toJSON()</strong> function, which uses the
         driver-specific legacy extended JSON format. This does not necessarily match the relaxed or
         canonical extended JSON representations used by <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong> and
         <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>, respectively.

<comment>See Also:</comment>
   * JsonSerializable::jsonSerialize
   * <strong>json_encode()</strong>
   * <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>
   * <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong>
   * MongoDB Extended JSON


id: MongoDB\BSON\Decimal128::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize a Decimal128

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\BSON\Decimal128</class>.

<comment>See Also:</comment>
   * MongoDB\BSON\Decimal128::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\Decimal128::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize a Decimal128

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\BSON\Decimal128</class>.

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

<comment>See Also:</comment>
   * MongoDB\BSON\Decimal128::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\Decimal128Interface
type: class
doc:
<comment>Description:</comment>
  This interface is implemented by <class>MongoDB\BSON\Decimal128</class> to be used as a parameter, return, or
  property type in userland classes.


id: MongoDB\BSON\Decimal128Interface::__toString
type: function
doc:
<comment>Description:</comment>
  Returns the string representation of this Decimal128Interface

<comment>Return:</comment>
  <info>string</info>  Returns the string representation of this Decimal128Interface.

<comment>See Also:</comment>
   * MongoDB\BSON\Decimal128::__toString


id: MongoDB\BSON\Document
type: class
doc:
<comment>Description:</comment>
  Represents a BSON document. This class is used when reading data as raw BSON and cannot be
  modified.


id: MongoDB\BSON\Document::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new BSON document (unused)
  
  <class>MongoDB\BSON\Document</class> objects are created through static factory methods and cannot be
  instantiated directly.

<comment>See Also:</comment>
   * MongoDB\BSON\Document::fromPHP
   * MongoDB\BSON\Document::fromBSON
   * MongoDB\BSON\Document::fromJSON
   * BSON Types


id: MongoDB\BSON\Document::__toString
type: function
doc:
<comment>Description:</comment>
  Returns the string representation of this BSON Document

<comment>Return:</comment>
  <info>string</info>  Returns the string representation of this document as BSON.

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


id: MongoDB\BSON\Document::fromBSON
type: function
doc:
<comment>Description:</comment>
  Construct a new document instance from a BSON string

<comment>Param:</comment>
  <info>string</info>  <strong>$bson</strong>  A string containing a document in BSON format.

<comment>Return:</comment>
  <info>MongoDB\BSON\Document</info>  

<comment>See Also:</comment>
   * MongoDB\BSON\Document::fromPHP
   * MongoDB\BSON\Document::fromJSON
   * BSON Types


id: MongoDB\BSON\Document::fromJSON
type: function
doc:
<comment>Description:</comment>
  Construct a new document instance from a JSON string
  
  Converts an extended JSON string to its BSON representation.

<comment>Param:</comment>
  <info>string</info>  <strong>$json</strong>  JSON value to be converted.

<comment>Return:</comment>
  <info>MongoDB\BSON\Document</info>  

<comment>See Also:</comment>
   * MongoDB\BSON\Document::fromPHP
   * MongoDB\BSON\Document::fromBSON
   * <strong>MongoDB\BSON\fromJSON()</strong>
   * MongoDB Extended JSON
   * BSON Types


id: MongoDB\BSON\Document::fromPHP
type: function
doc:
<comment>Description:</comment>
  Construct a new document instance from PHP data

<comment>Param:</comment>
  <info>object|array</info>  <strong>$value</strong>  A PHP object or array containing the document. When passing an array with
                        numeric keys, the numeric values are converted to strings and used as
                        document keys.

<comment>Return:</comment>
  <info>MongoDB\BSON\Document</info>  

<comment>See Also:</comment>
   * MongoDB\BSON\Document::fromBSON
   * MongoDB\BSON\Document::fromJSON
   * <strong>MongoDB\BSON\fromPHP()</strong>
   * BSON Types


id: MongoDB\BSON\Document::get
type: function
doc:
<comment>Description:</comment>
  Returns the value of a key in the document

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>  The key to retrieve from the document.

<comment>Return:</comment>
  <info>mixed</info>  Returns the value associated with the given key. If the key is not present in the document,
         an exception is thrown.
         
         When encountering a value encoded as 64-bit integer in the BSON document, the return value
         of this method will be a <class>MongoDB\BSON\Int64</class> instance.

<comment>See Also:</comment>
   * MongoDB\BSON\Document::has
   * BSON Types


id: MongoDB\BSON\Document::getIterator
type: function
doc:
<comment>Description:</comment>
  Returns an iterator for the BSON document

<comment>Return:</comment>
  <info>MongoDB\BSON\Iterator</info>  Returns a <class>MongoDB\BSON\Iterator</class> instance that can be used to iterate over
                         all keys in the document.

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


id: MongoDB\BSON\Document::has
type: function
doc:
<comment>Description:</comment>
  Returns whether a key is present in the document

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>  The key to look for in the document.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the key is present in the document and <info>false</info> otherwise.

<comment>See Also:</comment>
   * MongoDB\BSON\Document::get
   * BSON Types


id: MongoDB\BSON\Document::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize a Document

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\BSON\Document</class>.

<comment>See Also:</comment>
   * MongoDB\BSON\Document::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\Document::toCanonicalExtendedJSON
type: function
doc:
<comment>Description:</comment>
  Returns the Canonical Extended JSON representation of the BSON document
  
  Converts the BSON document to its Canonical Extended JSON representation. The canonical format
  prefers type fidelity at the expense of concise output and is most suited for producing output
  that can be converted back to BSON without any loss of type information (e.g. numeric types will
  remain differentiated).

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

<comment>See Also:</comment>
   * MongoDB\BSON\Document::fromJSON
   * MongoDB\BSON\Document::toRelaxedExtendedJSON
   * <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>
   * Extended JSON Specification
   * BSON Types


id: MongoDB\BSON\Document::toPHP
type: function
doc:
<comment>Description:</comment>
  Returns the PHP representation of the BSON document
  
  Unserializes the BSON document to its PHP representation. The <strong>$typeMap</strong> paramater may be used to
  control the PHP types used for converting BSON arrays and documents (both root and embedded).
  
  BSON documents can technically contain duplicate keys because documents are stored as a list of
  key-value pairs; however, applications should refrain from generating documents with duplicate
  keys as server and driver behavior may be undefined. Since PHP objects and arrays cannot have
  duplicate keys, data could also be lost when decoding a BSON document with duplicate keys.

<comment>Param:</comment>
  <info>array|null</info>  <strong>$typeMap</strong>  Type map configuration.

<comment>Return:</comment>
  <info>array|object</info>  The decoded PHP value.
                
                When encountering a value encoded as 64-bit integer in the BSON document, the return
                value of this method will be a <class>MongoDB\BSON\Int64</class> instance.

<comment>See Also:</comment>
   * <strong>MongoDB\BSON\toPHP()</strong>
   * BSON Types


id: MongoDB\BSON\Document::toRelaxedExtendedJSON
type: function
doc:
<comment>Description:</comment>
  Returns the Relaxed Extended JSON representation of the BSON document
  
  Converts the BSON document to its Relaxed Extended JSON representation. The relaxed format prefers
  use of JSON type primitives at the expense of type fidelity and is most suited for producing
  output that can be easily consumed by web APIs and humans.

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

<comment>See Also:</comment>
   * MongoDB\BSON\Document::fromJSON
   * MongoDB\BSON\Document::toCanonicalExtendedJSON
   * <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong>
   * Extended JSON Specification
   * BSON Types


id: MongoDB\BSON\Document::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize a BSON document

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\BSON\Document</class>.

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

<comment>See Also:</comment>
   * MongoDB\BSON\Document::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\Int64
type: class
doc:
<comment>Description:</comment>
  BSON type for a 64-bit integer. When decoding BSON to PHP data, this class is used when a 64-bit
  integer cannot be represented as a PHP integer on 32-bit platforms. These objects support
  overloaded arithmetic, bitwise, and comparison operators.
  
  When working with raw BSON data through the <class>MongoDB\BSON\Document</class>, <class>MongoDB\BSON\PackedArray</class>, and
  <class>MongoDB\BSON\Iterator</class> classes, any 64-bit integer will be returned as an instance of this class,
  regardless of platform and whether the value can be represented as a PHP integer. This ensures
  that values can be roundtripped without changing the type.
  
  During BSON encoding, objects of this class will convert back to a 64-bit integer type, even when
  the value would fit in a 32-bit integer. This allows explicitly storing values as 64-bit integers
  in BSON.


id: MongoDB\BSON\Int64::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Int64
  
  Creates a new <class>MongoDB\BSON\Int64</class> instance for the given integer value.

<comment>Param:</comment>
  <info>int|string</info>  <strong>$value</strong>  The value to assign to the <class>Int64</class> instance. This value can be provided as an
                      <info>int</info> or <info>string</info>, the latter being required on 32-bit platforms to represent
                      64-bit values.

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


id: MongoDB\BSON\Int64::__toString
type: function
doc:
<comment>Description:</comment>
  Returns the string representation of this Int64

<comment>Return:</comment>
  <info>string</info>  Returns the string representation of this Int64.

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


id: MongoDB\BSON\Int64::jsonSerialize
type: function
doc:
<comment>Description:</comment>
  Returns a representation that can be converted to JSON

<comment>Return:</comment>
  <info>mixed</info>  Returns data which can be serialized by <strong>json_encode()</strong> to produce an extended JSON
         representation of the <class>MongoDB\BSON\Int64</class>.
         
         The output is consistent with the <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong> function, which
         uses the canonical extended JSON format. This differs from other BSON classes, which use
         the driver-specific legacy extended JSON format (<strong>MongoDB\BSON\toJSON()</strong>), in order to ensure
         that the 64-bit integer value is correctly represented on 32-bit platforms.

<comment>See Also:</comment>
   * JsonSerializable::jsonSerialize
   * <strong>json_encode()</strong>
   * <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>
   * <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong>
   * MongoDB Extended JSON


id: MongoDB\BSON\Int64::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize an Int64

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\BSON\Int64</class>.

<comment>See Also:</comment>
   * MongoDB\BSON\Int64::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\Int64::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize an Int64

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\BSON\Int64</class>.

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

<comment>See Also:</comment>
   * MongoDB\BSON\Int64::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\Iterator::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new BSON iterator (unused)
  
  <class>MongoDB\BSON\Iterator</class> objects are created by calling MongoDB\BSON\Document::getIterator or
  MongoDB\BSON\PackedArray::getIterator and cannot be instantiated directly.

<comment>See Also:</comment>
   * MongoDB\BSON\Document::getIterator
   * MongoDB\BSON\PackedArray::getIterator
   * BSON Types


id: MongoDB\BSON\Iterator::current
type: function
doc:
<comment>Description:</comment>
  Returns the current element

<comment>Return:</comment>
  <info>mixed</info>  Returns the value of the current element.
         
         When encountering a value encoded as 64-bit integer in the BSON structure, the return value
         of this method will be a <class>MongoDB\BSON\Int64</class> instance.

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


id: MongoDB\BSON\Iterator::key
type: function
doc:
<comment>Description:</comment>
  Returns the key of the current element

<comment>Return:</comment>
  <info>string|int</info>  Returns the key of the current element. When iterating a BSON document, the key will
              always be a <info>string</info>. When iterating a BSON array, the key will be an <info>int</info>.

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


id: MongoDB\BSON\Iterator::next
type: function
doc:
<comment>Description:</comment>
  Advances the iterator to next element

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

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


id: MongoDB\BSON\Iterator::rewind
type: function
doc:
<comment>Description:</comment>
  Rewinds the Iterator to the first element

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

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


id: MongoDB\BSON\Iterator::valid
type: function
doc:
<comment>Description:</comment>
  Checks if current position is valid

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

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


id: MongoDB\BSON\Javascript
type: class
doc:
<comment>Description:</comment>
  BSON type for Javascript code. An optional scope document may be specified that maps identifiers
  to values and defines the scope in which the code should be evaluated by the server.
  
  This BSON type is mainly used when executing database commands that take a Javascript function as
  a parameter, such as mapReduce.


id: MongoDB\BSON\Javascript::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Javascript

<comment>Param:</comment>
  <info>string</info>             <strong>$code</strong>   Javascript code.
  <info>array|object|null</info>  <strong>$scope</strong>  Javascript scope.

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


id: MongoDB\BSON\Javascript::__toString
type: function
doc:
<comment>Description:</comment>
  Returns the Javascript's code
  
  此方法是该方法的别名： MongoDB\BSON\Javascript::getCode.

<comment>Return:</comment>
  <info>string</info>  Returns the Javascript's code.

<comment>See Also:</comment>
   * MongoDB\BSON\Javascript::getCode
   * BSON Types


id: MongoDB\BSON\Javascript::getCode
type: function
doc:
<comment>Description:</comment>
  Returns the Javascript's code

<comment>Return:</comment>
  <info>string</info>  Returns the Javascript's code.

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


id: MongoDB\BSON\Javascript::getScope
type: function
doc:
<comment>Description:</comment>
  Returns the Javascript's scope document

<comment>Return:</comment>
  <info>object|null</info>  Returns the Javascript's scope document, or <info>null</info> if the is no scope.

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


id: MongoDB\BSON\Javascript::jsonSerialize
type: function
doc:
<comment>Description:</comment>
  Returns a representation that can be converted to JSON

<comment>Return:</comment>
  <info>mixed</info>  Returns data which can be serialized by <strong>json_encode()</strong> to produce an extended JSON
         representation of the <class>MongoDB\BSON\Javascript</class>.
         
         The output is consistent with the <strong>MongoDB\BSON\toJSON()</strong> function, which uses the
         driver-specific legacy extended JSON format. This does not necessarily match the relaxed or
         canonical extended JSON representations used by <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong> and
         <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>, respectively.

<comment>See Also:</comment>
   * JsonSerializable::jsonSerialize
   * <strong>json_encode()</strong>
   * <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>
   * <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong>
   * MongoDB Extended JSON


id: MongoDB\BSON\Javascript::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize a Javascript

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\BSON\Javascript</class>.

<comment>See Also:</comment>
   * MongoDB\BSON\Javascript::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\Javascript::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize a Javascript

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\BSON\Javascript</class>.

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

<comment>See Also:</comment>
   * MongoDB\BSON\Javascript::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\JavascriptInterface
type: class
doc:
<comment>Description:</comment>
  This interface is implemented by <class>MongoDB\BSON\Javascript</class> to be used as a parameter, return, or
  property type in userland classes.


id: MongoDB\BSON\JavascriptInterface::__toString
type: function
doc:
<comment>Description:</comment>
  Returns the JavascriptInterface's code
  
  此方法是该方法的别名： MongoDB\BSON\JavascriptInterface::getCode.

<comment>Return:</comment>
  <info>string</info>  Returns the JavascriptInterface's code.

<comment>See Also:</comment>
   * MongoDB\BSON\JavascriptInterface::getCode
   * MongoDB\BSON\Javascript::__toString


id: MongoDB\BSON\JavascriptInterface::getCode
type: function
doc:
<comment>Description:</comment>
  Returns the JavascriptInterface's code

<comment>Return:</comment>
  <info>string</info>  Returns the JavascriptInterface's code.

<comment>See Also:</comment>
   * MongoDB\BSON\Javascript::getCode


id: MongoDB\BSON\JavascriptInterface::getScope
type: function
doc:
<comment>Description:</comment>
  Returns the JavascriptInterface's scope document

<comment>Return:</comment>
  <info>object|null</info>  Returns the JavascriptInterface's scope document.

<comment>See Also:</comment>
   * MongoDB\BSON\Javascript::getScope


id: MongoDB\BSON\MaxKey
type: class
doc:
<comment>Description:</comment>
  Special BSON type which compares higher than all other possible BSON element values.
  
  This is an internal MongoDB type used for indexing and sharding.


id: MongoDB\BSON\MaxKey::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new MaxKey

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


id: MongoDB\BSON\MaxKey::jsonSerialize
type: function
doc:
<comment>Description:</comment>
  Returns a representation that can be converted to JSON

<comment>Return:</comment>
  <info>mixed</info>  Returns data which can be serialized by <strong>json_encode()</strong> to produce an extended JSON
         representation of the <class>MongoDB\BSON\MaxKey</class>.
         
         The output is consistent with the <strong>MongoDB\BSON\toJSON()</strong> function, which uses the
         driver-specific legacy extended JSON format. This does not necessarily match the relaxed or
         canonical extended JSON representations used by <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong> and
         <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>, respectively.

<comment>See Also:</comment>
   * JsonSerializable::jsonSerialize
   * <strong>json_encode()</strong>
   * <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>
   * <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong>
   * MongoDB Extended JSON


id: MongoDB\BSON\MaxKey::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize a MaxKey

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\BSON\MaxKey</class>.

<comment>See Also:</comment>
   * MongoDB\BSON\MaxKey::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\MaxKey::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize a MaxKey

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\BSON\MaxKey</class>.

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

<comment>See Also:</comment>
   * MongoDB\BSON\MaxKey::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\MaxKeyInterface
type: class
doc:
<comment>Description:</comment>
  This interface is implemented by <class>MongoDB\BSON\MaxKey</class> to be used as a parameter, return, or
  property type in userland classes.


id: MongoDB\BSON\MinKey
type: class
doc:
<comment>Description:</comment>
  Special BSON type which compares lower than all other possible BSON element values.
  
  This is an internal MongoDB type used for indexing and sharding.


id: MongoDB\BSON\MinKey::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new MinKey

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


id: MongoDB\BSON\MinKey::jsonSerialize
type: function
doc:
<comment>Description:</comment>
  Returns a representation that can be converted to JSON

<comment>Return:</comment>
  <info>mixed</info>  Returns data which can be serialized by <strong>json_encode()</strong> to produce an extended JSON
         representation of the <class>MongoDB\BSON\MinKey</class>.
         
         The output is consistent with the <strong>MongoDB\BSON\toJSON()</strong> function, which uses the
         driver-specific legacy extended JSON format. This does not necessarily match the relaxed or
         canonical extended JSON representations used by <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong> and
         <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>, respectively.

<comment>See Also:</comment>
   * JsonSerializable::jsonSerialize
   * <strong>json_encode()</strong>
   * <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>
   * <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong>
   * MongoDB Extended JSON


id: MongoDB\BSON\MinKey::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize a MinKey

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\BSON\MinKey</class>.

<comment>See Also:</comment>
   * MongoDB\BSON\MinKey::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\MinKey::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize a MinKey

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\BSON\MinKey</class>.

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

<comment>See Also:</comment>
   * MongoDB\BSON\MinKey::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\MinKeyInterface
type: class
doc:
<comment>Description:</comment>
  This interface is implemented by <class>MongoDB\BSON\MinKey</class> to be used as a parameter, return, or
  property type in userland classes.


id: MongoDB\BSON\ObjectId
type: class
doc:
<comment>Description:</comment>
  BSON type for an ObjectId. The value consists of 12 bytes, where the first four bytes are a
  timestamp that reflect the ObjectId's creation. Specifically, the value consists of:
  
  a 4-byte value representing the seconds since the Unix epoch,
  
  a 5-byte random number unique to a machine and process, and
  
  a 3-byte counter, starting with a random value.
  
  In MongoDB, each document stored in a collection requires a unique <return>_id</return> field that acts as a
  primary key. If an inserted document omits the <return>_id</return> field, the driver automatically generates an
  ObjectId for the <return>_id</return> field.
  
  Using ObjectIds for the <return>_id</return> field provides the following additional benefits:
  
  The creation time of the ObjectId may be accessed using the MongoDB\BSON\ObjectId::getTimestamp
  method.
  
  Sorting on an <return>_id</return> field that stores ObjectId values is roughly equivalent to sorting by creation
  time.


id: MongoDB\BSON\ObjectId::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new ObjectId

<comment>Param:</comment>
  <info>string|null</info>  <strong>$id</strong>  A 24-character hexadecimal string. If not provided, the driver will generate an
                    ObjectId.

<comment>See Also:</comment>
   * ObjectId Reference
   * BSON Types: ObjectId


id: MongoDB\BSON\ObjectId::__toString
type: function
doc:
<comment>Description:</comment>
  Returns the hexidecimal representation of this ObjectId

<comment>Return:</comment>
  <info>string</info>  Returns the hexidecimal representation of this ObjectId.

<comment>See Also:</comment>
   * ObjectId Reference
   * BSON Types: ObjectId


id: MongoDB\BSON\ObjectId::getTimestamp
type: function
doc:
<comment>Description:</comment>
  Returns the timestamp component of this ObjectId
  
  The timestamp component of an ObjectId is its most significant 32 bits, which denotes the number
  of seconds since the Unix epoch. This value is read as an unsigned 32-bit integer with big-endian
  byte order.
  
  Because PHP's integer type is signed, some values returned by this method may appear as negative
  integers on 32-bit platforms. The <return>"%u"</return> formatter of <strong>sprintf()</strong> may be used to obtain a string
  representation of the unsigned decimal value.

<comment>Return:</comment>
  <info>int</info>  Returns the timestamp component of this ObjectId.

<comment>See Also:</comment>
   * ObjectId Reference
   * BSON Types: ObjectId


id: MongoDB\BSON\ObjectId::jsonSerialize
type: function
doc:
<comment>Description:</comment>
  Returns a representation that can be converted to JSON

<comment>Return:</comment>
  <info>mixed</info>  Returns data which can be serialized by <strong>json_encode()</strong> to produce an extended JSON
         representation of the <class>MongoDB\BSON\ObjectId</class>.
         
         The output is consistent with the <strong>MongoDB\BSON\toJSON()</strong> function, which uses the
         driver-specific legacy extended JSON format. This does not necessarily match the relaxed or
         canonical extended JSON representations used by <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong> and
         <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>, respectively.

<comment>See Also:</comment>
   * JsonSerializable::jsonSerialize
   * <strong>json_encode()</strong>
   * <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>
   * <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong>
   * MongoDB Extended JSON


id: MongoDB\BSON\ObjectId::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize an ObjectId

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\BSON\ObjectId</class>.

<comment>See Also:</comment>
   * MongoDB\BSON\ObjectId::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\ObjectId::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize an ObjectId

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\BSON\ObjectId</class>.

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

<comment>See Also:</comment>
   * MongoDB\BSON\ObjectId::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\ObjectIdInterface
type: class
doc:
<comment>Description:</comment>
  This interface is implemented by <class>MongoDB\BSON\ObjectId</class> to be used as a parameter, return, or
  property type in userland classes.


id: MongoDB\BSON\ObjectIdInterface::__toString
type: function
doc:
<comment>Description:</comment>
  Returns the hexidecimal representation of this ObjectIdInterface

<comment>Return:</comment>
  <info>string</info>  Returns the hexidecimal representation of this ObjectIdInterface.

<comment>See Also:</comment>
   * MongoDB\BSON\ObjectId::__toString


id: MongoDB\BSON\ObjectIdInterface::getTimestamp
type: function
doc:
<comment>Description:</comment>
  Returns the timestamp component of this ObjectIdInterface

<comment>Return:</comment>
  <info>int</info>  Returns the timestamp component of this ObjectIdInterface.

<comment>See Also:</comment>
   * MongoDB\BSON\ObjectId::getTimestamp


id: MongoDB\BSON\PackedArray
type: class
doc:
<comment>Description:</comment>
  Represents a BSON array. This class is used when reading data as raw BSON and cannot be modified.


id: MongoDB\BSON\PackedArray::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new BSON array (unused)
  
  <class>MongoDB\BSON\PackedArray</class> objects are created through static factory methods and cannot be
  instantiated directly.

<comment>See Also:</comment>
   * MongoDB\BSON\PackedArray::fromPHP
   * BSON Types


id: MongoDB\BSON\PackedArray::__toString
type: function
doc:
<comment>Description:</comment>
  Returns the string representation of this BSON array

<comment>Return:</comment>
  <info>string</info>  Returns the string representation of this array as BSON.

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


id: MongoDB\BSON\PackedArray::fromPHP
type: function
doc:
<comment>Description:</comment>
  Construct a new BSON array instance from PHP data

<comment>Param:</comment>
  <info>array</info>  <strong>$value</strong>  The PHP array to convert to a BSON array. The array must be a list (i.e. have
                 sequential numeric keys starting with <info>0</info>).

<comment>Return:</comment>
  <info>MongoDB\BSON\PackedArray</info>  

<comment>See Also:</comment>
   * <strong>MongoDB\BSON\fromPHP()</strong>
   * BSON Types


id: MongoDB\BSON\PackedArray::get
type: function
doc:
<comment>Description:</comment>
  Returns the value of an index in the array

<comment>Param:</comment>
  <info>int</info>  <strong>$key</strong>  The index to retrieve from the array.

<comment>Return:</comment>
  <info>mixed</info>  Returns the value associated with the given index. If the index is not present in the
         document, an exception is thrown.
         
         When encountering a value encoded as 64-bit integer in the BSON array, the return value of
         this method will be a <class>MongoDB\BSON\Int64</class> instance.

<comment>See Also:</comment>
   * MongoDB\BSON\PackedArray::has
   * BSON Types


id: MongoDB\BSON\PackedArray::getIterator
type: function
doc:
<comment>Description:</comment>
  Returns an iterator for the BSON array

<comment>Return:</comment>
  <info>MongoDB\BSON\Iterator</info>  Returns a <class>MongoDB\BSON\Iterator</class> instance that can be used to iterate over
                         all indexes in the array.

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


id: MongoDB\BSON\PackedArray::has
type: function
doc:
<comment>Description:</comment>
  Returns whether a index is present in the array

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>  The index to look for in the array.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the index is present in the array and <info>false</info> otherwise.

<comment>See Also:</comment>
   * MongoDB\BSON\PackedArray::get
   * BSON Types


id: MongoDB\BSON\PackedArray::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize a BSON array

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\BSON\PackedArray</class>.

<comment>See Also:</comment>
   * MongoDB\BSON\PackedArray::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\PackedArray::toPHP
type: function
doc:
<comment>Description:</comment>
  Returns the PHP representation of the BSON array

<comment>Param:</comment>
  <info>array|null</info>  <strong>$typeMap</strong>  Type map configuration.

<comment>Return:</comment>
  <info>array|object</info>  The decoded PHP value.
                
                When encountering a value encoded as 64-bit integer in the BSON array, the return
                value of this method will be a <class>MongoDB\BSON\Int64</class> instance.

<comment>See Also:</comment>
   * <strong>MongoDB\BSON\toPHP()</strong>
   * BSON Types


id: MongoDB\BSON\PackedArray::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize a BSON array

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\BSON\PackedArray</class>.

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

<comment>See Also:</comment>
   * MongoDB\BSON\PackedArray::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\Persistable
type: class
doc:
<comment>Description:</comment>
  Classes may implement this interface to take advantage of automatic ODM (object document mapping)
  behavior in the driver. During serialization, the driver will inject a __pclass property
  containing the PHP class name into the data returned by
  <strong>MongoDB\BSON\Serializable::bsonSerialize()</strong>. During unserialization, the same __pclass property
  will then be used to infer the PHP class (independent of any type map configuration) to be
  constructed before <strong>MongoDB\BSON\Unserializable::bsonUnserialize()</strong> is invoked. See  for additional
  information.
  
  Even if <strong>MongoDB\BSON\Serializable::bsonSerialize()</strong> would return a sequential array, injection of
  the __pclass property will cause the object to be serialized as a BSON document.


id: MongoDB\BSON\Persistable::bsonSerialize
type: function
doc:
<comment>Description:</comment>
  Provides an array or document to serialize as BSON
  
  Called during serialization of the object to BSON. The method must return an <info>array</info>, <class>stdClass</class>, or
  <class>MongoDB\BSON\Document</class>.
  
  The return value will always be serialized as a BSON document. The serialized document will
  include a field containing the class name of the object. For this reason, it is not possible to
  return a <class>MongoDB\BSON\PackedArray</class> instance in this method.
  
  Users are encouraged to include an _id property (e.g. a <class>MongoDB\BSON\ObjectId</class> initialized in your
  constructor) when returning data for a BSON root document; otherwise, the driver or database will
  need to generate a <class>MongoDB\BSON\ObjectId</class> when inserting or upserting the document, respectively.

<comment>Return:</comment>
  <info>array|stdClass|MongoDB\BSON\Document</info>  An <info>array</info>, <class>stdClass</class>, or <class>MongoDB\BSON\Document</class> to be
                                        serialized as a BSON document.

<comment>See Also:</comment>
   * <strong>MongoDB\BSON\Serializable::bsonSerialize()</strong>
   * <strong>MongoDB\BSON\Unserializable::bsonUnserialize()</strong>
   * MongoDB\BSON\Persistable
   * 


id: MongoDB\BSON\Regex
type: class
doc:
<comment>Description:</comment>
  BSON type for a regular expression pattern and optional flags.
  
  This BSON type is mainly used when querying the database. Alternatively, the $regex query operator
  may be used.


id: MongoDB\BSON\Regex::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Regex

<comment>Param:</comment>
  <info>string</info>  <strong>$pattern</strong>  The regular expression pattern.
                    
                    The pattern should not be wrapped with delimiter characters.
  <info>string</info>  <strong>$flags</strong>    The regular expression flags. Characters in this argument will be sorted
                    alphabetically.

<comment>See Also:</comment>
   * BSON Types
   * Supported regular expression flags


id: MongoDB\BSON\Regex::__toString
type: function
doc:
<comment>Description:</comment>
  Returns the string representation of this Regex

<comment>Return:</comment>
  <info>string</info>  Returns the string representation of this Regex.

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


id: MongoDB\BSON\Regex::getFlags
type: function
doc:
<comment>Description:</comment>
  Returns the Regex's flags

<comment>Return:</comment>
  <info>string</info>  Returns the Regex's flags.

<comment>See Also:</comment>
   * BSON Types
   * Supported regular expression flags


id: MongoDB\BSON\Regex::getPattern
type: function
doc:
<comment>Description:</comment>
  Returns the Regex's pattern

<comment>Return:</comment>
  <info>string</info>  Returns the Regex's pattern.

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


id: MongoDB\BSON\Regex::jsonSerialize
type: function
doc:
<comment>Description:</comment>
  Returns a representation that can be converted to JSON

<comment>Return:</comment>
  <info>mixed</info>  Returns data which can be serialized by <strong>json_encode()</strong> to produce an extended JSON
         representation of the <class>MongoDB\BSON\Regex</class>.
         
         The output is consistent with the <strong>MongoDB\BSON\toJSON()</strong> function, which uses the
         driver-specific legacy extended JSON format. This does not necessarily match the relaxed or
         canonical extended JSON representations used by <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong> and
         <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>, respectively.

<comment>See Also:</comment>
   * JsonSerializable::jsonSerialize
   * <strong>json_encode()</strong>
   * <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>
   * <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong>
   * MongoDB Extended JSON


id: MongoDB\BSON\Regex::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize a Regex

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\BSON\Regex</class>.

<comment>See Also:</comment>
   * MongoDB\BSON\Regex::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\Regex::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize a Regex

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\BSON\Regex</class>.

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

<comment>See Also:</comment>
   * MongoDB\BSON\Regex::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\RegexInterface
type: class
doc:
<comment>Description:</comment>
  This interface is implemented by <class>MongoDB\BSON\Regex</class> to be used as a parameter, return, or property
  type in userland classes.


id: MongoDB\BSON\RegexInterface::__toString
type: function
doc:
<comment>Description:</comment>
  Returns the string representation of this RegexInterface

<comment>Return:</comment>
  <info>string</info>  Returns the string representation of this RegexInterface.

<comment>See Also:</comment>
   * MongoDB\BSON\Regex::__toString


id: MongoDB\BSON\RegexInterface::getFlags
type: function
doc:
<comment>Description:</comment>
  Returns the RegexInterface's flags

<comment>Return:</comment>
  <info>string</info>  Returns the RegexInterface's flags.

<comment>See Also:</comment>
   * MongoDB\BSON\Regex::getFlags


id: MongoDB\BSON\RegexInterface::getPattern
type: function
doc:
<comment>Description:</comment>
  Returns the RegexInterface's pattern

<comment>Return:</comment>
  <info>string</info>  Returns the RegexInterface's pattern.

<comment>See Also:</comment>
   * MongoDB\BSON\Regex::getPattern


id: MongoDB\BSON\Serializable
type: class
doc:
<comment>Description:</comment>
  Classes that implement this interface may return data to be serialized as a BSON array or document
  in lieu of the object's public properties.


id: MongoDB\BSON\Serializable::bsonSerialize
type: function
doc:
<comment>Description:</comment>
  Provides an array or document to serialize as BSON
  
  Called during serialization of the object to BSON. The method must return an <info>array</info>, <class>stdClass</class>,
  <class>MongoDB\BSON\Document</class>, or <class>MongoDB\BSON\PackedArray</class>.
  
  Root documents (e.g. a MongoDB\BSON\Serializable passed to <strong>MongoDB\BSON\fromPHP()</strong>) will always be
  serialized as a BSON document. For field values, associative arrays and <class>stdClass</class> instances will be
  serialized as a BSON document and sequential arrays (i.e. sequential, numeric indexes starting at
  <return>0</return>) will be serialized as a BSON array.
  
  Users are encouraged to include an _id property (e.g. a <class>MongoDB\BSON\ObjectId</class> initialized in your
  constructor) when returning data for a BSON root document; otherwise, the driver or database will
  need to generate a <class>MongoDB\BSON\ObjectId</class> when inserting or upserting the document, respectively.

<comment>Return:</comment>
  <info>array|stdClass|MongoDB\BSON\Document|MongoDB\BSON\PackedArray</info>  An <info>array</info>, <class>stdClass</class>,
                                                                 <class>MongoDB\BSON\Document</class>, or
                                                                 <class>MongoDB\BSON\PackedArray</class> to be
                                                                 serialized as a BSON array or
                                                                 document.

<comment>See Also:</comment>
   * <strong>MongoDB\BSON\Unserializable::bsonUnserialize()</strong>
   * MongoDB\BSON\Persistable
   * 


id: MongoDB\BSON\Symbol
type: class
doc:
<comment>Description:</comment>
  BSON type for the "Symbol" type. This BSON type is deprecated, and this class can not be
  instantiated. It will be created from a BSON symbol type while converting BSON to PHP, and can
  also be converted back into BSON while storing documents in the database.


id: MongoDB\BSON\Symbol::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Symbol (unused)
  
  <class>MongoDB\BSON\Symbol</class> objects are created through conversion from a deprecated BSON type and cannot
  be constructed directly.

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


id: MongoDB\BSON\Symbol::__toString
type: function
doc:
<comment>Description:</comment>
  Returns the Symbol as a string

<comment>Return:</comment>
  <info>string</info>  Returns the string representation of this Symbol.

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


id: MongoDB\BSON\Symbol::jsonSerialize
type: function
doc:
<comment>Description:</comment>
  Returns a representation that can be converted to JSON

<comment>Return:</comment>
  <info>mixed</info>  Returns data which can be serialized by <strong>json_encode()</strong> to produce an extended JSON
         representation of the <class>MongoDB\BSON\Symbol</class>.
         
         The output is consistent with the <strong>MongoDB\BSON\toJSON()</strong> function, which uses the
         driver-specific legacy extended JSON format. This does not necessarily match the relaxed or
         canonical extended JSON representations used by <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong> and
         <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>, respectively.

<comment>See Also:</comment>
   * JsonSerializable::jsonSerialize
   * <strong>json_encode()</strong>
   * <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>
   * <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong>
   * MongoDB Extended JSON


id: MongoDB\BSON\Symbol::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize a Symbol

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\BSON\Symbol</class>.

<comment>See Also:</comment>
   * MongoDB\BSON\Symbol::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\Symbol::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize a Symbol

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\BSON\Symbol</class>.

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

<comment>See Also:</comment>
   * MongoDB\BSON\Symbol::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\Timestamp
type: class
doc:
<comment>Description:</comment>
  Represents a BSON timestamp, The value consists of a 4-byte timestamp (i.e. seconds since the
  epoch) and a 4-byte increment.
  
  This is an internal MongoDB type used for replication and sharding. It is not intended for general
  date storage (<class>MongoDB\BSON\UTCDateTime</class> should be used instead).


id: MongoDB\BSON\Timestamp::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Timestamp

<comment>Param:</comment>
  <info>int</info>  <strong>$increment</strong>  32-bit integer denoting the incrementing ordinal for operations within a given
                   second.
  <info>int</info>  <strong>$timestamp</strong>  32-bit integer denoting seconds since the Unix epoch.

<comment>See Also:</comment>
   * BSON Types: Timestamps


id: MongoDB\BSON\Timestamp::__toString
type: function
doc:
<comment>Description:</comment>
  Returns the string representation of this Timestamp

<comment>Return:</comment>
  <info>string</info>  Returns the string representation of this Timestamp.

<comment>See Also:</comment>
   * BSON Types: Timestamps


id: MongoDB\BSON\Timestamp::getIncrement
type: function
doc:
<comment>Description:</comment>
  Returns the increment component of this Timestamp
  
  The increment component of a Timestamp is its least significant 32 bits, whichs denotes the
  incrementing ordinal for operations within a given second. This value is read as an unsigned
  32-bit integer with big-endian byte order.
  
  Because PHP's integer type is signed, some values returned by this method may appear as negative
  integers on 32-bit platforms. The <return>"%u"</return> formatter of <strong>sprintf()</strong> may be used to obtain a string
  representation of the unsigned decimal value.

<comment>Return:</comment>
  <info>int</info>  Returns the increment component of this Timestamp.
       
       On 32-bit systems this method may return a negative number. Although the increment and
       timestamp parts of the BSON timestamp type consists of two unsigned 32-bit values, PHP can
       not represent these on 32-bit platforms.

<comment>See Also:</comment>
   * BSON Types: Timestamps


id: MongoDB\BSON\Timestamp::getTimestamp
type: function
doc:
<comment>Description:</comment>
  Returns the timestamp component of this Timestamp
  
  The timestamp component of a Timestamp is its most significant 32 bits, which denotes the number
  of seconds since the Unix epoch. This value is read as an unsigned 32-bit integer with big-endian
  byte order.
  
  Because PHP's integer type is signed, some values returned by this method may appear as negative
  integers on 32-bit platforms. The <return>"%u"</return> formatter of <strong>sprintf()</strong> may be used to obtain a string
  representation of the unsigned decimal value.

<comment>Return:</comment>
  <info>int</info>  Returns the timestamp component of this Timestamp.
       
       On 32-bit systems this method may return a negative number. Although the increment and
       timestamp parts of the BSON timestamp type consists of two unsigned 32-bit values, PHP can
       not represent these on 32-bit platforms.

<comment>See Also:</comment>
   * BSON Types: Timestamps


id: MongoDB\BSON\Timestamp::jsonSerialize
type: function
doc:
<comment>Description:</comment>
  Returns a representation that can be converted to JSON

<comment>Return:</comment>
  <info>mixed</info>  Returns data which can be serialized by <strong>json_encode()</strong> to produce an extended JSON
         representation of the <class>MongoDB\BSON\Timestamp</class>.
         
         The output is consistent with the <strong>MongoDB\BSON\toJSON()</strong> function, which uses the
         driver-specific legacy extended JSON format. This does not necessarily match the relaxed or
         canonical extended JSON representations used by <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong> and
         <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>, respectively.

<comment>See Also:</comment>
   * JsonSerializable::jsonSerialize
   * <strong>json_encode()</strong>
   * <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>
   * <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong>
   * MongoDB Extended JSON


id: MongoDB\BSON\Timestamp::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize a Timestamp

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\BSON\Timestamp</class>.

<comment>See Also:</comment>
   * MongoDB\BSON\Timestamp::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\Timestamp::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize a Timestamp

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\BSON\Timestamp</class>.

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

<comment>See Also:</comment>
   * MongoDB\BSON\Timestamp::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\TimestampInterface
type: class
doc:
<comment>Description:</comment>
  This interface is implemented by <class>MongoDB\BSON\Timestamp</class> to be used as a parameter, return, or
  property type in userland classes.


id: MongoDB\BSON\TimestampInterface::__toString
type: function
doc:
<comment>Description:</comment>
  Returns the string representation of this TimestampInterface

<comment>Return:</comment>
  <info>string</info>  Returns the string representation of this TimestampInterface.

<comment>See Also:</comment>
   * MongoDB\BSON\Timestamp::__toString


id: MongoDB\BSON\TimestampInterface::getIncrement
type: function
doc:
<comment>Description:</comment>
  Returns the increment component of this TimestampInterface

<comment>Return:</comment>
  <info>int</info>  Returns the increment component of this TimestampInterface.
       
       On 32-bit systems this method may return a negative number. Although the increment and
       timestamp parts of the BSON timestamp type consists of two unsigned 32-bit values, PHP can
       not represent these on 32-bit platforms.

<comment>See Also:</comment>
   * MongoDB\BSON\Timestamp::getIncrement


id: MongoDB\BSON\TimestampInterface::getTimestamp
type: function
doc:
<comment>Description:</comment>
  Returns the timestamp component of this TimestampInterface

<comment>Return:</comment>
  <info>int</info>  Returns the timestamp component of this TimestampInterface.
       
       On 32-bit systems this method may return a negative number. Although the increment and
       timestamp parts of the BSON timestamp type consists of two unsigned 32-bit values, PHP can
       not represent these on 32-bit platforms.

<comment>See Also:</comment>
   * MongoDB\BSON\Timestamp::getTimestamp


id: MongoDB\BSON\UTCDateTime
type: class
doc:
<comment>Description:</comment>
  Represents a BSON date. The value is a 64-bit integer that represents the number of milliseconds
  since the Unix epoch (Jan 1, 1970). Negative values represent dates before 1970.


id: MongoDB\BSON\UTCDateTime::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new UTCDateTime

<comment>Param:</comment>
  <info>int|float|string|DateTimeInterface|null</info>  <strong>$milliseconds</strong>  Number of milliseconds since the Unix
                                                          epoch (Jan 1, 1970). Negative values
                                                          represent dates before 1970. This value
                                                          may be provided as a 64-bit <info>int</info>. For
                                                          compatibility on 32-bit systems, this
                                                          parameter may also be provided as a <info>float</info>
                                                          or <info>string</info>.
                                                          
                                                          If the argument is a <class>DateTimeInterface</class>,
                                                          the number of milliseconds since the Unix
                                                          epoch will be derived from that value.
                                                          
                                                          If this argument is <info>null</info>, the current time
                                                          will be used by default.

<comment>See Also:</comment>
   * BSON Types: Date


id: MongoDB\BSON\UTCDateTime::__toString
type: function
doc:
<comment>Description:</comment>
  Returns the string representation of this UTCDateTime

<comment>Return:</comment>
  <info>string</info>  Returns the string representation of this UTCDateTime.

<comment>See Also:</comment>
   * BSON Types: Date


id: MongoDB\BSON\UTCDateTime::jsonSerialize
type: function
doc:
<comment>Description:</comment>
  Returns a representation that can be converted to JSON

<comment>Return:</comment>
  <info>mixed</info>  Returns data which can be serialized by <strong>json_encode()</strong> to produce an extended JSON
         representation of the <class>MongoDB\BSON\UTCDateTime</class>.
         
         The output is consistent with the <strong>MongoDB\BSON\toJSON()</strong> function, which uses the
         driver-specific legacy extended JSON format. This does not necessarily match the relaxed or
         canonical extended JSON representations used by <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong> and
         <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>, respectively.

<comment>See Also:</comment>
   * JsonSerializable::jsonSerialize
   * <strong>json_encode()</strong>
   * <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>
   * <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong>
   * MongoDB Extended JSON


id: MongoDB\BSON\UTCDateTime::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize a UTCDateTime

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\BSON\UTCDateTime</class>.

<comment>See Also:</comment>
   * MongoDB\BSON\UTCDateTime::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\UTCDateTime::toDateTime
type: function
doc:
<comment>Description:</comment>
  Returns the DateTime representation of this UTCDateTime

<comment>Return:</comment>
  <info>DateTime</info>  Returns the <class>DateTime</class> representation of this UTCDateTime. The returned <class>DateTime</class> will use
            the UTC time zone.

<comment>See Also:</comment>
   * BSON Types: Date


id: MongoDB\BSON\UTCDateTime::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize a UTCDateTime

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\BSON\UTCDateTime</class>.

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

<comment>See Also:</comment>
   * MongoDB\BSON\UTCDateTime::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\UTCDateTimeInterface
type: class
doc:
<comment>Description:</comment>
  This interface is implemented by <class>MongoDB\BSON\UTCDateTime</class> to be used as a parameter, return, or
  property type in userland classes.


id: MongoDB\BSON\UTCDateTimeInterface::__toString
type: function
doc:
<comment>Description:</comment>
  Returns the string representation of this UTCDateTimeInterface

<comment>Return:</comment>
  <info>string</info>  Returns the string representation of this UTCDateTimeInterface.

<comment>See Also:</comment>
   * MongoDB\BSON\UTCDateTime::__toString


id: MongoDB\BSON\UTCDateTimeInterface::toDateTime
type: function
doc:
<comment>Description:</comment>
  Returns the DateTime representation of this UTCDateTimeInterface

<comment>Return:</comment>
  <info>DateTime</info>  Returns the <class>DateTime</class> representation of this UTCDateTimeInterface. The returned <class>DateTime</class>
            should use the UTC time zone.

<comment>See Also:</comment>
   * MongoDB\BSON\UTCDateTime::toDateTime


id: MongoDB\BSON\Undefined
type: class
doc:
<comment>Description:</comment>
  BSON type for the "Undefined" type. This BSON type is deprecated, and this class can not be
  instantiated. It will be created from a BSON undefined type while converting BSON to PHP, and can
  also be converted back into BSON while storing documents in the database.


id: MongoDB\BSON\Undefined::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Undefined (unused)
  
  <class>MongoDB\BSON\Undefined</class> objects are created through conversion from a deprecated BSON type and
  cannot be constructed directly.

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


id: MongoDB\BSON\Undefined::jsonSerialize
type: function
doc:
<comment>Description:</comment>
  Returns a representation that can be converted to JSON

<comment>Return:</comment>
  <info>mixed</info>  Returns data which can be serialized by <strong>json_encode()</strong> to produce an extended JSON
         representation of the <class>MongoDB\BSON\Undefined</class>.
         
         The output is consistent with the <strong>MongoDB\BSON\toJSON()</strong> function, which uses the
         driver-specific legacy extended JSON format. This does not necessarily match the relaxed or
         canonical extended JSON representations used by <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong> and
         <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>, respectively.

<comment>See Also:</comment>
   * JsonSerializable::jsonSerialize
   * <strong>json_encode()</strong>
   * <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>
   * <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong>
   * MongoDB Extended JSON


id: MongoDB\BSON\Undefined::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize a Undefined

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\BSON\Undefined</class>.

<comment>See Also:</comment>
   * MongoDB\BSON\Undefined::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\Undefined::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize a Undefined

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\BSON\Undefined</class>.

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

<comment>See Also:</comment>
   * MongoDB\BSON\Undefined::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\BSON\Unserializable
type: class
doc:
<comment>Description:</comment>
  Classes that implement this interface may be specified in a type map for unserializing BSON arrays
  and documents (both root and embedded).


id: MongoDB\BSON\Unserializable::bsonUnserialize
type: function
doc:
<comment>Description:</comment>
  Constructs the object from a BSON array or document
  
  Called during unserialization of the object from BSON. The properties of the BSON array or
  document will be passed to the method as an <info>array</info>.
  
  Remember to check for an _id property when handling data from a BSON document.
  
  This method acts as the constructor of the object. The __construct() method will not be called
  after this method.

<comment>Param:</comment>
  <info>array</info>  <strong>$data</strong>  Properties within the BSON array or document.

<comment>Return:</comment>
  <info>void</info>  The return value from this method is ignored.

<comment>See Also:</comment>
   * <strong>MongoDB\BSON\Serializable::bsonSerialize()</strong>
   * MongoDB\BSON\Persistable
   * 


id: MongoDB\BSON\fromJSON
type: function
doc:
<comment>Description:</comment>
  Returns the BSON representation of a JSON value
  
  Converts an extended JSON string to its BSON representation.

<comment>Param:</comment>
  <info>string</info>  <strong>$json</strong>  JSON value to be converted.

<comment>Return:</comment>
  <info>string</info>  The serialized BSON document as a binary string.

<comment>See Also:</comment>
   * MongoDB\BSON\Document::fromJSON
   * <strong>MongoDB\BSON\toJSON()</strong>
   * MongoDB Extended JSON
   * MongoDB BSON


id: MongoDB\BSON\fromPHP
type: function
doc:
<comment>Description:</comment>
  Returns the BSON representation of a PHP value
  
  Serializes a PHP array or object (e.g. document) to its BSON representation. The returned binary
  string will describe a BSON document.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$value</strong>  PHP value to be serialized.

<comment>Return:</comment>
  <info>string</info>  The serialized BSON document as a binary string.

<comment>See Also:</comment>
   * MongoDB\BSON\Document::fromPHP
   * <strong>MongoDB\BSON\toPHP()</strong>
   * MongoDB BSON
   * 


id: MongoDB\BSON\toCanonicalExtendedJSON
type: function
doc:
<comment>Description:</comment>
  Returns the Canonical Extended JSON representation of a BSON value
  
  Converts a BSON string to its Canonical Extended JSON representation. The canonical format prefers
  type fidelity at the expense of concise output and is most suited for producing output that can be
  converted back to BSON without any loss of type information (e.g. numeric types will remain
  differentiated).

<comment>Param:</comment>
  <info>string</info>  <strong>$bson</strong>  BSON value to be converted.

<comment>Return:</comment>
  <info>string</info>  The converted JSON value.

<comment>See Also:</comment>
   * MongoDB\BSON\Document::fromJSON
   * MongoDB\BSON\Document::toCanonicalExtendedJSON
   * <strong>MongoDB\BSON\fromJSON()</strong>
   * <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong>
   * Extended JSON Specification
   * MongoDB BSON


id: MongoDB\BSON\toJSON
type: function
doc:
<comment>Description:</comment>
  Returns the Legacy Extended JSON representation of a BSON value
  
  Converts a BSON string to its Legacy Extended JSON representation.
  
  There exist several JSON formats for representing BSON. This function implements the "strict mode"
  defined in MongoDB Extended JSON, which has been superseded by the canonical and relaxed formats
  defined in the Extended JSON Specification and implemented by
  <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong> and <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong>, respectively.
  
  JSON does not support <info>NAN</info> and <info>INF</info> and MongoDB's Legacy Extended JSON format does not define an
  alternative representation for these values (libbson will output <return>nan</return> and <return>inf</return> literals, which may
  not be parsed as valid JSON). If you are working with BSON that may contain non-finite numbers,
  please use <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong> or <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$bson</strong>  BSON value to be converted.

<comment>Return:</comment>
  <info>string</info>  The converted JSON value.

<comment>See Also:</comment>
   * <strong>MongoDB\BSON\fromJSON()</strong>
   * <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>
   * <strong>MongoDB\BSON\toRelaxedExtendedJSON()</strong>
   * MongoDB Extended JSON
   * MongoDB BSON


id: MongoDB\BSON\toPHP
type: function
doc:
<comment>Description:</comment>
  Returns the PHP representation of a BSON value
  
  Unserializes a BSON document (i.e. binary string) to its PHP representation. The <strong>$typeMap</strong>
  paramater may be used to control the PHP types used for converting BSON arrays and documents (both
  root and embedded).
  
  BSON documents can technically contain duplicate keys because documents are stored as a list of
  key-value pairs; however, applications should refrain from generating documents with duplicate
  keys as server and driver behavior may be undefined. Since PHP objects and arrays cannot have
  duplicate keys, data could also be lost when decoding a BSON document with duplicate keys.

<comment>Param:</comment>
  <info>string</info>  <strong>$bson</strong>     BSON value to be unserialized.
  <info>array</info>   <strong>$typeMap</strong>  Type map configuration.

<comment>Return:</comment>
  <info>array|object</info>  The unserialized PHP value.

<comment>See Also:</comment>
   * MongoDB\BSON\Document::toPHP
   * <strong>MongoDB\BSON\fromPHP()</strong>
   * MongoDB BSON
   * 


id: MongoDB\BSON\toRelaxedExtendedJSON
type: function
doc:
<comment>Description:</comment>
  Returns the Relaxed Extended JSON representation of a BSON value
  
  Converts a BSON string to its Relaxed Extended JSON representation. The relaxed format prefers use
  of JSON type primitives at the expense of type fidelity and is most suited for producing output
  that can be easily consumed by web APIs and humans.

<comment>Param:</comment>
  <info>string</info>  <strong>$bson</strong>  BSON value to be converted.

<comment>Return:</comment>
  <info>string</info>  The converted JSON value.

<comment>See Also:</comment>
   * MongoDB\BSON\Document::fromJSON
   * MongoDB\BSON\Document::toRelaxedExtendedJSON
   * <strong>MongoDB\BSON\fromJSON()</strong>
   * <strong>MongoDB\BSON\toCanonicalExtendedJSON()</strong>
   * Extended JSON 
   * MongoDB BSON


id: MongoDB\Driver\BulkWrite
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\BulkWrite</class> collects one or more write operations that should be sent to the
  server. After adding any number of insert, update, and delete operations, the collection may be
  executed via MongoDB\Driver\Manager::executeBulkWrite.
  
  Write operations may either be ordered (default) or unordered. Ordered write operations are sent
  to the server, in the order provided, for serial execution. If a write fails, any remaining
  operations will be aborted. Unordered operations are sent to the server in an arbitrary order
  where they may be executed in parallel. Any errors that occur are reported after all operations
  have been attempted.


id: MongoDB\Driver\BulkWrite::__construct
type: function
doc:
<comment>Description:</comment>
  Create a new BulkWrite
  
  Constructs a new <class>MongoDB\Driver\BulkWrite</class>, which is a mutable object to which one or more write
  operations may be added. The write(s) may then be executed with
  MongoDB\Driver\Manager::executeBulkWrite.

<comment>Param:</comment>
  <info>array|null</info>  <strong>$options</strong>  optionsOptionTypeDescriptionDefaultbypassDocumentValidation<info>bool</info> If <info>true</info>,
                        allows insert and update operations to circumvent document level validation.
                        This option is available in MongoDB 3.2+ and is ignored for older server
                        versions, which do not support document level validation. <info>false</info>comment<info>mixed</info>
                        An arbitrary comment to help trace the operation through the database
                        profiler, currentOp output, and logs.  This option is available in MongoDB
                        4.4+ and will result in an exception at execution time if specified for an
                        older server version. let<info>array</info><info>object</info></info> Map of parameter names and values.
                        Values must be constant or closed expressions that do not reference document
                        fields. Parameters can then be accessed as variables in an aggregate
                        expression context (e.g. <return>$$var</return>).  This option is available in MongoDB 5.0+
                        and will result in an exception at execution time if specified for an older
                        server version. ordered<info>bool</info> Ordered operations (<info>true</info>) are executed serially
                        on the MongoDB server, while unordered operations (<info>false</info>) are sent to the
                        server in an arbitrary order and may be executed in parallel. <info>true</info>
                        
                        If <info>true</info>, allows insert and update operations to circumvent document level
                        validation.
                        
                        This option is available in MongoDB 3.2+ and is ignored for older server
                        versions, which do not support document level validation.
                        
                        An arbitrary comment to help trace the operation through the database
                        profiler, currentOp output, and logs.
                        
                        This option is available in MongoDB 4.4+ and will result in an exception at
                        execution time if specified for an older server version.
                        
                        Map of parameter names and values. Values must be constant or closed
                        expressions that do not reference document fields. Parameters can then be
                        accessed as variables in an aggregate expression context (e.g. <return>$$var</return>).
                        
                        This option is available in MongoDB 5.0+ and will result in an exception at
                        execution time if specified for an older server version.

<comment>See Also:</comment>
   * MongoDB\Driver\Manager::executeBulkWrite
   * <class>MongoDB\Driver\WriteResult</class>


id: MongoDB\Driver\BulkWrite::count
type: function
doc:
<comment>Description:</comment>
  Count number of write operations in the bulk
  
  Returns the number of write operations added to the <class>MongoDB\Driver\BulkWrite</class> object.

<comment>Return:</comment>
  <info>int</info>  Returns number of write operations added to the <class>MongoDB\Driver\BulkWrite</class> object.


id: MongoDB\Driver\BulkWrite::delete
type: function
doc:
<comment>Description:</comment>
  Add a delete operation to the bulk
  
  Adds a delete operation to the <class>MongoDB\Driver\BulkWrite</class>.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$filter</strong>         The query predicate. An empty predicate will match all documents in
                                the collection.
                                
                                When evaluating query criteria, MongoDB compares types and values
                                according to its own comparison rules for BSON types, which differs
                                from PHP's comparison and type juggling rules. When matching a
                                special BSON type the query criteria should use the respective BSON
                                class (e.g. use <class>MongoDB\BSON\ObjectId</class> to match an ObjectId).
  <info>array|null</info>    <strong>$deleteOptions</strong>  
                                deleteOptionsOptionTypeDescriptionDefaultcollation<info>array</info><info>object</info></info>Collation
                                allows users to specify language-specific rules for string
                                comparison, such as rules for lettercase and accent marks. When
                                specifying collation, the <return>"locale"</return> field is mandatory; all other
                                collation fields are optional. For descriptions of the fields, see
                                Collation Document.  If the collation is unspecified but the
                                collection has a default collation, the operation uses the collation
                                specified for the collection. If no collation is specified for the
                                collection or for the operation, MongoDB uses the simple binary
                                comparison used in prior versions for string comparisons.  This
                                option is available in MongoDB 3.4+ and will result in an exception
                                at execution time if specified for an older server version.
                                hint<info>string</info><info>array</info><info>object</info></info> Index specification. Specify either the index
                                name as a string or the index key pattern. If specified, then the
                                query system will only consider plans using the hinted index.  This
                                option is available in MongoDB 4.4+ and will result in an exception
                                at execution time if specified for an older server version.
                                limit<info>bool</info>Delete all matching documents (<info>false</info>), or only the first
                                matching document (<info>true</info>)<info>false</info>
                                
                                Collation allows users to specify language-specific rules for string
                                comparison, such as rules for lettercase and accent marks. When
                                specifying collation, the <return>"locale"</return> field is mandatory; all other
                                collation fields are optional. For descriptions of the fields, see
                                Collation Document.
                                
                                If the collation is unspecified but the collection has a default
                                collation, the operation uses the collation specified for the
                                collection. If no collation is specified for the collection or for
                                the operation, MongoDB uses the simple binary comparison used in
                                prior versions for string comparisons.
                                
                                This option is available in MongoDB 3.4+ and will result in an
                                exception at execution time if specified for an older server
                                version.
                                
                                Index specification. Specify either the index name as a string or
                                the index key pattern. If specified, then the query system will only
                                consider plans using the hinted index.
                                
                                This option is available in MongoDB 4.4+ and will result in an
                                exception at execution time if specified for an older server
                                version.

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

<comment>See Also:</comment>
   * MongoDB\Driver\Manager::executeBulkWrite
   * <class>MongoDB\Driver\WriteResult</class>


id: MongoDB\Driver\BulkWrite::insert
type: function
doc:
<comment>Description:</comment>
  Add an insert operation to the bulk
  
  Adds an insert operation to the <class>MongoDB\Driver\BulkWrite</class>.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$document</strong>  A document to insert.

<comment>Return:</comment>
  <info>mixed</info>  Returns the <return>_id</return> of the inserted document. If the <strong>$document</strong> did not have an <return>_id</return>, the
         <class>MongoDB\BSON\ObjectId</class> generated for the insert will be returned.

<comment>See Also:</comment>
   * MongoDB\Driver\Manager::executeBulkWrite
   * <class>MongoDB\Driver\WriteResult</class>
   * <class>MongoDB\BSON\ObjectId</class>
   * MongoDB\BSON\Persistable


id: MongoDB\Driver\BulkWrite::update
type: function
doc:
<comment>Description:</comment>
  Add an update operation to the bulk
  
  Adds an update operation to the <class>MongoDB\Driver\BulkWrite</class>.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$filter</strong>         The query predicate. An empty predicate will match all documents in
                                the collection.
                                
                                When evaluating query criteria, MongoDB compares types and values
                                according to its own comparison rules for BSON types, which differs
                                from PHP's comparison and type juggling rules. When matching a
                                special BSON type the query criteria should use the respective BSON
                                class (e.g. use <class>MongoDB\BSON\ObjectId</class> to match an ObjectId).
  <info>array|object</info>  <strong>$newObj</strong>         A document containing either update operators (e.g. <return>$set</return>), a
                                replacement document (i.e. only <return>field:value</return> expressions), or an
                                aggregation pipeline.
  <info>array|null</info>    <strong>$updateOptions</strong>  updateOptionsOptionTypeDescriptionDefaultarrayFilters<info>array</info> An array
                                of filter documents that determines which array elements to modify
                                for an update operation on an array field. See Specify arrayFilters
                                for Array Update Operations in the MongoDB manual for more
                                information.  This option is available in MongoDB 3.6+ and will
                                result in an exception at execution time if specified for an older
                                server version. collation<info>array</info><info>object</info></info>Collation allows users to
                                specify language-specific rules for string comparison, such as rules
                                for lettercase and accent marks. When specifying collation, the
                                <return>"locale"</return> field is mandatory; all other collation fields are
                                optional. For descriptions of the fields, see Collation Document.
                                If the collation is unspecified but the collection has a default
                                collation, the operation uses the collation specified for the
                                collection. If no collation is specified for the collection or for
                                the operation, MongoDB uses the simple binary comparison used in
                                prior versions for string comparisons.  This option is available in
                                MongoDB 3.4+ and will result in an exception at execution time if
                                specified for an older server version. hint<info>string</info><info>array</info><info>object</info></info> Index
                                specification. Specify either the index name as a string or the
                                index key pattern. If specified, then the query system will only
                                consider plans using the hinted index.  This option is available in
                                MongoDB 4.2+ and will result in an exception at execution time if
                                specified for an older server version. multi<info>bool</info> Update only the
                                first matching document if <info>false</info>, or all matching documents <info>true</info>.
                                This option cannot be <info>true</info> if <strong>$newObj</strong> is a replacement document.
                                <info>false</info>upsert<info>bool</info> If <strong>$filter</strong> does not match an existing document,
                                insert a single document. The document will be created from <strong>$newObj</strong>
                                if it is a replacement document (i.e. no update operators);
                                otherwise, the operators in <strong>$newObj</strong> will be applied to <strong>$filter</strong> to
                                create the new document. <info>false</info>
                                
                                An array of filter documents that determines which array elements to
                                modify for an update operation on an array field. See Specify
                                arrayFilters for Array Update Operations in the MongoDB manual for
                                more information.
                                
                                This option is available in MongoDB 3.6+ and will result in an
                                exception at execution time if specified for an older server
                                version.
                                
                                Collation allows users to specify language-specific rules for string
                                comparison, such as rules for lettercase and accent marks. When
                                specifying collation, the <return>"locale"</return> field is mandatory; all other
                                collation fields are optional. For descriptions of the fields, see
                                Collation Document.
                                
                                If the collation is unspecified but the collection has a default
                                collation, the operation uses the collation specified for the
                                collection. If no collation is specified for the collection or for
                                the operation, MongoDB uses the simple binary comparison used in
                                prior versions for string comparisons.
                                
                                This option is available in MongoDB 3.4+ and will result in an
                                exception at execution time if specified for an older server
                                version.
                                
                                Index specification. Specify either the index name as a string or
                                the index key pattern. If specified, then the query system will only
                                consider plans using the hinted index.
                                
                                This option is available in MongoDB 4.2+ and will result in an
                                exception at execution time if specified for an older server
                                version.

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

<comment>See Also:</comment>
   * MongoDB\Driver\Manager::executeBulkWrite
   * <class>MongoDB\Driver\WriteResult</class>


id: MongoDB\Driver\ClientEncryption
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\ClientEncryption</class> class handles creation of data keys for client-side
  encryption, as well as manually encrypting and decrypting values.


id: MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC
type: constant
doc:
<comment>Description:</comment>
  Specifies an algorithm for deterministic encryption, which is suitable for querying.


id: MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED
type: constant
doc:
<comment>Description:</comment>
  Specifies an algorithm for an indexed, encrypted payload, which can be used with queryable
  encryption.
  
  To insert or query with an indexed, encrypted payload, the <class>MongoDB\Driver\Manager</class> must be
  configured with the <return>"autoEncryption"</return> driver option. The <return>"bypassQueryAnalysis"</return> auto encryption
  option may be <info>true</info>. The <return>"bypassAutoEncryption"</return> auto encryption option must be <info>false</info>.


id: MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW
type: constant
doc:
<comment>Description:</comment>
  Specifies an algorithm for a range, encrypted payload, which can be used with queryable
  encryption.
  
  To query with a range encrypted payload, the <class>MongoDB\Driver\Manager</class> must be configured with the
  <return>"autoEncryption"</return> driver option. The <return>"bypassQueryAnalysis"</return> auto encryption option may be <info>true</info>. The
  <return>"bypassAutoEncryption"</return> auto encryption option must be <info>false</info>.
  
  The range algorithm is experimental only. It is not intended for public use.
  
  The PHP driver does not yet support range queries for decimal128 BSON field types.


id: MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY
type: constant
doc:
<comment>Description:</comment>
  Specifies an equality query type, which is used in conjunction with
  <info>MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED</info>.


id: MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW
type: constant
doc:
<comment>Description:</comment>
  Specifies a range query type, which is used in conjunction with
  <info>MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW</info>.


id: MongoDB\Driver\ClientEncryption::__construct
type: function
doc:
<comment>Description:</comment>
  Create a new ClientEncryption object
  
  Constructs a new <class>MongoDB\Driver\ClientEncryption</class> object with the specified options.

<comment>Param:</comment>
  <info>array</info>  <strong>$options</strong>  optionsOptionTypeDescriptionkeyVaultClient<class>MongoDB\Driver\Manager</class>The Manager used
                   to route data key queries. This option is required (unlike with
                   <strong>MongoDB\Driver\Manager::createClientEncryption()</strong>).keyVaultNamespace<info>string</info>A fully
                   qualified namespace (e.g. <return>"databaseName.collectionName"</return>) denoting the collection
                   that contains all data keys used for encryption and decryption. This option is
                   required.kmsProviders<info>array</info> A document containing the configuration for one or
                   more KMS providers, which are used to encrypt data keys. Supported providers
                   include <return>"aws"</return>, <return>"azure"</return>, <return>"gcp"</return>, <return>"kmip"</return>, and <return>"local"</return> and at least one must be
                   specified.  If an empty document is specified for <return>"aws"</return>, <return>"azure"</return>, or <return>"gcp"</return>, the
                   driver will attempt to configure the provider using Automatic Credentials.  The
                   format for <return>"aws"</return> is as follows: , secretAccessKey: , sessionToken:
                   }
                   ]]> The format for <return>"azure"</return> is as follows: , clientId: , clientSecret: ,
                   identityPlatformEndpoint:  // Defaults to "login.microsoftonline.com"
                   }
                   ]]> The format for <return>"gcp"</return> is as follows: , privateKey: |, endpoint:  // Defaults
                   to "oauth2.googleapis.com"
                   }
                   ]]> The format for <return>"kmip"</return> is as follows: 
                   }
                   ]]> The format for <return>"local"</return> is as follows: |
                   }
                   ]]>tlsOptions<info>array</info> A document containing the TLS configuration for one or more
                   KMS providers. Supported providers include <return>"aws"</return>, <return>"azure"</return>, <return>"gcp"</return>, and <return>"kmip"</return>. All
                   providers support the following options: : { tlsCaFile: , tlsCertificateKeyFile:
                   , tlsCertificateKeyFilePassword: , tlsDisableOCSPEndpointCheck:
                   }
                   ]]>
                   
                   A document containing the configuration for one or more KMS providers, which are
                   used to encrypt data keys. Supported providers include <return>"aws"</return>, <return>"azure"</return>, <return>"gcp"</return>,
                   <return>"kmip"</return>, and <return>"local"</return> and at least one must be specified.
                   
                   If an empty document is specified for <return>"aws"</return>, <return>"azure"</return>, or <return>"gcp"</return>, the driver will
                   attempt to configure the provider using Automatic Credentials.
                   
                   The format for <return>"aws"</return> is as follows:
                   
                   The format for <return>"azure"</return> is as follows:
                   
                   The format for <return>"gcp"</return> is as follows:
                   
                   The format for <return>"kmip"</return> is as follows:
                   
                   The format for <return>"local"</return> is as follows:
                   
                   A document containing the TLS configuration for one or more KMS providers.
                   Supported providers include <return>"aws"</return>, <return>"azure"</return>, <return>"gcp"</return>, and <return>"kmip"</return>. All providers
                   support the following options:

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Manager::createClientEncryption()</strong>
   * Explicit (Manual) Client-Side Field Level Encryption in the MongoDB manual


id: MongoDB\Driver\ClientEncryption::addKeyAltName
type: function
doc:
<comment>Description:</comment>
  Adds an alternate name to a key document
  
  Adds <strong>$keyAltName</strong> to the set of alternate names for the key document with the given UUID <strong>$keyId</strong>.

<comment>Param:</comment>
  <info>MongoDB\BSON\Binary</info>  <strong>$keyId</strong>       A <class>MongoDB\BSON\Binary</class> instance with subtype 4 (UUID) identifying
                                    the key document.
  <info>string</info>               <strong>$keyAltName</strong>  Alternate name to add to the key document.

<comment>Return:</comment>
  <info>object|null</info>  Returns the previous version of the key document, or <info>null</info> if no document matched.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\ClientEncryption::getKeyByAltName()</strong>
   * <strong>MongoDB\Driver\ClientEncryption::removeKeyAltName()</strong>


id: MongoDB\Driver\ClientEncryption::createDataKey
type: function
doc:
<comment>Description:</comment>
  Creates a key document
  
  Creates a new key document and inserts it into the key vault collection.

<comment>Param:</comment>
  <info>string</info>      <strong>$kmsProvider</strong>  The KMS provider (e.g. <return>"local"</return>, <return>"aws"</return>) that will be used to encrypt the
                            new data key.
  <info>array|null</info>  <strong>$options</strong>      Data key optionsOptionTypeDescriptionmasterKey<info>array</info> The masterKey
                            document identifies a KMS-specific key used to encrypt the new data key.
                            This option is required unless <strong>$kmsProvider</strong> is <return>"local"</return>. <return>"aws"</return> provider
                            optionsOptionTypeDescriptionregionstringRequired.keystringRequired. The
                            Amazon Resource Name (ARN) to the AWS customer master key
                            (CMK).endpointstringOptional. An alternate host identifier to send KMS
                            requests to. May include port number.<return>"azure"</return> provider
                            optionsOptionTypeDescriptionkeyVaultEndpointstringRequired. Host with
                            optional port (e.g.
                            "example.vault.azure.net").keyNamestringRequired.keyVersionstringOptional.
                            A specific version of the named key. Defaults to using the key's primary
                            version.<return>"gcp"</return> provider
                            optionsOptionTypeDescriptionprojectIdstringRequired.locationstringRequired.keyRingstringRequired.keyNamestringRequired.keyVersionstringOptional.
                            A specific version of the named key. Defaults to using the key's primary
                            version.endpointstringOptional. Host with optional port. Defaults to
                            "cloudkms.googleapis.com".<return>"kmip"</return> provider
                            optionsOptionTypeDescriptionkeyIdstringOptional. Unique identifier to a
                            96-byte KMIP secret data managed object. If unspecified, the driver
                            creates a random 96-byte KMIP secret data managed
                            object.endpointstringOptional. Host with optional port.keyAltNames<info>array</info>
                            An optional list of string alternate names used to reference a key. If a
                            key is created with alternate names, then encryption may refer to the
                            key by the unique alternate name instead of by <return>_id</return>.
                            keyMaterial<class>MongoDB\BSON\Binary</class> An optional 96-byte value to use as
                            custom key material for the data key being created. If keyMaterial is
                            given, the custom key material is used for encrypting and decrypting
                            data. Otherwise, the key material for the new data key is generated from
                            a cryptographically secure random device.
                            
                            The masterKey document identifies a KMS-specific key used to encrypt the
                            new data key. This option is required unless <strong>$kmsProvider</strong> is <return>"local"</return>.
                            
                            <return>"aws"</return> provider
                            optionsOptionTypeDescriptionregionstringRequired.keystringRequired. The
                            Amazon Resource Name (ARN) to the AWS customer master key
                            (CMK).endpointstringOptional. An alternate host identifier to send KMS
                            requests to. May include port number.
                            
                            <return>"azure"</return> provider
                            optionsOptionTypeDescriptionkeyVaultEndpointstringRequired. Host with
                            optional port (e.g.
                            "example.vault.azure.net").keyNamestringRequired.keyVersionstringOptional.
                            A specific version of the named key. Defaults to using the key's primary
                            version.
                            
                            <return>"gcp"</return> provider
                            optionsOptionTypeDescriptionprojectIdstringRequired.locationstringRequired.keyRingstringRequired.keyNamestringRequired.keyVersionstringOptional.
                            A specific version of the named key. Defaults to using the key's primary
                            version.endpointstringOptional. Host with optional port. Defaults to
                            "cloudkms.googleapis.com".
                            
                            <return>"kmip"</return> provider optionsOptionTypeDescriptionkeyIdstringOptional. Unique
                            identifier to a 96-byte KMIP secret data managed object. If unspecified,
                            the driver creates a random 96-byte KMIP secret data managed
                            object.endpointstringOptional. Host with optional port.
                            
                            An optional list of string alternate names used to reference a key. If a
                            key is created with alternate names, then encryption may refer to the
                            key by the unique alternate name instead of by <return>_id</return>.
                            
                            An optional 96-byte value to use as custom key material for the data key
                            being created. If keyMaterial is given, the custom key material is used
                            for encrypting and decrypting data. Otherwise, the key material for the
                            new data key is generated from a cryptographically secure random device.

<comment>Return:</comment>
  <info>MongoDB\BSON\Binary</info>  Returns the identifier of the new key as a <class>MongoDB\BSON\Binary</class> object with
                       subtype 4 (UUID).


id: MongoDB\Driver\ClientEncryption::decrypt
type: function
doc:
<comment>Description:</comment>
  Decrypt a value
  
  Decrypts the value.

<comment>Param:</comment>
  <info>MongoDB\BSON\Binary</info>  <strong>$value</strong>  A <class>MongoDB\BSON\Binary</class> instance with subtype 6 containing the
                               encrypted value.

<comment>Return:</comment>
  <info>mixed</info>  Returns the decrypted value as it was passed to <strong>MongoDB\Driver\ClientEncryption::encrypt()</strong>.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\ClientEncryption::encrypt()</strong>


id: MongoDB\Driver\ClientEncryption::deleteKey
type: function
doc:
<comment>Description:</comment>
  Deletes a key document
  
  Removes the key document with the given UUID <strong>$keyId</strong> from the key vault collection.

<comment>Param:</comment>
  <info>MongoDB\BSON\Binary</info>  <strong>$keyId</strong>  A <class>MongoDB\BSON\Binary</class> instance with subtype 4 (UUID) identifying the
                               key document.

<comment>Return:</comment>
  <info>object</info>  Returns the result of the internal <return>deleteOne</return> operation on the key vault collection.


id: MongoDB\Driver\ClientEncryption::encrypt
type: function
doc:
<comment>Description:</comment>
  Encrypt a value
  
  Encrypts the value.

<comment>Param:</comment>
  <info>mixed</info>       <strong>$value</strong>    The value to be encrypted. Any value that can be inserted into MongoDB can
                        be encrypted using this method.
  <info>array|null</info>  <strong>$options</strong>  Encryption optionsOptionTypeDescriptionalgorithm<info>string</info> The encryption
                        algorithm to be used. This option is required. Specify one of the following
                        ClientEncryption constants:
                        <info>MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC</info><info>MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM</info><info>MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED</info><info>MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED</info><info>MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW</info>contentionFactor<info>int</info>
                        The contention factor for evaluating queries with indexed, encrypted
                        payloads.  This option only applies and may only be specified when <return>algorithm</return>
                        is <info>MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED</info> or
                        <info>MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW</info>. keyAltName<info>string</info>
                        Identifies a key vault collection document by <return>keyAltName</return>. This option is
                        mutually exclusive with <return>keyId</return> and exactly one is required.
                        keyId<class>MongoDB\BSON\Binary</class> Identifies a data key by <return>_id</return>. The value is a UUID
                        (binary subtype 4). This option is mutually exclusive with <return>keyAltName</return> and
                        exactly one is required. queryType<info>int</info> The query type for evaluating queries
                        with indexed, encrypted payloads. Specify one of the following
                        ClientEncryption constants:
                        <info>MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY</info><info>MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW</info>This
                        option only applies and may only be specified when <return>algorithm</return> is
                        <info>MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED</info> or
                        <info>MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW</info>. rangeOpts<info>array</info>
                        Index options for a queryable encryption field supporting "rangePreview"
                        queries. The options below must match the values set in the <return>encryptedFields</return>
                        of the target collection. For double and decimal128 BSON field types, <return>min</return>,
                        <return>max</return>, and <return>precision</return> must all be set, or all be unset. Range index
                        optionsOptionTypeDescriptionmin<info>mixed</info>Required if <return>precision</return> is
                        set.max<info>mixed</info>Required if <return>precision</return> is
                        set.sparsity<info>int</info>Required.precision<info>int</info>Optional. May only be set for double or
                        decimal128 BSON field types.
                        
                        The encryption algorithm to be used. This option is required. Specify one of
                        the following ClientEncryption constants:
                        
                        The contention factor for evaluating queries with indexed, encrypted
                        payloads.
                        
                        This option only applies and may only be specified when <return>algorithm</return> is
                        <info>MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED</info> or
                        <info>MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW</info>.
                        
                        Identifies a key vault collection document by <return>keyAltName</return>. This option is
                        mutually exclusive with <return>keyId</return> and exactly one is required.
                        
                        Identifies a data key by <return>_id</return>. The value is a UUID (binary subtype 4). This
                        option is mutually exclusive with <return>keyAltName</return> and exactly one is required.
                        
                        The query type for evaluating queries with indexed, encrypted payloads.
                        Specify one of the following ClientEncryption constants:
                        
                        This option only applies and may only be specified when <return>algorithm</return> is
                        <info>MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED</info> or
                        <info>MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW</info>.
                        
                        Index options for a queryable encryption field supporting "rangePreview"
                        queries. The options below must match the values set in the <return>encryptedFields</return>
                        of the target collection. For double and decimal128 BSON field types, <return>min</return>,
                        <return>max</return>, and <return>precision</return> must all be set, or all be unset.
                        
                        Range index optionsOptionTypeDescriptionmin<info>mixed</info>Required if <return>precision</return> is
                        set.max<info>mixed</info>Required if <return>precision</return> is
                        set.sparsity<info>int</info>Required.precision<info>int</info>Optional. May only be set for double or
                        decimal128 BSON field types.

<comment>Return:</comment>
  <info>MongoDB\BSON\Binary</info>  Returns the encrypted value as <class>MongoDB\BSON\Binary</class> object with subtype 6.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\ClientEncryption::decrypt()</strong>


id: MongoDB\Driver\ClientEncryption::encryptExpression
type: function
doc:
<comment>Description:</comment>
  Encrypts a match or aggregate expression
  
  Encrypts a match or aggregate expression to query a range index.
  
  To query with a range encrypted payload, the <class>MongoDB\Driver\Manager</class> must be configured with the
  <return>"autoEncryption"</return> driver option. The <return>"bypassQueryAnalysis"</return> auto encryption option may be <info>true</info>. The
  <return>"bypassAutoEncryption"</return> auto encryption option must be <info>false</info>.
  
  The range algorithm is experimental only. It is not intended for public use.
  
  The PHP driver does not yet support range queries for decimal128 BSON field types.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$expr</strong>     The match or aggregate expression to be encrypted. Expressions must use at
                          least one of the <return>$gt</return>, <return>$gte</return>, <return>$lt</return>, or <return>$lte</return> operators. A top-level <return>$and</return>
                          operator is required, even if only a single comparison operator is used.
                          
                          An example of a supported match expression (applies to queries and the
                          <return>$match</return> aggregation stage) is as follows:
                          
                          An example of a supported aggregate expression is as follows:
  <info>array|null</info>    <strong>$options</strong>  Encryption optionsOptionTypeDescriptionalgorithm<info>string</info> The encryption
                          algorithm to be used. This option is required. Specify one of the
                          following ClientEncryption constants:
                          <info>MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC</info><info>MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM</info><info>MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED</info><info>MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED</info><info>MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW</info>contentionFactor<info>int</info>
                          The contention factor for evaluating queries with indexed, encrypted
                          payloads.  This option only applies and may only be specified when
                          <return>algorithm</return> is <info>MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED</info> or
                          <info>MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW</info>. keyAltName<info>string</info>
                          Identifies a key vault collection document by <return>keyAltName</return>. This option is
                          mutually exclusive with <return>keyId</return> and exactly one is required.
                          keyId<class>MongoDB\BSON\Binary</class> Identifies a data key by <return>_id</return>. The value is a UUID
                          (binary subtype 4). This option is mutually exclusive with <return>keyAltName</return> and
                          exactly one is required. queryType<info>int</info> The query type for evaluating
                          queries with indexed, encrypted payloads. Specify one of the following
                          ClientEncryption constants:
                          <info>MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY</info><info>MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW</info>This
                          option only applies and may only be specified when <return>algorithm</return> is
                          <info>MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED</info> or
                          <info>MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW</info>. rangeOpts<info>array</info>
                          Index options for a queryable encryption field supporting "rangePreview"
                          queries. The options below must match the values set in the
                          <return>encryptedFields</return> of the target collection. For double and decimal128 BSON
                          field types, <return>min</return>, <return>max</return>, and <return>precision</return> must all be set, or all be unset.
                          Range index optionsOptionTypeDescriptionmin<info>mixed</info>Required if <return>precision</return> is
                          set.max<info>mixed</info>Required if <return>precision</return> is
                          set.sparsity<info>int</info>Required.precision<info>int</info>Optional. May only be set for double
                          or decimal128 BSON field types.
                          
                          The encryption algorithm to be used. This option is required. Specify one
                          of the following ClientEncryption constants:
                          
                          The contention factor for evaluating queries with indexed, encrypted
                          payloads.
                          
                          This option only applies and may only be specified when <return>algorithm</return> is
                          <info>MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED</info> or
                          <info>MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW</info>.
                          
                          Identifies a key vault collection document by <return>keyAltName</return>. This option is
                          mutually exclusive with <return>keyId</return> and exactly one is required.
                          
                          Identifies a data key by <return>_id</return>. The value is a UUID (binary subtype 4). This
                          option is mutually exclusive with <return>keyAltName</return> and exactly one is required.
                          
                          The query type for evaluating queries with indexed, encrypted payloads.
                          Specify one of the following ClientEncryption constants:
                          
                          This option only applies and may only be specified when <return>algorithm</return> is
                          <info>MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED</info> or
                          <info>MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW</info>.
                          
                          Index options for a queryable encryption field supporting "rangePreview"
                          queries. The options below must match the values set in the
                          <return>encryptedFields</return> of the target collection. For double and decimal128 BSON
                          field types, <return>min</return>, <return>max</return>, and <return>precision</return> must all be set, or all be unset.
                          
                          Range index optionsOptionTypeDescriptionmin<info>mixed</info>Required if <return>precision</return> is
                          set.max<info>mixed</info>Required if <return>precision</return> is
                          set.sparsity<info>int</info>Required.precision<info>int</info>Optional. May only be set for double
                          or decimal128 BSON field types.

<comment>Return:</comment>
  <info>object</info>  Returns the encrypted expression as an object.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Manager::__construct()</strong>


id: MongoDB\Driver\ClientEncryption::getKey
type: function
doc:
<comment>Description:</comment>
  Gets a key document
  
  Finds a single key document in the key vault collection with the given UUID <strong>$keyId</strong>.

<comment>Param:</comment>
  <info>MongoDB\BSON\Binary</info>  <strong>$keyId</strong>  A <class>MongoDB\BSON\Binary</class> instance with subtype 4 (UUID) identifying the
                               key document.

<comment>Return:</comment>
  <info>object|null</info>  Returns the key document, or <info>null</info> if no document matched.


id: MongoDB\Driver\ClientEncryption::getKeyByAltName
type: function
doc:
<comment>Description:</comment>
  Gets a key document by an alternate name
  
  Finds a single key document in the key vault collection with the given alternate name <strong>$keyAltName</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$keyAltName</strong>  Alternate name for the key document.

<comment>Return:</comment>
  <info>object|null</info>  Returns the key document, or <info>null</info> if no document matched.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\ClientEncryption::addKeyAltName()</strong>
   * <strong>MongoDB\Driver\ClientEncryption::removeKeyAltName()</strong>


id: MongoDB\Driver\ClientEncryption::getKeys
type: function
doc:
<comment>Description:</comment>
  Gets all key documents
  
  Finds all key documents in the key vault collection.

<comment>Return:</comment>
  <info>MongoDB\Driver\Cursor</info>  Returns <class>MongoDB\Driver\Cursor</class> on success.


id: MongoDB\Driver\ClientEncryption::removeKeyAltName
type: function
doc:
<comment>Description:</comment>
  Removes an alternate name from a key document
  
  Removes <strong>$keyAltName</strong> from the set of alternate names for the key document with the given UUID
  <strong>$keyId</strong>.

<comment>Param:</comment>
  <info>MongoDB\BSON\Binary</info>  <strong>$keyId</strong>       A <class>MongoDB\BSON\Binary</class> instance with subtype 4 (UUID) identifying
                                    the key document.
  <info>string</info>               <strong>$keyAltName</strong>  Alternate name to remove from the key document.

<comment>Return:</comment>
  <info>object|null</info>  Returns the previous version of the key document, or <info>null</info> if no document matched.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\ClientEncryption::addKeyAltName()</strong>
   * <strong>MongoDB\Driver\ClientEncryption::getKeyByAltName()</strong>


id: MongoDB\Driver\ClientEncryption::rewrapManyDataKey
type: function
doc:
<comment>Description:</comment>
  Rewraps data keys
  
  Rewraps (i.e. decrypts and re-encrypts) zero or more data keys in the key vault collection that
  match the given <strong>$filter</strong>.
  
  If the <return>"provider"</return> option is not specified, matching data keys will be rewrapped with their current
  KMS provider. Otherwise, matching data keys will be re-encrypted according to the specified
  <return>"provider"</return> and <return>"masterKey"</return> options.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$filter</strong>   The query predicate. An empty predicate will match all documents in the
                          collection.
                          
                          When evaluating query criteria, MongoDB compares types and values
                          according to its own comparison rules for BSON types, which differs from
                          PHP's comparison and type juggling rules. When matching a special BSON
                          type the query criteria should use the respective BSON class (e.g. use
                          <class>MongoDB\BSON\ObjectId</class> to match an ObjectId).
  <info>array|null</info>    <strong>$options</strong>  RewrapManyDataKey optionsOptionTypeDescriptionprovider<info>string</info> The KMS
                          provider (e.g. <return>"local"</return>, <return>"aws"</return>) that will be used to re-encrypt the matched
                          data keys.  If a KMS provider is not specified, matched data keys will be
                          re-encrypted with their current KMS provider. masterKey<info>array</info> The masterKey
                          identifies a KMS-specific key used to encrypt the new data key. This
                          option should not be specified without the <return>"provider"</return> option. This option
                          is required if <return>"provider"</return> is specified and not <return>"local"</return>. <return>"aws"</return> provider
                          optionsOptionTypeDescriptionregionstringRequired.keystringRequired. The
                          Amazon Resource Name (ARN) to the AWS customer master key
                          (CMK).endpointstringOptional. An alternate host identifier to send KMS
                          requests to. May include port number.<return>"azure"</return> provider
                          optionsOptionTypeDescriptionkeyVaultEndpointstringRequired. Host with
                          optional port (e.g.
                          "example.vault.azure.net").keyNamestringRequired.keyVersionstringOptional.
                          A specific version of the named key. Defaults to using the key's primary
                          version.<return>"gcp"</return> provider
                          optionsOptionTypeDescriptionprojectIdstringRequired.locationstringRequired.keyRingstringRequired.keyNamestringRequired.keyVersionstringOptional.
                          A specific version of the named key. Defaults to using the key's primary
                          version.endpointstringOptional. Host with optional port. Defaults to
                          "cloudkms.googleapis.com".<return>"kmip"</return> provider
                          optionsOptionTypeDescriptionkeyIdstringOptional. Unique identifier to a
                          96-byte KMIP secret data managed object. If unspecified, the driver
                          creates a random 96-byte KMIP secret data managed
                          object.endpointstringOptional. Host with optional port.
                          
                          The KMS provider (e.g. <return>"local"</return>, <return>"aws"</return>) that will be used to re-encrypt the
                          matched data keys.
                          
                          If a KMS provider is not specified, matched data keys will be re-encrypted
                          with their current KMS provider.
                          
                          The masterKey identifies a KMS-specific key used to encrypt the new data
                          key. This option should not be specified without the <return>"provider"</return> option.
                          This option is required if <return>"provider"</return> is specified and not <return>"local"</return>.
                          
                          <return>"aws"</return> provider
                          optionsOptionTypeDescriptionregionstringRequired.keystringRequired. The
                          Amazon Resource Name (ARN) to the AWS customer master key
                          (CMK).endpointstringOptional. An alternate host identifier to send KMS
                          requests to. May include port number.
                          
                          <return>"azure"</return> provider
                          optionsOptionTypeDescriptionkeyVaultEndpointstringRequired. Host with
                          optional port (e.g.
                          "example.vault.azure.net").keyNamestringRequired.keyVersionstringOptional.
                          A specific version of the named key. Defaults to using the key's primary
                          version.
                          
                          <return>"gcp"</return> provider
                          optionsOptionTypeDescriptionprojectIdstringRequired.locationstringRequired.keyRingstringRequired.keyNamestringRequired.keyVersionstringOptional.
                          A specific version of the named key. Defaults to using the key's primary
                          version.endpointstringOptional. Host with optional port. Defaults to
                          "cloudkms.googleapis.com".
                          
                          <return>"kmip"</return> provider optionsOptionTypeDescriptionkeyIdstringOptional. Unique
                          identifier to a 96-byte KMIP secret data managed object. If unspecified,
                          the driver creates a random 96-byte KMIP secret data managed
                          object.endpointstringOptional. Host with optional port.

<comment>Return:</comment>
  <info>object</info>  Returns an object, which will have an optional <return>bulkWriteResult</return> property containing the
          result of the internal <return>bulkWrite</return> operation as an object. If no data keys matched the
          filter or the write was unacknowledged, the <return>bulkWriteResult</return> property will be <info>null</info>.


id: MongoDB\Driver\Command
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\Command</class> class is a value object that represents a database command.
  
  To provide Command Helpers the <class>MongoDB\Driver\Command</class> object should be composed.


id: MongoDB\Driver\Command::__construct
type: function
doc:
<comment>Description:</comment>
  Create a new Command
  
  Constructs a new <class>MongoDB\Driver\Command</class>, which is an immutable value object that represents a
  database command. The command may then be executed with MongoDB\Driver\Manager::executeCommand.
  
  The complete command document, which includes the command name and its options, should be
  expressed in the <strong>$document</strong> parameter. The <strong>$commandOptions</strong> parameter is only used to specify
  options related to the execution of the command and the resulting <class>MongoDB\Driver\Cursor</class>.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$document</strong>        The complete command document, which will be sent to the server.
  <info>array|null</info>    <strong>$commandOptions</strong>  Do not use this parameter to specify options described in the
                                 command's reference in the MongoDB manual. This parameter should
                                 only be used for the options explicitly listed below.
                                 
                                 commandOptionsOptionTypeDescriptionmaxAwaitTimeMS<info>int</info> Positive
                                 integer denoting the time limit in milliseconds for the server to
                                 block a getMore operation if no data is available. This option
                                 should only be used in conjunction with commands that return a
                                 tailable cursor (e.g. Change Streams).
                                 
                                 Positive integer denoting the time limit in milliseconds for the
                                 server to block a getMore operation if no data is available. This
                                 option should only be used in conjunction with commands that return
                                 a tailable cursor (e.g. Change Streams).

<comment>See Also:</comment>
   * MongoDB\Driver\Manager::executeCommand
   * <class>MongoDB\Driver\Cursor</class>


id: MongoDB\Driver\Cursor
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\Cursor</class> class encapsulates the results of a MongoDB command or query and may be
  returned by MongoDB\Driver\Manager::executeCommand or MongoDB\Driver\Manager::executeQuery,
  respectively.


id: MongoDB\Driver\Cursor::__construct
type: function
doc:
<comment>Description:</comment>
  Create a new Cursor (not used)
  
  <class>MongoDB\Driver\Cursor</class> objects are returned as the result of an executed command or query and
  cannot be constructed directly.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Manager::executeCommand()</strong>
   * <strong>MongoDB\Driver\Manager::executeQuery()</strong>
   * <strong>MongoDB\Driver\Server::executeCommand()</strong>
   * <strong>MongoDB\Driver\Server::executeQuery()</strong>


id: MongoDB\Driver\Cursor::current
type: function
doc:
<comment>Description:</comment>
  Returns the current element

<comment>Return:</comment>
  <info>array|object|null</info>  Returns the current result document as an array or object, depending on the
                     cursor's type map. If iteration has not started or the current position is not
                     valid, <info>null</info> will be returned.

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


id: MongoDB\Driver\Cursor::getId
type: function
doc:
<comment>Description:</comment>
  Returns the ID for this cursor
  
  Returns the <class>MongoDB\Driver\CursorId</class> associated with this cursor. A cursor ID uniquely identifies
  the cursor on the server.

<comment>Return:</comment>
  <info>MongoDB\Driver\CursorId</info>  Returns the <class>MongoDB\Driver\CursorId</class> for this cursor.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\CursorId</class>
   * <strong>MongoDB\Driver\CursorId::__toString()</strong>


id: MongoDB\Driver\Cursor::getServer
type: function
doc:
<comment>Description:</comment>
  Returns the server associated with this cursor
  
  Returns the <class>MongoDB\Driver\Server</class> associated with this cursor. This is the server that executed
  the <class>MongoDB\Driver\Query</class> or <class>MongoDB\Driver\Command</class>.

<comment>Return:</comment>
  <info>MongoDB\Driver\Server</info>  Returns the <class>MongoDB\Driver\Server</class> associated with this cursor.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Server</class>


id: MongoDB\Driver\Cursor::isDead
type: function
doc:
<comment>Description:</comment>
  Checks if the cursor is exhausted or may have additional results
  
  Checks whether there are definitely no additional results available on the cursor. This method is
  similar to the cursor.isExhausted() method in the MongoDB shell and is primarily useful when
  iterating tailable cursors.
  
  A cursor has no additional results and is considered "dead" when one of the following is true:
  The current batch has been fully iterated and the cursor ID is zero (i.e. a  getMore cannot be
  issued). An error was encountered while iterating the cursor.The cursor reached its configured
  limit.
  
  By design, it is not possible to always determine whether a cursor has additional results. The
  cases where a cursor may have more data available is as follows:  There are additional documents
  in the current batch, which are buffered on the client side. Iterating will fetch a document from
  the local buffer.  There are no additional documents in the current batch (i.e. local buffer), but
  the cursor ID is non-zero. Iterating will request more documents from the server via a getMore
  operation, which may or may not return additional results and/or indicate that the cursor has been
  closed on the server by returning zero for its ID.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if there are definitely no additional results available on the cursor, and
        <info>false</info> otherwise.

<comment>See Also:</comment>
   * Tailable Cursors in the MongoDB manual
   * cursor.isExhausted() in the MongoDB manual


id: MongoDB\Driver\Cursor::key
type: function
doc:
<comment>Description:</comment>
  Returns the current result's index within the cursor

<comment>Return:</comment>
  <info>int</info>  The current result's numeric index within the cursor.

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


id: MongoDB\Driver\Cursor::next
type: function
doc:
<comment>Description:</comment>
  Advances the cursor to the next result

<comment>Return:</comment>
  <info>void</info>  Moves the current position to the next element in the cursor.

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


id: MongoDB\Driver\Cursor::rewind
type: function
doc:
<comment>Description:</comment>
  Rewind the cursor to the first result
  
  If the cursor has advanced beyond its first position, it can no longer be rewound.

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

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


id: MongoDB\Driver\Cursor::setTypeMap
type: function
doc:
<comment>Description:</comment>
  Sets a type map to use for BSON unserialization
  
  Sets the type map configuration to use when unserializing the BSON results into PHP values.

<comment>Param:</comment>
  <info></info>  <strong>$typeMap</strong>  Type map configuration.

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

<comment>See Also:</comment>
   * 


id: MongoDB\Driver\Cursor::toArray
type: function
doc:
<comment>Description:</comment>
  Returns an array containing all results for this cursor
  
  Iterates the cursor and returns its results in an array. <strong>MongoDB\Driver\Cursor::setTypeMap()</strong> may
  be used to control how documents are unserialized into PHP values.

<comment>Return:</comment>
  <info>array</info>  Returns an <info>array</info> containing all results for this cursor.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Cursor::setTypeMap()</strong>


id: MongoDB\Driver\Cursor::valid
type: function
doc:
<comment>Description:</comment>
  Checks if the current position in the cursor is valid

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

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


id: MongoDB\Driver\CursorId
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\CursorID</class> class is a value object that represents a cursor ID. Instances of this
  class are returned by <strong>MongoDB\Driver\Cursor::getId()</strong>.


id: MongoDB\Driver\CursorId::__construct
type: function
doc:
<comment>Description:</comment>
  Create a new CursorId (not used)
  
  <class>MongoDB\Driver\CursorId</class> objects are returned from <strong>MongoDB\Driver\Cursor::getId()</strong> and cannot be
  constructed directly.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Cursor::getId()</strong>


id: MongoDB\Driver\CursorId::__toString
type: function
doc:
<comment>Description:</comment>
  String representation of the cursor ID
  
  Returns the <info>string</info> representation of the cursor ID.

<comment>Return:</comment>
  <info>string</info>  Returns the <info>string</info> representation of the cursor ID.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Cursor::getId()</strong>


id: MongoDB\Driver\CursorId::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize a CursorId

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\Driver\CursorId</class>.

<comment>See Also:</comment>
   * MongoDB\Driver\CursorId::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\Driver\CursorId::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize a CursorId

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\Driver\CursorId</class>.

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

<comment>See Also:</comment>
   * MongoDB\Driver\CursorId::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\Driver\CursorInterface
type: class
doc:
<comment>Description:</comment>
  This interface is implemented by <class>MongoDB\Driver\Cursor</class> to be used as a parameter, return, or
  property type in userland classes.


id: MongoDB\Driver\CursorInterface::getId
type: function
doc:
<comment>Description:</comment>
  Returns the ID for this cursor
  
  Returns the <class>MongoDB\Driver\CursorId</class> associated with this cursor. A cursor ID uniquely identifies
  the cursor on the server.

<comment>Return:</comment>
  <info>MongoDB\Driver\CursorId</info>  Returns the <class>MongoDB\Driver\CursorId</class> for this cursor.

<comment>See Also:</comment>
   * MongoDB\Driver\Cursor::getId
   * <class>MongoDB\Driver\CursorId</class>
   * <strong>MongoDB\Driver\CursorId::__toString()</strong>


id: MongoDB\Driver\CursorInterface::getServer
type: function
doc:
<comment>Description:</comment>
  Returns the server associated with this cursor
  
  Returns the <class>MongoDB\Driver\Server</class> associated with this cursor. This is the server that executed
  the <class>MongoDB\Driver\Query</class> or <class>MongoDB\Driver\Command</class>.

<comment>Return:</comment>
  <info>MongoDB\Driver\Server</info>  Returns the <class>MongoDB\Driver\Server</class> associated with this cursor.

<comment>See Also:</comment>
   * MongoDB\Driver\Cursor::getServer
   * <class>MongoDB\Driver\Server</class>


id: MongoDB\Driver\CursorInterface::isDead
type: function
doc:
<comment>Description:</comment>
  Checks if the cursor may have additional results
  
  Checks whether the cursor may have additional results available to read. A cursor is initially
  "alive" but may become "dead" for any of the following reasons: Advancing a non-tailable cursor
  did not return a documentThe cursor encountered an errorThe cursor read its last batch to
  completionThe cursor reached its configured limit This is primarily useful with tailable cursors.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if additional results are not available, and <info>false</info> otherwise.

<comment>See Also:</comment>
   * MongoDB\Driver\Cursor::isDead


id: MongoDB\Driver\CursorInterface::setTypeMap
type: function
doc:
<comment>Description:</comment>
  Sets a type map to use for BSON unserialization
  
  Sets the type map configuration to use when unserializing the BSON results into PHP values.

<comment>Param:</comment>
  <info></info>  <strong>$typeMap</strong>  Type map configuration.

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

<comment>See Also:</comment>
   * MongoDB\Driver\Cursor::setTypeMap
   * 


id: MongoDB\Driver\CursorInterface::toArray
type: function
doc:
<comment>Description:</comment>
  Returns an array containing all results for this cursor
  
  Iterates the cursor and returns its results in an array.
  <strong>MongoDB\Driver\CursorInterface::setTypeMap()</strong> may be used to control how documents are unserialized
  into PHP values.

<comment>Return:</comment>
  <info>array</info>  Returns an <info>array</info> containing all results for this cursor.

<comment>See Also:</comment>
   * MongoDB\Driver\Cursor::toArray
   * <strong>MongoDB\Driver\CursorInterface::setTypeMap()</strong>


id: MongoDB\Driver\Exception\CommandException::getResultDocument
type: function
doc:
<comment>Description:</comment>
  Returns the result document for the failed command
  
  Returns the result document for the failed command.

<comment>Return:</comment>
  <info>object</info>  The result document for the failed command.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Manager::executeCommand()</strong>


id: MongoDB\Driver\Exception\ConnectionException
type: class
doc:
<comment>Description:</comment>
  Base class for exceptions thrown when the driver fails to establish a database connection.


id: MongoDB\Driver\Exception\ConnectionTimeoutException
type: class
doc:
<comment>Description:</comment>
  Thrown when the driver fails to establish a database connection within a specified time limit
  (connectTimeoutMS) or server selection fails (serverSelectionTimeoutMS).


id: MongoDB\Driver\Exception\Exception
type: class
doc:
<comment>Description:</comment>
  Common interface for all driver exceptions. This may be used to catch only exceptions originating
  from the driver itself.


id: MongoDB\Driver\Exception\ExecutionTimeoutException
type: class
doc:
<comment>Description:</comment>
  Thrown when a query or command fails to complete within a specified time limit (e.g. maxTimeMS).


id: MongoDB\Driver\Exception\InvalidArgumentException
type: class
doc:
<comment>Description:</comment>
  Thrown when a driver method is given invalid arguments (e.g. invalid option types).


id: MongoDB\Driver\Exception\LogicException
type: class
doc:
<comment>Description:</comment>
  Thrown when the driver is incorrectly used (e.g. rewinding a cursor).


id: MongoDB\Driver\Exception\RuntimeException
type: class
doc:
<comment>Description:</comment>
  Thrown when the driver encounters a runtime error (e.g. internal error from libmongoc).


id: MongoDB\Driver\Exception\RuntimeException::hasErrorLabel
type: function
doc:
<comment>Description:</comment>
  Returns whether an error label is associated with an exception
  
  Returns whether the <strong>$errorLabel</strong> has been set for this exception. Error labels are set by either
  the server or the driver to indicated specific situations on which you might want to decide on how
  you want to handle a specific exception. A common situation might be to find out whether you can
  safely retry a transaction that failed due to a transient error (like a networking issue, or a
  transaction conflict). Examples of error labels are <return>TransientTransactionError</return> and
  <return>UnknownTransactionCommitResult</return>.

<comment>Param:</comment>
  <info>string</info>  <strong>$errorLabel</strong>  The name of the <return>errorLabel</return> to test for.

<comment>Return:</comment>
  <info>bool</info>  Whether the given <return>errorLabel</return> is associated with this exception.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Session::commitTransaction()</strong>
   * MongoDB documentation on transactions


id: MongoDB\Driver\Exception\SSLConnectionException
type: class
doc:
<comment>Description:</comment>
  Thrown when the driver fails to establish an SSL connection with the server.


id: MongoDB\Driver\Exception\ServerException
type: class
doc:
<comment>Description:</comment>
  Base class for exceptions thrown by the server. The code of this exception and its subclasses will
  correspond to the original error code from the server.


id: MongoDB\Driver\Exception\UnexpectedValueException
type: class
doc:
<comment>Description:</comment>
  Thrown when the driver encounters an unexpected value (e.g. during BSON serialization or
  deserialization).


id: MongoDB\Driver\Exception\WriteException
type: class
doc:
<comment>Description:</comment>
  Base class for exceptions thrown by a failed write operation. The exception encapsulates a
  <class>MongoDB\Driver\WriteResult</class> object.


id: MongoDB\Driver\Exception\WriteException::getWriteResult
type: function
doc:
<comment>Description:</comment>
  Returns the WriteResult for the failed write operation
  
  Returns the <class>MongoDB\Driver\WriteResult</class> for the failed write operation. The
  <strong>MongoDB\Driver\WriteResult::getWriteErrors()</strong> and
  <strong>MongoDB\Driver\WriteResult::getWriteConcernError()</strong> methods may be used to get more details about
  the failure.

<comment>Return:</comment>
  <info>MongoDB\Driver\WriteResult</info>  The <class>MongoDB\Driver\WriteResult</class> for the failed write operation.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\WriteResult</class>
   * <strong>MongoDB\Driver\Manager::executeBulkWrite()</strong>


id: MongoDB\Driver\Manager
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\Manager</class> is the main entry point to the extension. It is responsible for
  maintaining connections to MongoDB (be it standalone server, replica set, or sharded cluster).
  
  No connection to MongoDB is made upon instantiating the Manager. This means the
  <class>MongoDB\Driver\Manager</class> can always be constructed, even though one or more MongoDB servers are
  down.
  
  Any write or query can throw connection exceptions as connections are created lazily. A MongoDB
  server may also become unavailable during the life time of the script. It is therefore important
  that all actions on the Manager to be wrapped in try/catch statements.


id: MongoDB\Driver\Manager::__construct
type: function
doc:
<comment>Description:</comment>
  Create new MongoDB Manager
  
  Constructs a new <class>MongoDB\Driver\Manager</class> object with the specified options.
  
  Per the Server Discovery and Monitoring Specification, this constructor performs no I/O.
  Connections will be initialized on demand, when the first operation is executed.
  
  When specifying any SSL or TLS URI options via the connection string or <strong>$uriOptions</strong> parameter, the
  driver will implicitly enable TLS for its connections. To avoid this, either explicitly disable
  the <return>tls</return> option or don't specify any TLS options.
  
  On Unix platforms, the MongoDB driver is sensitive to scripts that use the fork() system call
  without also calling exec(). Users are advised not to re-use <class>MongoDB\Driver\Manager</class> instances in a
  forked child process.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$uri</strong>            A mongodb:// connection URI: 
                               
                               For details on supported URI options, see Connection String Options
                               in the MongoDB manual. Connection pool options are not supported, as
                               the PHP driver does not implement connection pools.
                               
                               The <strong>$uri</strong> is a URL, hence any special characters in its components
                               need to be URL encoded according to RFC 3986. This is particularly
                               relevant to the username and password, which can often include
                               special characters such as <return>@</return>, <return>:</return>, or <return>%</return>. When connecting via a Unix
                               domain socket, the socket path may contain special characters such as
                               slashes and must be encoded. The <strong>rawurlencode()</strong> function may be used
                               to encode constituent parts of the URI.
                               
                               The <return>defaultAuthDb</return> component may be used to specify the database name
                               associated with the user's credentials; however the <return>authSource</return> URI
                               option will take priority if specified. If neither <return>defaultAuthDb</return> nor
                               <return>authSource</return> are specified, the <return>admin</return> database will be used by default.
                               The <return>defaultAuthDb</return> component has no effect in the absence of user
                               credentials.
  <info>array|null</info>   <strong>$uriOptions</strong>     Additional connection string options, which will overwrite any
                               options with the same name in the <strong>$uri</strong> parameter.
                               
                               uriOptionsOptionTypeDescriptionappname<info>string</info> MongoDB 3.4+ has the
                               ability to annotate connections with metadata provided by the
                               connecting client. This metadata is included in the server's logs
                               upon establishing a connection and also recorded in slow query logs
                               when database profiling is enabled.  This option may be used to
                               specify an application name, which will be included in the metadata.
                               The value cannot exceed 128 characters in length. authMechanism<info>string</info>
                               The authentication mechanism that MongoDB will use to authenticate
                               the connection. For additional details and a list of supported
                               values, see Authentication Options in the MongoDB manual.
                               authMechanismProperties<info>array</info> Properties for the selected
                               authentication mechanism. For additional details and a list of
                               supported properties, see the Driver Authentication Specification.
                               When not specified in the URI string, this option is expressed as an
                               array of key/value pairs. The keys and values in this array should be
                               strings. authSource<info>string</info> The database name associated with the
                               user's credentials. Defaults to the database component of the
                               connection URI, or the <return>admin</return> database if both are unspecified.  For
                               authentication mechanisms that delegate credential storage to other
                               services (e.g. GSSAPI), this should be <return>"$external"</return>.
                               canonicalizeHostname<info>bool</info> If <info>true</info>, the driver will resolve the real
                               hostname for the server IP address before authenticating via SASL.
                               Some underlying GSSAPI layers already do this, but the functionality
                               may be disabled in their config (e.g. <return>krb.conf</return>). Defaults to <info>false</info>.
                               This option is a deprecated alias for the <return>"CANONICALIZE_HOST_NAME"</return>
                               property of the <return>"authMechanismProperties"</return> URI option.
                               compressors<info>string</info> A prioritized, comma-delimited list of compressors
                               that the client wants to use. Messages are only compressed if the
                               client and server share any compressors in common, and the compressor
                               used in each direction will depend on the individual configuration of
                               the server or driver. See the Driver Compression Specification for
                               more information. connectTimeoutMS<info>int</info> The time in milliseconds to
                               attempt a connection before timing out. Defaults to 10,000
                               milliseconds. directConnection<info>bool</info> This option can be used to control
                               replica set discovery behavior when only a single host is provided in
                               the connection string. By default, providing a single member in the
                               connection string will establish a direct connection or discover
                               additional members depending on whether the <return>"replicaSet"</return> URI option
                               is omitted or present, respectively. Specify <info>false</info> to force discovery
                               to occur (if <return>"replicaSet"</return> is omitted) or specify <info>true</info> to force a
                               direct connection (if <return>"replicaSet"</return> is present).
                               gssapiServiceName<info>string</info> Set the Kerberos service name when connecting
                               to Kerberized MongoDB instances. This value must match the service
                               name set on MongoDB instances (i.e. saslServiceName server
                               parameter). Defaults to <return>"mongodb"</return>.  This option is a deprecated alias
                               for the <return>"SERVICE_NAME"</return> property of the <return>"authMechanismProperties"</return> URI
                               option. heartbeatFrequencyMS<info>int</info> Specifies the interval in
                               milliseconds between the driver's checks of the MongoDB topology,
                               counted from the end of the previous check until the beginning of the
                               next one. Defaults to 60,000 milliseconds.  Per the Server Discovery
                               and Monitoring Specification, this value cannot be less than 500
                               milliseconds. journal<info>bool</info> Corresponds to the default write concern's
                               <strong>$journal</strong> parameter. If <info>true</info>, writes will require acknowledgement from
                               MongoDB that the operation has been written to the journal. For
                               details, see <class>MongoDB\Driver\WriteConcern</class>. loadBalanced<info>bool</info> Specifies
                               whether the driver is connecting to a MongoDB cluster through a load
                               balancer. If <info>true</info>, the driver may only connect to a single host
                               (specified by either the connection string or SRV lookup), the
                               <return>"directConnection"</return> URI option cannot be <info>true</info>, and the <return>"replicaSet"</return>
                               URI option must be omitted. Defaults to <info>false</info>. localThresholdMS<info>int</info>
                               The size in milliseconds of the latency window for selecting among
                               multiple suitable MongoDB instances while resolving a read
                               preference. Defaults to 15 milliseconds. maxStalenessSeconds<info>int</info>
                               Corresponds to the read preference's <return>"maxStalenessSeconds"</return>.
                               Specifies, in seconds, how stale a secondary can be before the client
                               stops using it for read operations. By default, there is no maximum
                               staleness and clients will not consider a secondary’s lag when
                               choosing where to direct a read operation. For details, see
                               <class>MongoDB\Driver\ReadPreference</class>.  If specified, the max staleness must
                               be a signed 32-bit integer greater than or equal to
                               <info>MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS</info> (i.e.
                               90 seconds). password<info>string</info> The password for the user being
                               authenticated. This option is useful if the password contains special
                               characters, which would otherwise need to be URL encoded for the
                               connection URI. readConcernLevel<info>string</info> Corresponds to the read
                               concern's <strong>$level</strong> parameter. Specifies the level of read isolation.
                               For details, see <class>MongoDB\Driver\ReadConcern</class>. readPreference<info>string</info>
                               Corresponds to the read preference's <strong>$mode</strong> parameter. Defaults to
                               <return>"primary"</return>. For details, see <class>MongoDB\Driver\ReadPreference</class>.
                               readPreferenceTags<info>array</info> Corresponds to the read preference's <strong>$tagSets</strong>
                               parameter. Tag sets allow you to target read operations to specific
                               members of a replica set. For details, see
                               <class>MongoDB\Driver\ReadPreference</class>.  When not specified in the URI string,
                               this option is expressed as an array consistent with the format
                               expected by <strong>MongoDB\Driver\ReadPreference::__construct()</strong>.
                               replicaSet<info>string</info> Specifies the name of the replica set.
                               retryReads<info>bool</info> Specifies whether or not the driver should
                               automatically retry certain read operations that fail due to
                               transient network errors or replica set elections. This functionality
                               requires MongoDB 3.6+. Defaults to <info>true</info>.  See the Retryable Reads
                               Specification for more information. retryWrites<info>bool</info> Specifies whether
                               or not the driver should automatically retry certain write operations
                               that fail due to transient network errors or replica set elections.
                               This functionality requires MongoDB 3.6+. Defaults to <info>true</info>.  See
                               Retryable Writes in the MongoDB manual for more information. safe<info>bool</info>
                               If <info>true</info>, specifies <return>1</return> for the default write concern's <strong>$w</strong> parameter. If
                               <info>false</info>, <return>0</return> is specified. For details, see <class>MongoDB\Driver\WriteConcern</class>.
                               This option is deprecated and should not be used.
                               serverSelectionTimeoutMS<info>int</info> Specifies how long in milliseconds to
                               block for server selection before throwing an exception. Defaults to
                               30,000 milliseconds. serverSelectionTryOnce<info>bool</info> When <info>true</info>, instructs
                               the driver to scan the MongoDB deployment exactly once after server
                               selection fails and then either select a server or raise an error.
                               When <info>false</info>, the driver blocks and searches for a server up to the
                               <return>"serverSelectionTimeoutMS"</return> value. Defaults to <info>true</info>.
                               socketCheckIntervalMS<info>int</info> If a socket has not been used recently, the
                               driver must check it via a <return>hello</return> command before using it for any
                               operation. Defaults to 5,000 milliseconds. socketTimeoutMS<info>int</info> The
                               time in milliseconds to attempt a send or receive on a socket before
                               timing out. Defaults to 300,000 milliseconds (i.e. five minutes).
                               srvMaxHosts<info>int</info> The maximum number of SRV results to randomly select
                               when initially populating the seedlist or, during SRV polling, adding
                               new hosts to the topology. Defaults to <return>0</return> (i.e. no maximum).
                               srvServiceName<info>string</info> The service name to use for SRV lookup in
                               initial DNS seedlist discovery and SRV polling. Defaults to
                               <return>"mongodb"</return>. ssl<info>bool</info> Initiates the connection with TLS/SSL if <info>true</info>.
                               Defaults to <info>false</info>.  This option is a deprecated alias for the <return>"tls"</return>
                               URI option. tls<info>bool</info> Initiates the connection with TLS/SSL if <info>true</info>.
                               Defaults to <info>false</info>. tlsAllowInvalidCertificates<info>bool</info> Specifies whether
                               or not the driver should error when the server's TLS certificate is
                               invalid. Defaults to <info>false</info>.  Disabling certificate validation creates
                               a vulnerability. tlsAllowInvalidHostnames<info>bool</info> Specifies whether or
                               not the driver should error when there is a mismatch between the
                               server's hostname and the hostname specified by the TLS certificate.
                               Defaults to <info>false</info>.  Disabling certificate validation creates a
                               vulnerability. Allowing invalid hostnames may expose the driver to a
                               man-in-the-middle attack. tlsCAFile<info>string</info> Path to file with either a
                               single or bundle of certificate authorities to be considered trusted
                               when making a TLS connection. The system certificate store will be
                               used by default. tlsCertificateKeyFile<info>string</info> Path to the client
                               certificate file or the client private key file; in the case that
                               they both are needed, the files should be concatenated.
                               tlsCertificateKeyFilePassword<info>string</info> Password to decrypt the client
                               private key (i.e. <return>"tlsCertificateKeyFile"</return> URI option) to be used for
                               TLS connections. tlsDisableCertificateRevocationCheck<info>bool</info> If <info>true</info>,
                               the driver will not attempt to check certificate revocation status
                               (e.g. OCSP, CRL). Defaults to <info>false</info>. tlsDisableOCSPEndpointCheck<info>bool</info>
                               If <info>true</info>, the driver will not attempt to contact an OCSP responder
                               endpoint if needed (i.e. an OCSP response is not stapled). Defaults
                               to <info>false</info>. tlsInsecure<info>bool</info> Relax TLS constraints as much as possible.
                               Specifying <info>true</info> for this option has the same effect as specifying
                               <info>true</info> for both the <return>"tlsAllowInvalidCertificates"</return> and
                               <return>"tlsAllowInvalidHostnames"</return> URI options. Defaults to <info>false</info>.  Disabling
                               certificate validation creates a vulnerability. Allowing invalid
                               hostnames may expose the driver to a man-in-the-middle attack.
                               username<info>string</info> The username for the user being authenticated. This
                               option is useful if the username contains special characters, which
                               would otherwise need to be URL encoded for the connection URI.
                               w<info>int</info><info>string</info></info> Corresponds to the default write concern's <strong>$w</strong> parameter.
                               For details, see <class>MongoDB\Driver\WriteConcern</class>. wTimeoutMS<info>int</info><info>string</info></info>
                               Corresponds to the default write concern's <strong>$wtimeout</strong> parameter.
                               Specifies a time limit, in milliseconds, for the write concern. For
                               details, see <class>MongoDB\Driver\WriteConcern</class>.  If specified, <return>wTimeoutMS</return>
                               must be a signed 32-bit integer greater than or equal to zero.
                               zlibCompressionLevel<info>int</info> Specifies the compression level to use for
                               the zlib compressor. This option has no effect if <return>zlib</return> is not
                               included in the <return>"compressors"</return> URI option. See the Driver Compression
                               Specification for more information.
                               
                               MongoDB 3.4+ has the ability to annotate connections with metadata
                               provided by the connecting client. This metadata is included in the
                               server's logs upon establishing a connection and also recorded in
                               slow query logs when database profiling is enabled.
                               
                               This option may be used to specify an application name, which will be
                               included in the metadata. The value cannot exceed 128 characters in
                               length.
                               
                               The authentication mechanism that MongoDB will use to authenticate
                               the connection. For additional details and a list of supported
                               values, see Authentication Options in the MongoDB manual.
                               
                               Properties for the selected authentication mechanism. For additional
                               details and a list of supported properties, see the Driver
                               Authentication Specification.
                               
                               When not specified in the URI string, this option is expressed as an
                               array of key/value pairs. The keys and values in this array should be
                               strings.
                               
                               The database name associated with the user's credentials. Defaults to
                               the database component of the connection URI, or the <return>admin</return> database
                               if both are unspecified.
                               
                               For authentication mechanisms that delegate credential storage to
                               other services (e.g. GSSAPI), this should be <return>"$external"</return>.
                               
                               If <info>true</info>, the driver will resolve the real hostname for the server IP
                               address before authenticating via SASL. Some underlying GSSAPI layers
                               already do this, but the functionality may be disabled in their
                               config (e.g. <return>krb.conf</return>). Defaults to <info>false</info>.
                               
                               This option is a deprecated alias for the <return>"CANONICALIZE_HOST_NAME"</return>
                               property of the <return>"authMechanismProperties"</return> URI option.
                               
                               A prioritized, comma-delimited list of compressors that the client
                               wants to use. Messages are only compressed if the client and server
                               share any compressors in common, and the compressor used in each
                               direction will depend on the individual configuration of the server
                               or driver. See the Driver Compression Specification for more
                               information.
                               
                               The time in milliseconds to attempt a connection before timing out.
                               Defaults to 10,000 milliseconds.
                               
                               This option can be used to control replica set discovery behavior
                               when only a single host is provided in the connection string. By
                               default, providing a single member in the connection string will
                               establish a direct connection or discover additional members
                               depending on whether the <return>"replicaSet"</return> URI option is omitted or
                               present, respectively. Specify <info>false</info> to force discovery to occur (if
                               <return>"replicaSet"</return> is omitted) or specify <info>true</info> to force a direct connection
                               (if <return>"replicaSet"</return> is present).
                               
                               Set the Kerberos service name when connecting to Kerberized MongoDB
                               instances. This value must match the service name set on MongoDB
                               instances (i.e. saslServiceName server parameter). Defaults to
                               <return>"mongodb"</return>.
                               
                               This option is a deprecated alias for the <return>"SERVICE_NAME"</return> property of
                               the <return>"authMechanismProperties"</return> URI option.
                               
                               Specifies the interval in milliseconds between the driver's checks of
                               the MongoDB topology, counted from the end of the previous check
                               until the beginning of the next one. Defaults to 60,000 milliseconds.
                               
                               Per the Server Discovery and Monitoring Specification, this value
                               cannot be less than 500 milliseconds.
                               
                               Corresponds to the default write concern's <strong>$journal</strong> parameter. If
                               <info>true</info>, writes will require acknowledgement from MongoDB that the
                               operation has been written to the journal. For details, see
                               <class>MongoDB\Driver\WriteConcern</class>.
                               
                               Specifies whether the driver is connecting to a MongoDB cluster
                               through a load balancer. If <info>true</info>, the driver may only connect to a
                               single host (specified by either the connection string or SRV
                               lookup), the <return>"directConnection"</return> URI option cannot be <info>true</info>, and the
                               <return>"replicaSet"</return> URI option must be omitted. Defaults to <info>false</info>.
                               
                               The size in milliseconds of the latency window for selecting among
                               multiple suitable MongoDB instances while resolving a read
                               preference. Defaults to 15 milliseconds.
                               
                               Corresponds to the read preference's <return>"maxStalenessSeconds"</return>.
                               Specifies, in seconds, how stale a secondary can be before the client
                               stops using it for read operations. By default, there is no maximum
                               staleness and clients will not consider a secondary’s lag when
                               choosing where to direct a read operation. For details, see
                               <class>MongoDB\Driver\ReadPreference</class>.
                               
                               If specified, the max staleness must be a signed 32-bit integer
                               greater than or equal to
                               <info>MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS</info> (i.e.
                               90 seconds).
                               
                               Corresponds to the read preference's <strong>$mode</strong> parameter. Defaults to
                               <return>"primary"</return>. For details, see <class>MongoDB\Driver\ReadPreference</class>.
                               
                               Corresponds to the read preference's <strong>$tagSets</strong> parameter. Tag sets
                               allow you to target read operations to specific members of a replica
                               set. For details, see <class>MongoDB\Driver\ReadPreference</class>.
                               
                               When not specified in the URI string, this option is expressed as an
                               array consistent with the format expected by
                               <strong>MongoDB\Driver\ReadPreference::__construct()</strong>.
                               
                               Specifies the name of the replica set.
                               
                               Specifies whether or not the driver should automatically retry
                               certain read operations that fail due to transient network errors or
                               replica set elections. This functionality requires MongoDB 3.6+.
                               Defaults to <info>true</info>.
                               
                               See the Retryable Reads Specification for more information.
                               
                               Specifies whether or not the driver should automatically retry
                               certain write operations that fail due to transient network errors or
                               replica set elections. This functionality requires MongoDB 3.6+.
                               Defaults to <info>true</info>.
                               
                               See Retryable Writes in the MongoDB manual for more information.
                               
                               If <info>true</info>, specifies <return>1</return> for the default write concern's <strong>$w</strong> parameter. If
                               <info>false</info>, <return>0</return> is specified. For details, see <class>MongoDB\Driver\WriteConcern</class>.
                               
                               This option is deprecated and should not be used.
                               
                               Specifies how long in milliseconds to block for server selection
                               before throwing an exception. Defaults to 30,000 milliseconds.
                               
                               When <info>true</info>, instructs the driver to scan the MongoDB deployment
                               exactly once after server selection fails and then either select a
                               server or raise an error. When <info>false</info>, the driver blocks and searches
                               for a server up to the <return>"serverSelectionTimeoutMS"</return> value. Defaults to
                               <info>true</info>.
                               
                               If a socket has not been used recently, the driver must check it via
                               a <return>hello</return> command before using it for any operation. Defaults to 5,000
                               milliseconds.
                               
                               The time in milliseconds to attempt a send or receive on a socket
                               before timing out. Defaults to 300,000 milliseconds (i.e. five
                               minutes).
                               
                               The maximum number of SRV results to randomly select when initially
                               populating the seedlist or, during SRV polling, adding new hosts to
                               the topology. Defaults to <return>0</return> (i.e. no maximum).
                               
                               The service name to use for SRV lookup in initial DNS seedlist
                               discovery and SRV polling. Defaults to <return>"mongodb"</return>.
                               
                               Initiates the connection with TLS/SSL if <info>true</info>. Defaults to <info>false</info>.
                               
                               This option is a deprecated alias for the <return>"tls"</return> URI option.
                               
                               Initiates the connection with TLS/SSL if <info>true</info>. Defaults to <info>false</info>.
                               
                               Specifies whether or not the driver should error when the server's
                               TLS certificate is invalid. Defaults to <info>false</info>.
                               
                               Disabling certificate validation creates a vulnerability.
                               
                               Specifies whether or not the driver should error when there is a
                               mismatch between the server's hostname and the hostname specified by
                               the TLS certificate. Defaults to <info>false</info>.
                               
                               Disabling certificate validation creates a vulnerability. Allowing
                               invalid hostnames may expose the driver to a man-in-the-middle
                               attack.
                               
                               Path to file with either a single or bundle of certificate
                               authorities to be considered trusted when making a TLS connection.
                               The system certificate store will be used by default.
                               
                               Path to the client certificate file or the client private key file;
                               in the case that they both are needed, the files should be
                               concatenated.
                               
                               Password to decrypt the client private key (i.e.
                               <return>"tlsCertificateKeyFile"</return> URI option) to be used for TLS connections.
                               
                               If <info>true</info>, the driver will not attempt to check certificate revocation
                               status (e.g. OCSP, CRL). Defaults to <info>false</info>.
                               
                               If <info>true</info>, the driver will not attempt to contact an OCSP responder
                               endpoint if needed (i.e. an OCSP response is not stapled). Defaults
                               to <info>false</info>.
                               
                               Relax TLS constraints as much as possible. Specifying <info>true</info> for this
                               option has the same effect as specifying <info>true</info> for both the
                               <return>"tlsAllowInvalidCertificates"</return> and <return>"tlsAllowInvalidHostnames"</return> URI
                               options. Defaults to <info>false</info>.
                               
                               Disabling certificate validation creates a vulnerability. Allowing
                               invalid hostnames may expose the driver to a man-in-the-middle
                               attack.
                               
                               Corresponds to the default write concern's <strong>$w</strong> parameter. For details,
                               see <class>MongoDB\Driver\WriteConcern</class>.
                               
                               Corresponds to the default write concern's <strong>$wtimeout</strong> parameter.
                               Specifies a time limit, in milliseconds, for the write concern. For
                               details, see <class>MongoDB\Driver\WriteConcern</class>.
                               
                               If specified, <return>wTimeoutMS</return> must be a signed 32-bit integer greater than
                               or equal to zero.
                               
                               Specifies the compression level to use for the zlib compressor. This
                               option has no effect if <return>zlib</return> is not included in the <return>"compressors"</return> URI
                               option. See the Driver Compression Specification for more
                               information.
  <info>array|null</info>   <strong>$driverOptions</strong>  driverOptionsOptionTypeDescriptionallow_invalid_hostname<info>bool</info> Disables
                               hostname validation if <info>true</info>. Defaults to <info>false</info>.  Allowing invalid
                               hostnames may expose the driver to a man-in-the-middle attack.  This
                               option is a deprecated alias for the <return>"tlsAllowInvalidHostnames"</return> URI
                               option. autoEncryption<info>array</info> Provides options to enable automatic
                               client-side field level encryption.  Automatic encryption is an
                               enterprise-only feature that only applies to operations on a
                               collection. Automatic encryption is not supported for operations on a
                               database or view, and operations that are not bypassed will result in
                               error (see libmongocrypt: Auto Encryption Allow-List). To bypass
                               automatic encryption for all operations, set <return>bypassAutoEncryption</return> to
                               <info>true</info>.  Automatic encryption requires the authenticated user to have
                               the listCollections privilege action.  Explicit encryption/decryption
                               and automatic decryption is a community feature. The driver can still
                               automatically decrypt when <return>bypassAutoEncryption</return> is <info>true</info>.  The
                               following options are supported:
                                Options for automatic
                               encryptionOptionTypeDescriptionkeyVaultClient<class>MongoDB\Driver\Manager</class>The
                               Manager used to route data key queries to a separate MongoDB cluster.
                               By default, the current Manager and cluster is
                               used.keyVaultNamespace<info>string</info>A fully qualified namespace (e.g.
                               <return>"databaseName.collectionName"</return>) denoting the collection that contains
                               all data keys used for encryption and decryption. This option is
                               required.kmsProviders<info>array</info> A document containing the configuration
                               for one or more KMS providers, which are used to encrypt data keys.
                               Supported providers include <return>"aws"</return>, <return>"azure"</return>, <return>"gcp"</return>, <return>"kmip"</return>, and
                               <return>"local"</return> and at least one must be specified.  If an empty document is
                               specified for <return>"aws"</return>, <return>"azure"</return>, or <return>"gcp"</return>, the driver will attempt to
                               configure the provider using Automatic Credentials.  The format for
                               <return>"aws"</return> is as follows: , secretAccessKey: , sessionToken:
                               }
                               ]]> The format for <return>"azure"</return> is as follows: , clientId: , clientSecret:
                               , identityPlatformEndpoint:  // Defaults to
                               "login.microsoftonline.com"
                               }
                               ]]> The format for <return>"gcp"</return> is as follows: , privateKey: |, endpoint:
                               // Defaults to "oauth2.googleapis.com"
                               }
                               ]]> The format for <return>"kmip"</return> is as follows: 
                               }
                               ]]> The format for <return>"local"</return> is as follows: |
                               }
                               ]]>tlsOptions<info>array</info> A document containing the TLS configuration for
                               one or more KMS providers. Supported providers include <return>"aws"</return>,
                               <return>"azure"</return>, <return>"gcp"</return>, and <return>"kmip"</return>. All providers support the following
                               options: : { tlsCaFile: , tlsCertificateKeyFile: ,
                               tlsCertificateKeyFilePassword: , tlsDisableOCSPEndpointCheck:
                               }
                               ]]>schemaMap<info>array</info><info>object</info></info> Map of collection namespaces to a local JSON
                               schema. This is used to configure automatic encryption. See Automatic
                               Encryption Rules in the MongoDB manual for more information. It is an
                               error to specify a collection in both <return>schemaMap</return> and
                               <return>encryptedFieldsMap</return>.  Supplying a <return>schemaMap</return> provides more security
                               than relying on JSON schemas obtained from the server. It protects
                               against a malicious server advertising a false JSON schema, which
                               could trick the client into sending unencrypted data that should be
                               encrypted.  Schemas supplied in the <return>schemaMap</return> only apply to
                               configuring automatic encryption for client side encryption. Other
                               validation rules in the JSON schema will not be enforced by the
                               driver and will result in an error. bypassAutoEncryption<info>bool</info> If <info>true</info>,
                               <return>mongocryptd</return> will not be spawned automatically. This is used to
                               disable automatic encryption. Defaults to <info>false</info>.
                               bypassQueryAnalysis<info>bool</info> If <info>true</info>, automatic analysis of outgoing
                               commands will be disabled and <return>mongocryptd</return> will not be spawned
                               automatically. This enables the use case of explicit encryption for
                               querying indexed fields without requiring the enterprise licensed
                               <return>crypt_shared</return> library or <return>mongocryptd</return> process. Defaults to <info>false</info>.
                               encryptedFieldsMap<info>array</info><info>object</info></info> Map of collection namespaces to an
                               <return>encryptedFields</return> document. This is used to configure queryable
                               encryption. See Field Encryption and Queryability in the MongoDB
                               manual for more information. It is an error to specify a collection
                               in both <return>encryptedFieldsMap</return> and <return>schemaMap</return>.  Supplying an
                               <return>encryptedFieldsMap</return> provides more security than relying on an
                               <return>encryptedFields</return> obtained from the server. It protects against a
                               malicious server advertising a false <return>encryptedFields</return>.
                               extraOptions<info>array</info> The <return>extraOptions</return> relate to the <return>mongocryptd</return> process.
                               The following options are supported: <return>mongocryptdURI</return> (<info>string</info>): URI to
                               connect to an existing <return>mongocryptd</return> process. Defaults to
                               <return>"mongodb://localhost:27020"</return>.<return>mongocryptdBypassSpawn</return> (<info>bool</info>): If <info>true</info>,
                               prevent the driver from spawning <return>mongocryptd</return>. Defaults to
                               <info>false</info>.<return>mongocryptdSpawnPath</return> (<info>string</info>): Absolute path to search for
                               <return>mongocryptd</return> binary. Defaults to empty string and consults system
                               paths.<return>mongocryptdSpawnArgs</return> (<info>array</info>): Array of string arguments to pass
                               to <return>mongocryptd</return> when spawning. Defaults to
                               <return>["--idleShutdownTimeoutSecs=60"]</return>.<return>cryptSharedLibPath</return> (<info>string</info>):
                               Absolute path to <return>crypt_shared</return> shared library. Defaults to empty
                               string and consults system paths.<return>cryptSharedLibRequired</return> (<info>bool</info>): If
                               <info>true</info>, require the driver to load <return>crypt_shared</return>. Defaults to <info>false</info>. See
                               the Client-Side Encryption Specification for more information.
                               Automatic encryption is an enterprise only feature that only applies
                               to operations on a collection. Automatic encryption is not supported
                               for operations on a database or view, and operations that are not
                               bypassed will result in error. To bypass automatic encryption for all
                               operations, set <return>bypassAutoEncryption=true</return> in <return>autoEncryption</return>. For more
                               information on allowed operations, see the Client-Side Encryption
                               Specification. ca_dir<info>string</info> Path to a correctly hashed certificate
                               directory. The system certificate store will be used by default.
                               ca_file<info>string</info> Path to file with either a single or bundle of
                               certificate authorities to be considered trusted when making a TLS
                               connection. The system certificate store will be used by default.
                               This option is a deprecated alias for the <return>"tlsCAFile"</return> URI option.
                               context<info>resource</info>SSL context options to be used as fallbacks if a
                               driver option or its equivalent URI option, if any, is not specified.
                               Note that the driver does not consult the default stream context
                               (i.e. <strong>stream_context_get_default()</strong>). The following context options
                               are supported: SSL context option fallbacksDriver optionContext
                               option
                               (fallback)ca_dircapathca_filecafilepem_filelocal_certpem_pwdpassphraseweak_cert_validationallow_self_signed
                               This option is supported for backwards compatibility, but should be
                               considered deprecated. crl_file<info>string</info>Path to a certificate revocation
                               list file.disableClientPersistence<info>bool</info> If <info>true</info>, this Manager will use
                               a new libmongoc client, which will not be persisted or shared with
                               other Manager objects. When this Manager object is freed, its client
                               will be destroyed and any connections will be closed. Defaults to
                               <info>false</info>.  Disabling client persistence is not generally recommended.
                               driver<info>array</info> Allows custom drivers to append their own metadata to the
                               server handshake. By default, the driver submits its own name,
                               version, and platform (i.e. PHP version) in the handshake. Custom
                               drivers can specify strings for the <return>"name"</return>, <return>"version"</return>, and <return>"platform"</return>
                               keys of this array, which will be appended to the respective field(s)
                               in the handshake document.  Handshake information is limited to 512
                               bytes. The driver will truncate handshake data to fit within this
                               512-byte string. Drivers and ODMs are encouraged to keep their own
                               metadata concise. pem_file<info>string</info> Path to a PEM encoded certificate to
                               use for client authentication.  This option is a deprecated alias for
                               the <return>"tlsCertificateKeyFile"</return> URI option. pem_pwd<info>string</info> Passphrase for
                               the PEM encoded certificate (if applicable).  This option is a
                               deprecated alias for the <return>"tlsCertificateKeyFilePassword"</return> URI option.
                               serverApi<class>MongoDB\Driver\ServerApi</class> This option is used to declare a
                               server API version for the manager. If omitted, no API version is
                               declared. weak_cert_validation<info>bool</info> Disables certificate validation if
                               <info>true</info>. Defaults to <info>false</info>  This option is a deprecated alias for the
                               <return>"tlsAllowInvalidCertificates"</return> URI option.
                               
                               Disables hostname validation if <info>true</info>. Defaults to <info>false</info>.
                               
                               Allowing invalid hostnames may expose the driver to a
                               man-in-the-middle attack.
                               
                               This option is a deprecated alias for the <return>"tlsAllowInvalidHostnames"</return>
                               URI option.
                               
                               Provides options to enable automatic client-side field level
                               encryption.
                               
                               Automatic encryption is an enterprise-only feature that only applies
                               to operations on a collection. Automatic encryption is not supported
                               for operations on a database or view, and operations that are not
                               bypassed will result in error (see libmongocrypt: Auto Encryption
                               Allow-List). To bypass automatic encryption for all operations, set
                               <return>bypassAutoEncryption</return> to <info>true</info>.
                               
                               Automatic encryption requires the authenticated user to have the
                               listCollections privilege action.
                               
                               Explicit encryption/decryption and automatic decryption is a
                               community feature. The driver can still automatically decrypt when
                               <return>bypassAutoEncryption</return> is <info>true</info>.
                               
                               The following options are supported:
                                Options for automatic
                               encryptionOptionTypeDescriptionkeyVaultClient<class>MongoDB\Driver\Manager</class>The
                               Manager used to route data key queries to a separate MongoDB cluster.
                               By default, the current Manager and cluster is
                               used.keyVaultNamespace<info>string</info>A fully qualified namespace (e.g.
                               <return>"databaseName.collectionName"</return>) denoting the collection that contains
                               all data keys used for encryption and decryption. This option is
                               required.kmsProviders<info>array</info> A document containing the configuration
                               for one or more KMS providers, which are used to encrypt data keys.
                               Supported providers include <return>"aws"</return>, <return>"azure"</return>, <return>"gcp"</return>, <return>"kmip"</return>, and
                               <return>"local"</return> and at least one must be specified.  If an empty document is
                               specified for <return>"aws"</return>, <return>"azure"</return>, or <return>"gcp"</return>, the driver will attempt to
                               configure the provider using Automatic Credentials.  The format for
                               <return>"aws"</return> is as follows: , secretAccessKey: , sessionToken:
                               }
                               ]]> The format for <return>"azure"</return> is as follows: , clientId: , clientSecret:
                               , identityPlatformEndpoint:  // Defaults to
                               "login.microsoftonline.com"
                               }
                               ]]> The format for <return>"gcp"</return> is as follows: , privateKey: |, endpoint:
                               // Defaults to "oauth2.googleapis.com"
                               }
                               ]]> The format for <return>"kmip"</return> is as follows: 
                               }
                               ]]> The format for <return>"local"</return> is as follows: |
                               }
                               ]]>tlsOptions<info>array</info> A document containing the TLS configuration for
                               one or more KMS providers. Supported providers include <return>"aws"</return>,
                               <return>"azure"</return>, <return>"gcp"</return>, and <return>"kmip"</return>. All providers support the following
                               options: : { tlsCaFile: , tlsCertificateKeyFile: ,
                               tlsCertificateKeyFilePassword: , tlsDisableOCSPEndpointCheck:
                               }
                               ]]>schemaMap<info>array</info><info>object</info></info> Map of collection namespaces to a local JSON
                               schema. This is used to configure automatic encryption. See Automatic
                               Encryption Rules in the MongoDB manual for more information. It is an
                               error to specify a collection in both <return>schemaMap</return> and
                               <return>encryptedFieldsMap</return>.  Supplying a <return>schemaMap</return> provides more security
                               than relying on JSON schemas obtained from the server. It protects
                               against a malicious server advertising a false JSON schema, which
                               could trick the client into sending unencrypted data that should be
                               encrypted.  Schemas supplied in the <return>schemaMap</return> only apply to
                               configuring automatic encryption for client side encryption. Other
                               validation rules in the JSON schema will not be enforced by the
                               driver and will result in an error. bypassAutoEncryption<info>bool</info> If <info>true</info>,
                               <return>mongocryptd</return> will not be spawned automatically. This is used to
                               disable automatic encryption. Defaults to <info>false</info>.
                               bypassQueryAnalysis<info>bool</info> If <info>true</info>, automatic analysis of outgoing
                               commands will be disabled and <return>mongocryptd</return> will not be spawned
                               automatically. This enables the use case of explicit encryption for
                               querying indexed fields without requiring the enterprise licensed
                               <return>crypt_shared</return> library or <return>mongocryptd</return> process. Defaults to <info>false</info>.
                               encryptedFieldsMap<info>array</info><info>object</info></info> Map of collection namespaces to an
                               <return>encryptedFields</return> document. This is used to configure queryable
                               encryption. See Field Encryption and Queryability in the MongoDB
                               manual for more information. It is an error to specify a collection
                               in both <return>encryptedFieldsMap</return> and <return>schemaMap</return>.  Supplying an
                               <return>encryptedFieldsMap</return> provides more security than relying on an
                               <return>encryptedFields</return> obtained from the server. It protects against a
                               malicious server advertising a false <return>encryptedFields</return>.
                               extraOptions<info>array</info> The <return>extraOptions</return> relate to the <return>mongocryptd</return> process.
                               The following options are supported: <return>mongocryptdURI</return> (<info>string</info>): URI to
                               connect to an existing <return>mongocryptd</return> process. Defaults to
                               <return>"mongodb://localhost:27020"</return>.<return>mongocryptdBypassSpawn</return> (<info>bool</info>): If <info>true</info>,
                               prevent the driver from spawning <return>mongocryptd</return>. Defaults to
                               <info>false</info>.<return>mongocryptdSpawnPath</return> (<info>string</info>): Absolute path to search for
                               <return>mongocryptd</return> binary. Defaults to empty string and consults system
                               paths.<return>mongocryptdSpawnArgs</return> (<info>array</info>): Array of string arguments to pass
                               to <return>mongocryptd</return> when spawning. Defaults to
                               <return>["--idleShutdownTimeoutSecs=60"]</return>.<return>cryptSharedLibPath</return> (<info>string</info>):
                               Absolute path to <return>crypt_shared</return> shared library. Defaults to empty
                               string and consults system paths.<return>cryptSharedLibRequired</return> (<info>bool</info>): If
                               <info>true</info>, require the driver to load <return>crypt_shared</return>. Defaults to <info>false</info>. See
                               the Client-Side Encryption Specification for more information.
                               
                               A document containing the configuration for one or more KMS
                               providers, which are used to encrypt data keys. Supported providers
                               include <return>"aws"</return>, <return>"azure"</return>, <return>"gcp"</return>, <return>"kmip"</return>, and <return>"local"</return> and at least one
                               must be specified.
                               
                               If an empty document is specified for <return>"aws"</return>, <return>"azure"</return>, or <return>"gcp"</return>, the
                               driver will attempt to configure the provider using Automatic
                               Credentials.
                               
                               The format for <return>"aws"</return> is as follows:
                               
                               The format for <return>"azure"</return> is as follows:
                               
                               The format for <return>"gcp"</return> is as follows:
                               
                               The format for <return>"kmip"</return> is as follows:
                               
                               The format for <return>"local"</return> is as follows:
                               
                               A document containing the TLS configuration for one or more KMS
                               providers. Supported providers include <return>"aws"</return>, <return>"azure"</return>, <return>"gcp"</return>, and
                               <return>"kmip"</return>. All providers support the following options:
                               
                               Map of collection namespaces to a local JSON schema. This is used to
                               configure automatic encryption. See Automatic Encryption Rules in the
                               MongoDB manual for more information. It is an error to specify a
                               collection in both <return>schemaMap</return> and <return>encryptedFieldsMap</return>.
                               
                               Supplying a <return>schemaMap</return> provides more security than relying on JSON
                               schemas obtained from the server. It protects against a malicious
                               server advertising a false JSON schema, which could trick the client
                               into sending unencrypted data that should be encrypted.
                               
                               Schemas supplied in the <return>schemaMap</return> only apply to configuring automatic
                               encryption for client side encryption. Other validation rules in the
                               JSON schema will not be enforced by the driver and will result in an
                               error.
                               
                               If <info>true</info>, automatic analysis of outgoing commands will be disabled and
                               <return>mongocryptd</return> will not be spawned automatically. This enables the use
                               case of explicit encryption for querying indexed fields without
                               requiring the enterprise licensed <return>crypt_shared</return> library or <return>mongocryptd</return>
                               process. Defaults to <info>false</info>.
                               
                               Map of collection namespaces to an <return>encryptedFields</return> document. This is
                               used to configure queryable encryption. See Field Encryption and
                               Queryability in the MongoDB manual for more information. It is an
                               error to specify a collection in both <return>encryptedFieldsMap</return> and
                               <return>schemaMap</return>.
                               
                               Supplying an <return>encryptedFieldsMap</return> provides more security than relying
                               on an <return>encryptedFields</return> obtained from the server. It protects against a
                               malicious server advertising a false <return>encryptedFields</return>.
                               
                               The <return>extraOptions</return> relate to the <return>mongocryptd</return> process. The following
                               options are supported:
                               
                               See the Client-Side Encryption Specification for more information.
                               
                               Automatic encryption is an enterprise only feature that only applies
                               to operations on a collection. Automatic encryption is not supported
                               for operations on a database or view, and operations that are not
                               bypassed will result in error. To bypass automatic encryption for all
                               operations, set <return>bypassAutoEncryption=true</return> in <return>autoEncryption</return>. For more
                               information on allowed operations, see the Client-Side Encryption
                               Specification.
                               
                               Path to a correctly hashed certificate directory. The system
                               certificate store will be used by default.
                               
                               Path to file with either a single or bundle of certificate
                               authorities to be considered trusted when making a TLS connection.
                               The system certificate store will be used by default.
                               
                               This option is a deprecated alias for the <return>"tlsCAFile"</return> URI option.
                               
                               SSL context options to be used as fallbacks if a driver option or its
                               equivalent URI option, if any, is not specified. Note that the driver
                               does not consult the default stream context (i.e.
                               <strong>stream_context_get_default()</strong>). The following context options are
                               supported:
                               
                               This option is supported for backwards compatibility, but should be
                               considered deprecated.
                               
                               If <info>true</info>, this Manager will use a new libmongoc client, which will not
                               be persisted or shared with other Manager objects. When this Manager
                               object is freed, its client will be destroyed and any connections
                               will be closed. Defaults to <info>false</info>.
                               
                               Disabling client persistence is not generally recommended.
                               
                               Allows custom drivers to append their own metadata to the server
                               handshake. By default, the driver submits its own name, version, and
                               platform (i.e. PHP version) in the handshake. Custom drivers can
                               specify strings for the <return>"name"</return>, <return>"version"</return>, and <return>"platform"</return> keys of
                               this array, which will be appended to the respective field(s) in the
                               handshake document.
                               
                               Handshake information is limited to 512 bytes. The driver will
                               truncate handshake data to fit within this 512-byte string. Drivers
                               and ODMs are encouraged to keep their own metadata concise.
                               
                               Path to a PEM encoded certificate to use for client authentication.
                               
                               This option is a deprecated alias for the <return>"tlsCertificateKeyFile"</return> URI
                               option.
                               
                               Passphrase for the PEM encoded certificate (if applicable).
                               
                               This option is a deprecated alias for the
                               <return>"tlsCertificateKeyFilePassword"</return> URI option.
                               
                               This option is used to declare a server API version for the manager.
                               If omitted, no API version is declared.
                               
                               Disables certificate validation if <info>true</info>. Defaults to <info>false</info>
                               
                               This option is a deprecated alias for the
                               <return>"tlsAllowInvalidCertificates"</return> URI option.

<comment>See Also:</comment>
   * Connection handling and persistence
   * MongoDB Connection String Format


