# php_manual

id: ldap_delete
type: function
doc:
<comment>Description:</comment>
  Delete an entry from a directory
  
  Deletes a particular entry in LDAP directory.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>      通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>string</info>           <strong>$dn</strong>        The distinguished name of an LDAP entity.
  <info>array|null</info>       <strong>$controls</strong>  Array of LDAP Controls to send with the request.

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

<comment>See Also:</comment>
   * <strong>ldap_delete_ext()</strong>
   * <strong>ldap_add()</strong>


id: ldap_delete_ext
type: function
doc:
<comment>Description:</comment>
  Delete an entry from a directory
  
  Does the same thing as <strong>ldap_delete()</strong> but returns an <class>LDAP\Result</class> instance to be parsed with
  <strong>ldap_parse_result()</strong>.

<comment>Return:</comment>
  <info>LDAP\Result|false</info>  Returns an <class>LDAP\Result</class> instance, 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>ldap_delete()</strong>
   * <strong>ldap_parse_result()</strong>


id: ldap_dn2ufn
type: function
doc:
<comment>Description:</comment>
  Convert DN to User Friendly Naming format
  
  Turns the specified <strong>$dn</strong>, into a more user-friendly form, stripping off type names.

<comment>Param:</comment>
  <info>string</info>  <strong>$dn</strong>  The distinguished name of an LDAP entity.

<comment>Return:</comment>
  <info>string|false</info>  Returns the user friendly name,  或者在失败时返回 <info>false</info>.


id: ldap_err2str
type: function
doc:
<comment>Description:</comment>
  Convert LDAP error number into string error message
  
  Returns the string error message explaining the error number <strong>$errno</strong>. While LDAP errno numbers are
  standardized, different libraries return different or even localized textual error messages. Never
  check for a specific error message text, but always use an error number to check.

<comment>Param:</comment>
  <info>int</info>  <strong>$errno</strong>  The error number.

<comment>Return:</comment>
  <info>string</info>  Returns the error message, as a string.

<comment>See Also:</comment>
   * <strong>ldap_errno()</strong>
   * <strong>ldap_error()</strong>


id: ldap_errno
type: function
doc:
<comment>Description:</comment>
  Return the LDAP error number of the last LDAP command
  
  Returns the standardized error number returned by the last LDAP command. This number can be
  converted into a textual error message using <strong>ldap_err2str()</strong>.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>  通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。

<comment>Return:</comment>
  <info>int</info>  Return the LDAP error number of the last LDAP command for this link.

<comment>See Also:</comment>
   * <strong>ldap_err2str()</strong>
   * <strong>ldap_error()</strong>


id: ldap_error
type: function
doc:
<comment>Description:</comment>
  Return the LDAP error message of the last LDAP command
  
  Returns the string error message explaining the error generated by the last LDAP command for the
  given <strong>$ldap</strong>. While LDAP errno numbers are standardized, different libraries return different or
  even localized textual error messages. Never check for a specific error message text, but always
  use an error number to check.
  
  Unless you lower your warning level in your php.ini sufficiently or prefix your LDAP commands with
  <return>@</return> (at) characters to suppress warning output, the errors generated will also show up in your HTML
  output.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>  通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。

<comment>Return:</comment>
  <info>string</info>  Returns string error message.

<comment>See Also:</comment>
   * <strong>ldap_err2str()</strong>
   * <strong>ldap_errno()</strong>


id: ldap_escape
type: function
doc:
<comment>Description:</comment>
  Escape a string for use in an LDAP filter or DN
  
  Escapes <strong>$value</strong> for use in the context implied by <strong>$flags</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$value</strong>   The value to escape.
  <info>string</info>  <strong>$ignore</strong>  Characters to ignore when escaping.
  <info>int</info>     <strong>$flags</strong>   The context the escaped string will be used in: <info>LDAP_ESCAPE_FILTER</info> for filters to
                   be used with <strong>ldap_search()</strong>, or <info>LDAP_ESCAPE_DN</info> for DNs. If neither flag is passed,
                   all chars are escaped.

<comment>Return:</comment>
  <info>string</info>  Returns the escaped string.


id: ldap_exop
type: function
doc:
<comment>Description:</comment>
  Performs an extended operation
  
  Performs an extended operation on the specified <strong>$ldap</strong> with <strong>$request_oid</strong> the OID of the operation
  and <strong>$request_data</strong> the data.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>           通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>string</info>           <strong>$request_oid</strong>    The extended operation request OID. You may use one of
                                   <info>LDAP_EXOP_START_TLS</info>, <info>LDAP_EXOP_MODIFY_PASSWD</info>, <info>LDAP_EXOP_REFRESH</info>,
                                   <info>LDAP_EXOP_WHO_AM_I</info>, <info>LDAP_EXOP_TURN</info>, or a string with the OID of
                                   the operation you want to send.
  <info>string</info>           <strong>$request_data</strong>   The extended operation request data. May be NULL for some
                                   operations like <info>LDAP_EXOP_WHO_AM_I</info>, may also need to be BER
                                   encoded.
  <info>array</info>            <strong>$controls</strong>       Array of LDAP Controls to send with the request.
  <info>string</info>           <strong>$response_data</strong>  Will be filled with the extended operation response data if
                                   provided. If not provided you may use ldap_parse_exop on the
                                   result object later to get this data.
  <info>string</info>           <strong>$response_oid</strong>   Will be filled with the response OID if provided, usually equal
                                   to the request OID.

<comment>Return:</comment>
  <info>mixed</info>  When used with <strong>$response_data</strong>, returns <info>true</info> on success or <info>false</info> on error. When used without
         <strong>$response_data</strong>, returns a result identifier or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>ldap_parse_result()</strong>
   * <strong>ldap_parse_exop()</strong>
   * <strong>ldap_exop_whoami()</strong>
   * <strong>ldap_exop_refresh()</strong>
   * <strong>ldap_exop_passwd()</strong>


id: ldap_exop_passwd
type: function
doc:
<comment>Description:</comment>
  PASSWD extended operation helper
  
  Performs a PASSWD extended operation.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>          通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>string</info>           <strong>$user</strong>          dn of the user to change the password of.
  <info>string</info>           <strong>$old_password</strong>  The old password of this user. May be ommited depending of server
                                  configuration.
  <info>string</info>           <strong>$new_password</strong>  The new password for this user. May be omitted or empty to have a
                                  generated password.
  <info>array</info>            <strong>$controls</strong>      If provided, a password policy request control is send with the
                                  request and this is filled with an array of LDAP Controls returned
                                  with the request.

<comment>Return:</comment>
  <info>string|bool</info>  Returns the generated password if <strong>$new_password</strong> is empty or omitted. Otherwise
               returns <info>true</info> on success and <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>ldap_exop()</strong>
   * <strong>ldap_parse_exop()</strong>


id: ldap_exop_refresh
type: function
doc:
<comment>Description:</comment>
  Refresh extended operation helper
  
  Performs a Refresh extended operation and returns the data.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>  通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>string</info>           <strong>$dn</strong>    dn of the entry to refresh.
  <info>int</info>              <strong>$ttl</strong>   Time in seconds (between 1 and 31557600) that the client requests that the
                          entry exists in the directory before being automatically removed.

<comment>Return:</comment>
  <info>int|false</info>  From RFC: The responseTtl field is the time in seconds which the server chooses to have
             as the time-to-live field for that entry.  It must not be any smaller than that which
             the client requested, and it may be larger. However, to allow servers to maintain a
             relatively accurate directory, and to prevent clients from abusing the dynamic
             extensions, servers are permitted to shorten a client-requested time-to-live value,
             down to a minimum of 86400 seconds (one day).
              <info>false</info> will be returned on error.

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


id: ldap_exop_sync
type: function
doc:
<comment>Description:</comment>
  Performs an extended operation
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>           通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>string</info>           <strong>$request_oid</strong>    
  <info>string</info>           <strong>$request_data</strong>   
  <info>array</info>            <strong>$controls</strong>       
  <info>string</info>           <strong>$response_data</strong>  
  <info>string</info>           <strong>$response_oid</strong>   

<comment>Return:</comment>
  <info>LDAP\Result|bool</info>  

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


id: ldap_exop_whoami
type: function
doc:
<comment>Description:</comment>
  WHOAMI extended operation helper
  
  Performs a WHOAMI extended operation and returns the data.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>  通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。

<comment>Return:</comment>
  <info>string|false</info>  The data returned by the server, or <info>false</info> on error.

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


id: ldap_explode_dn
type: function
doc:
<comment>Description:</comment>
  Splits DN into its component parts
  
  Splits the DN returned by <strong>ldap_get_dn()</strong> and breaks it up into its component parts. Each part is
  known as Relative Distinguished Name, or RDN.

<comment>Param:</comment>
  <info>string</info>  <strong>$dn</strong>           The distinguished name of an LDAP entity.
  <info>int</info>     <strong>$with_attrib</strong>  Used to request if the RDNs are returned with only values or their
                        attributes as well.  To get RDNs with the attributes (i.e. in
                        attribute=value format) set <strong>$with_attrib</strong> to 0 and to get only values set it
                        to 1.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of all DN components,  或者在失败时返回 <info>false</info>. The first element in
               the array has <return>count</return> key and represents the number of returned values, next elements
               are numerically indexed DN components.


id: ldap_first_attribute
type: function
doc:
<comment>Description:</comment>
  Return first attribute
  
  Gets the first attribute in the given entry. Remaining attributes are retrieved by calling
  <strong>ldap_next_attribute()</strong> successively.
  
  Similar to reading entries, attributes are also read one by one from a particular entry.

<comment>Param:</comment>
  <info>LDAP\Connection</info>   <strong>$ldap</strong>   通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>LDAP\ResultEntry</info>  <strong>$entry</strong>  <class>LDAP\ResultEntry</class> 实例。

<comment>Return:</comment>
  <info>string|false</info>  Returns the first attribute in the entry on success and <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>ldap_next_attribute()</strong>
   * <strong>ldap_get_attributes()</strong>


id: ldap_first_entry
type: function
doc:
<comment>Description:</comment>
  Return first result id
  
  Returns the entry identifier for first entry in the result. This entry identifier is then supplied
  to <strong>ldap_next_entry()</strong> routine to get successive entries from the result.
  
  Entries in the LDAP result are read sequentially using the <strong>ldap_first_entry()</strong> and
  <strong>ldap_next_entry()</strong> functions.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>    通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>LDAP\Result</info>      <strong>$result</strong>  通过 <strong>ldap_list()</strong> 或者 <strong>ldap_search()</strong> 返回的 <class>LDAP\Result</class> 实例。

<comment>Return:</comment>
  <info>LDAP\ResultEntry|false</info>  Returns an <class>LDAP\ResultEntry</class> instance, 或者在失败时返回 <info>false</info>.

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


id: ldap_first_reference
type: function
doc:
<comment>Description:</comment>
  Return first reference
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>LDAP\ResultEntry|false</info>  


id: ldap_free_result
type: function
doc:
<comment>Description:</comment>
  Free result memory
  
  Frees up the memory allocated internally to store the result. All result memory will be
  automatically freed when the script terminates.
  
  Typically all the memory allocated for the LDAP result gets freed at the end of the script. In
  case the script is making successive searches which return large result sets, <strong>ldap_free_result()</strong>
  could be called to keep the runtime memory usage by the script low.

<comment>Param:</comment>
  <info>LDAP\Result</info>  <strong>$result</strong>  通过 <strong>ldap_list()</strong> 或者 <strong>ldap_search()</strong> 返回的 <class>LDAP\Result</class> 实例。

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


id: ldap_get_attributes
type: function
doc:
<comment>Description:</comment>
  Get attributes from a search result entry
  
  Reads attributes and values from an entry in the search result.
  
  Having located a specific entry in the directory, you can find out what information is held for
  that entry by using this call. You would use this call for an application which "browses"
  directory entries and/or where you do not know the structure of the directory entries. In many
  applications you will be searching for a specific attribute such as an email address or a surname,
  and won't care what other data is held.

<comment>Param:</comment>
  <info>LDAP\Connection</info>   <strong>$ldap</strong>   通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>LDAP\ResultEntry</info>  <strong>$entry</strong>  <class>LDAP\ResultEntry</class> 实例。

<comment>Return:</comment>
  <info>array</info>  Returns a complete entry information in a multi-dimensional array.

<comment>See Also:</comment>
   * <strong>ldap_first_attribute()</strong>
   * <strong>ldap_next_attribute()</strong>


id: ldap_get_dn
type: function
doc:
<comment>Description:</comment>
  Get the DN of a result entry
  
  Finds out the DN of an entry in the result.

<comment>Param:</comment>
  <info>LDAP\Connection</info>   <strong>$ldap</strong>   通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>LDAP\ResultEntry</info>  <strong>$entry</strong>  <class>LDAP\ResultEntry</class> 实例。

<comment>Return:</comment>
  <info>string|false</info>  Returns the DN of the result entry and <info>false</info> on error.


id: ldap_get_entries
type: function
doc:
<comment>Description:</comment>
  Get all result entries
  
  Reads multiple entries from the given result, and then reading the attributes and multiple values.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>    通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>LDAP\Result</info>      <strong>$result</strong>  通过 <strong>ldap_list()</strong> 或者 <strong>ldap_search()</strong> 返回的 <class>LDAP\Result</class> 实例。

<comment>Return:</comment>
  <info>array|false</info>  Returns a complete result information in a multi-dimensional array on success, 或者在
               失败时返回 <info>false</info>.
               
               The structure of the array is as follows. The attribute index is converted to
               lowercase. (Attributes are case-insensitive for directory servers, but not when used
               as array indices.)

<comment>See Also:</comment>
   * <strong>ldap_first_entry()</strong>
   * <strong>ldap_next_entry()</strong>


id: ldap_get_option
type: function
doc:
<comment>Description:</comment>
  Get the current value for given option
  
  Sets <strong>$value</strong> to the value of the specified option.

<comment>Param:</comment>
  <info>LDAP\Connection</info>   <strong>$ldap</strong>    通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>int</info>               <strong>$option</strong>  The parameter <strong>$option</strong> can be one of:
                             OptionTypesince<info>LDAP_OPT_DEREF</info><info>int</info><info>LDAP_OPT_SIZELIMIT</info><info>int</info><info>LDAP_OPT_TIMELIMIT</info><info>int</info><info>LDAP_OPT_NETWORK_TIMEOUT</info><info>int</info><info>LDAP_OPT_PROTOCOL_VERSION</info><info>int</info><info>LDAP_OPT_ERROR_NUMBER</info><info>int</info><info>LDAP_OPT_DIAGNOSTIC_MESSAGE</info><info>string</info><info>LDAP_OPT_REFERRALS</info><info>int</info><info>LDAP_OPT_RESTART</info><info>int</info><info>LDAP_OPT_HOST_NAME</info><info>string</info><info>LDAP_OPT_ERROR_STRING</info><info>string</info><info>LDAP_OPT_MATCHED_DN</info><info>string</info><info>LDAP_OPT_SERVER_CONTROLS</info><info>array</info><info>LDAP_OPT_CLIENT_CONTROLS</info><info>array</info><info>LDAP_OPT_X_KEEPALIVE_IDLE</info><info>int</info>7.1<info>LDAP_OPT_X_KEEPALIVE_PROBES</info><info>int</info>7.1<info>LDAP_OPT_X_KEEPALIVE_INTERVAL</info><info>int</info>7.1<info>LDAP_OPT_X_TLS_CACERTDIR</info><info>string</info>7.1<info>LDAP_OPT_X_TLS_CACERTFILE</info><info>string</info>7.1<info>LDAP_OPT_X_TLS_CERTFILE</info><info>string</info>7.1<info>LDAP_OPT_X_TLS_CIPHER_SUITE</info><info>string</info>7.1<info>LDAP_OPT_X_TLS_CRLCHECK</info><info>int</info>7.1<info>LDAP_OPT_X_TLS_CRL_NONE</info><info>int</info>7.1<info>LDAP_OPT_X_TLS_CRL_PEER</info><info>int</info>7.1<info>LDAP_OPT_X_TLS_CRL_ALL</info><info>int</info>7.1<info>LDAP_OPT_X_TLS_CRLFILE</info><info>string</info>7.1<info>LDAP_OPT_X_TLS_DHFILE</info><info>string</info>7.1<info>LDAP_OPT_X_TLS_KEYFILE</info><info>string</info>7.1<info>LDAP_OPT_X_TLS_PACKAGE</info><info>string</info>7.1<info>LDAP_OPT_X_TLS_PROTOCOL_MIN</info><info>int</info>7.1<info>LDAP_OPT_X_TLS_RANDOM_FILE</info><info>string</info>7.1<info>LDAP_OPT_X_TLS_REQUIRE_CERT</info><info>int</info>
  <info>array|string|int</info>  <strong>$value</strong>   This will be set to the option value.

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

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


id: ldap_get_values
type: function
doc:
<comment>Description:</comment>
  Get all values from a result entry
  
  Reads all the values of the attribute in the entry in the result.
  
  This call needs a <strong>$entry</strong>, so needs to be preceded by one of the ldap search calls and one of the
  calls to get an individual entry.
  
  You application will either be hard coded to look for certain attributes (such as "surname" or
  "mail") or you will have to use the <strong>ldap_get_attributes()</strong> call to work out what attributes exist
  for a given entry.

<comment>Param:</comment>
  <info>LDAP\Connection</info>   <strong>$ldap</strong>       通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>LDAP\ResultEntry</info>  <strong>$entry</strong>      <class>LDAP\ResultEntry</class> 实例。
  <info>string</info>            <strong>$attribute</strong>  

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of values for the attribute on success and <info>false</info> on error. The
               number of values can be found by indexing "count" in the resultant array. Individual
               values are accessed by integer index in the array.  The first index is 0.
               
               LDAP allows more than one entry for an attribute, so it can, for example, store a
               number of email addresses for one person's directory entry all labeled with the
               attribute "mail"  return_value["count"] = number of values for attribute
               return_value[0] = first value of attribute return_value[i] = ith value of attribute

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


id: ldap_get_values_len
type: function
doc:
<comment>Description:</comment>
  Get all binary values from a result entry
  
  Reads all the values of the attribute in the entry in the result.
  
  This function is used exactly like <strong>ldap_get_values()</strong> except that it handles binary data and not
  string data.

<comment>Param:</comment>
  <info>LDAP\Connection</info>   <strong>$ldap</strong>       通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>LDAP\ResultEntry</info>  <strong>$entry</strong>      <class>LDAP\ResultEntry</class> 实例。
  <info>string</info>            <strong>$attribute</strong>  

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of values for the attribute on success and <info>false</info> on error.
               Individual values are accessed by integer index in the array. The first index is 0.
               The number of values can be found by indexing "count" in the resultant array.

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


id: ldap_list
type: function
doc:
<comment>Description:</comment>
  Single-level search
  
  Performs the search for a specified <strong>$filter</strong> on the directory with the scope <info>LDAP_SCOPE_ONELEVEL</info>.
  
  <info>LDAP_SCOPE_ONELEVEL</info> means that the search should only return information that is at the level
  immediately below the <strong>$base</strong> given in the call. (Equivalent to typing "ls" and getting a list of
  files and folders in the current working directory.)
  
  It is also possible to perform parallel searches. In this case, the first argument should be an
  array of
  <class>LDAP\Connection</class> instances, rather than a single one.
  If the searches should not all use the same base DN and filter, an array of base DNs and/or an
  array of filters can be passed as arguments instead.
  These arrays must be of the same size as the <class>LDAP\Connection</class> instances array,
  since the first entries of the arrays are used for one search, the second entries are used for
  another, and so on.
  When doing parallel searches an array of <class>LDAP\Result</class> instances is returned, except in case of
  error, when the return value will be <info>false</info>.

<comment>Param:</comment>
  <info>LDAP\Connection|array</info>  <strong>$ldap</strong>             通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>array|string</info>           <strong>$base</strong>             The base DN for the directory.
  <info>array|string</info>           <strong>$filter</strong>           
  <info>array</info>                  <strong>$attributes</strong>       An array of the required attributes, e.g. array("mail",
                                           "sn", "cn"). Note that the "dn" is always returned
                                           irrespective of which attributes types are requested.
                                           
                                           Using this parameter is much more efficient than the
                                           default action (which is to return all attributes and
                                           their associated values). The use of this parameter
                                           should therefore be considered good practice.
  <info>int</info>                    <strong>$attributes_only</strong>  Should be set to 1 if only attribute types are wanted. If
                                           set to 0 both attributes types and attribute values are
                                           fetched which is the default behaviour.
  <info>int</info>                    <strong>$sizelimit</strong>        Enables you to limit the count of entries fetched.
                                           Setting this to 0 means no limit.
                                           
                                           This parameter can NOT override server-side preset
                                           sizelimit. You can set it lower though.
                                           
                                           Some directory server hosts will be configured to return
                                           no more than a preset number of entries. If this occurs,
                                           the server will indicate that it has only returned a
                                           partial results set. This also occurs if you use this
                                           parameter to limit the count of fetched entries.
  <info>int</info>                    <strong>$timelimit</strong>        Sets the number of seconds how long is spend on the
                                           search. Setting this to 0 means no limit.
                                           
                                           This parameter can NOT override server-side preset
                                           timelimit. You can set it lower though.
  <info>int</info>                    <strong>$deref</strong>            Specifies how aliases should be handled during the
                                           search. It can be one of the following: <info>LDAP_DEREF_NEVER</info>
                                           - (default) aliases are never dereferenced.
                                           <info>LDAP_DEREF_SEARCHING</info> - aliases should be dereferenced
                                           during the search but not when locating the base object
                                           of the search. <info>LDAP_DEREF_FINDING</info> - aliases should be
                                           dereferenced when locating the base object but not during
                                           the search. <info>LDAP_DEREF_ALWAYS</info> - aliases should be
                                           dereferenced always.
                                           
                                           <info>LDAP_DEREF_NEVER</info> - (default) aliases are never
                                           dereferenced.
                                           
                                           <info>LDAP_DEREF_SEARCHING</info> - aliases should be dereferenced
                                           during the search but not when locating the base object
                                           of the search.
                                           
                                           <info>LDAP_DEREF_FINDING</info> - aliases should be dereferenced when
                                           locating the base object but not during the search.
                                           
                                           <info>LDAP_DEREF_ALWAYS</info> - aliases should be dereferenced
                                           always.
  <info>array|null</info>             <strong>$controls</strong>         Array of LDAP Controls to send with the request.

<comment>Return:</comment>
  <info>LDAP\Result|array|false</info>  返回 <class>LDAP\Result</class> 实例、 <class>LDAP\Result</class> 实例数组 或者在失败时返回 <info>false</info>.

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


id: ldap_mod_add
type: function
doc:
<comment>Description:</comment>
  Add attribute values to current attributes
  
  Adds one or more attribute values to the specified <strong>$dn</strong>. To add a whole new object see <strong>ldap_add()</strong>
  function.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>      通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>string</info>           <strong>$dn</strong>        The distinguished name of an LDAP entity.
  <info>array</info>            <strong>$entry</strong>     An associative array listing the attirbute values to add. If an
                              attribute was not existing yet it will be added. If an attribute is
                              existing you can only add values to it if it supports multiple values.
  <info>array|null</info>       <strong>$controls</strong>  Array of LDAP Controls to send with the request.

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

<comment>See Also:</comment>
   * <strong>ldap_mod_add_ext()</strong>
   * <strong>ldap_mod_del()</strong>
   * <strong>ldap_mod_replace()</strong>
   * <strong>ldap_modify_batch()</strong>


id: ldap_mod_add_ext
type: function
doc:
<comment>Description:</comment>
  Add attribute values to current attributes
  
  Does the same thing as <strong>ldap_mod_add()</strong> but returns an <class>LDAP\Result</class> instance to be parsed with
  <strong>ldap_parse_result()</strong>.

<comment>Return:</comment>
  <info>LDAP\Result|false</info>  Returns an <class>LDAP\Result</class> instance, 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>ldap_mod_add()</strong>
   * <strong>ldap_parse_result()</strong>


id: ldap_mod_del
type: function
doc:
<comment>Description:</comment>
  Delete attribute values from current attributes
  
  Removes one or more attribute values from the specified <strong>$dn</strong>. Object deletions are done by the
  <strong>ldap_delete()</strong> function.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>      通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>string</info>           <strong>$dn</strong>        The distinguished name of an LDAP entity.
  <info>array</info>            <strong>$entry</strong>     
  <info>array|null</info>       <strong>$controls</strong>  Array of LDAP Controls to send with the request.

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

<comment>See Also:</comment>
   * <strong>ldap_mod_del_ext()</strong>
   * <strong>ldap_mod_add()</strong>
   * <strong>ldap_mod_replace()</strong>
   * <strong>ldap_modify_batch()</strong>


id: ldap_mod_del_ext
type: function
doc:
<comment>Description:</comment>
  Delete attribute values from current attributes
  
  Does the same thing as <strong>ldap_mod_del()</strong> but returns an <class>LDAP\Result</class> instance to be parsed with
  <strong>ldap_parse_result()</strong>.

<comment>Return:</comment>
  <info>LDAP\Result|false</info>  Returns an <class>LDAP\Result</class> instance, 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>ldap_mod_del()</strong>
   * <strong>ldap_parse_result()</strong>


id: ldap_mod_replace
type: function
doc:
<comment>Description:</comment>
  Replace attribute values with new ones
  
  Replaces one or more attributes from the specified <strong>$dn</strong>. It may also add or remove attributes.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>      通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>string</info>           <strong>$dn</strong>        The distinguished name of an LDAP entity.
  <info>array</info>            <strong>$entry</strong>     An associative array listing the attributes to replace. Sending an
                              empty array as value will remove the attribute, while sending an
                              attribute not existing yet on this entry will add it.
  <info>array|null</info>       <strong>$controls</strong>  Array of LDAP Controls to send with the request.

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

<comment>See Also:</comment>
   * <strong>ldap_mod_replace_ext()</strong>
   * <strong>ldap_mod_del()</strong>
   * <strong>ldap_mod_add()</strong>
   * <strong>ldap_modify_batch()</strong>


id: ldap_mod_replace_ext
type: function
doc:
<comment>Description:</comment>
  Replace attribute values with new ones
  
  Does the same thing as <strong>ldap_mod_replace()</strong> but returns an <class>LDAP\Result</class> instance to be parsed with
  <strong>ldap_parse_result()</strong>.

<comment>Return:</comment>
  <info>LDAP\Result|false</info>  Returns an <class>LDAP\Result</class> instance, 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>ldap_mod_replace()</strong>
   * <strong>ldap_parse_result()</strong>


id: ldap_modify
type: function
doc:
<comment>Description:</comment>
  别名 ldap_mod_replace
  
  此函数是该函数的别名： <strong>ldap_mod_replace()</strong>.

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


id: ldap_modify_batch
type: function
doc:
<comment>Description:</comment>
  Batch and execute modifications on an LDAP entry
  
  Modifies an existing entry in the LDAP directory. Allows detailed specification of the
  modifications to perform.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>                An LDAP resource, returned by <strong>ldap_connect()</strong>.
  <info>string</info>           <strong>$dn</strong>                  The distinguished name of an LDAP entity.
  <info>array</info>            <strong>$modifications_info</strong>  An array that specifies the modifications to make. Each
                                        entry in this array is an associative array with two or
                                        three keys: <return>attrib</return> maps to the name of the attribute to
                                        modify, <return>modtype</return> maps to the type of modification to perform,
                                        and (depending on the type of modification) <return>values</return> maps to
                                        an array of attribute values relevant to the modification.
                                        
                                        Possible values for <return>modtype</return> include: <info>LDAP_MODIFY_BATCH_ADD</info>
                                        Each value specified through <return>values</return> is added (as an
                                        additional value) to the attribute named by <return>attrib</return>.
                                        <info>LDAP_MODIFY_BATCH_REMOVE</info> Each value specified through <return>values</return>
                                        is removed from the attribute named by <return>attrib</return>. Any value of
                                        the attribute not contained in the <return>values</return> array will remain
                                        untouched. <info>LDAP_MODIFY_BATCH_REMOVE_ALL</info> All values are
                                        removed from the attribute named by <return>attrib</return>. A <return>values</return> entry
                                        must not be provided. <info>LDAP_MODIFY_BATCH_REPLACE</info> All current
                                        values of the attribute named by <return>attrib</return> are replaced with
                                        the values specified through <return>values</return>.
                                        
                                        Each value specified through <return>values</return> is added (as an
                                        additional value) to the attribute named by <return>attrib</return>.
                                        
                                        Each value specified through <return>values</return> is removed from the
                                        attribute named by <return>attrib</return>. Any value of the attribute not
                                        contained in the <return>values</return> array will remain untouched.
                                        
                                        All values are removed from the attribute named by <return>attrib</return>. A
                                        <return>values</return> entry must not be provided.
                                        
                                        All current values of the attribute named by <return>attrib</return> are
                                        replaced with the values specified through <return>values</return>.
                                        
                                        Note that any value for <return>attrib</return> must be a string, any value
                                        for <return>values</return> must be an array of strings, and any value for
                                        <return>modtype</return> must be one of the LDAP_MODIFY_BATCH_* constants
                                        listed above.
  <info>array|null</info>       <strong>$controls</strong>            Array of LDAP Controls to send with the request.

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


id: ldap_next_attribute
type: function
doc:
<comment>Description:</comment>
  Get the next attribute in result
  
  Retrieves the attributes in an entry. The first call to <strong>ldap_next_attribute()</strong> is made with the
  <strong>$entry</strong> returned from <strong>ldap_first_attribute()</strong>.

<comment>Param:</comment>
  <info>LDAP\Connection</info>   <strong>$ldap</strong>   通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>LDAP\ResultEntry</info>  <strong>$entry</strong>  <class>LDAP\ResultEntry</class> 实例。

<comment>Return:</comment>
  <info>string|false</info>  Returns the next attribute in an entry on success and <info>false</info> on error.

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


id: ldap_next_entry
type: function
doc:
<comment>Description:</comment>
  Get next result entry
  
  Retrieve the entries stored in the result. Successive calls to the <strong>ldap_next_entry()</strong> return
  entries one by one till there are no more entries. The first call to <strong>ldap_next_entry()</strong> is made
  after the call to <strong>ldap_first_entry()</strong> with the <strong>$entry</strong> as returned from the <strong>ldap_first_entry()</strong>.

<comment>Param:</comment>
  <info>LDAP\Connection</info>   <strong>$ldap</strong>   通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>LDAP\ResultEntry</info>  <strong>$entry</strong>  <class>LDAP\ResultEntry</class> 实例。

<comment>Return:</comment>
  <info>LDAP\ResultEntry|false</info>  Returns an <class>LDAP\ResultEntry</class> instance for the next entry in the result
                          whose entries are being read starting with <strong>ldap_first_entry()</strong>. If there
                          are no more entries in the result then it returns <info>false</info>.

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


id: ldap_next_reference
type: function
doc:
<comment>Description:</comment>
  Get next reference
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>LDAP\ResultEntry|false</info>  


id: ldap_parse_exop
type: function
doc:
<comment>Description:</comment>
  Parse result object from an LDAP extended operation
  
  Parse LDAP extended operation data from result object <strong>$result</strong>

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>           通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>LDAP\Result</info>      <strong>$result</strong>         通过 <strong>ldap_list()</strong> 或者 <strong>ldap_search()</strong> 返回的 <class>LDAP\Result</class> 实例。
  <info>string</info>           <strong>$response_data</strong>  Will be filled by the response data.
  <info>string</info>           <strong>$response_oid</strong>   Will be filled by the response OID.

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

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


id: ldap_parse_reference
type: function
doc:
<comment>Description:</comment>
  Extract information from reference entry
  
  本函数还未编写文档，仅有参数列表。

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


id: ldap_parse_result
type: function
doc:
<comment>Description:</comment>
  Extract information from result
  
  Parses an LDAP search result.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>           通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>LDAP\Result</info>      <strong>$result</strong>         通过 <strong>ldap_list()</strong> 或者 <strong>ldap_search()</strong> 返回的 <class>LDAP\Result</class> 实例。
  <info>int</info>              <strong>$error_code</strong>     A reference to a variable that will be set to the LDAP error code
                                   in the result, or <return>0</return> if no error occurred.
  <info>string</info>           <strong>$matched_dn</strong>     A reference to a variable that will be set to a matched DN if one
                                   was recognised within the request, otherwise it will be set to
                                   <info>null</info>.
  <info>string</info>           <strong>$error_message</strong>  A reference to a variable that will be set to the LDAP error
                                   message in the result, or an empty string if no error occurred.
  <info>array</info>            <strong>$referrals</strong>      A reference to a variable that will be set to an <info>array</info> set to all
                                   of the referral strings in the result, or an empty array if no
                                   referrals were returned.
  <info>array</info>            <strong>$controls</strong>       An <info>array</info> of LDAP Controls which have been sent with the response.

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


id: ldap_read
type: function
doc:
<comment>Description:</comment>
  Read an entry
  
  Performs the search for a specified <strong>$filter</strong> on the directory with the scope <info>LDAP_SCOPE_BASE</info>. So it
  is equivalent to reading an entry from the directory.
  
  It is also possible to perform parallel searches. In this case, the first argument should be an
  array of
  <class>LDAP\Connection</class> instances, rather than a single one.
  If the searches should not all use the same base DN and filter, an array of base DNs and/or an
  array of filters can be passed as arguments instead.
  These arrays must be of the same size as the <class>LDAP\Connection</class> instances array,
  since the first entries of the arrays are used for one search, the second entries are used for
  another, and so on.
  When doing parallel searches an array of <class>LDAP\Result</class> instances is returned, except in case of
  error, when the return value will be <info>false</info>.

<comment>Param:</comment>
  <info>LDAP\Connection|array</info>  <strong>$ldap</strong>             通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>array|string</info>           <strong>$base</strong>             The base DN for the directory.
  <info>array|string</info>           <strong>$filter</strong>           An empty filter is not allowed. If you want to retrieve
                                           absolutely all information for this entry, use a filter
                                           of <return>objectClass=*</return>. If you know which entry types are used
                                           on the directory server, you might use an appropriate
                                           filter such as <return>objectClass=inetOrgPerson</return>.
  <info>array</info>                  <strong>$attributes</strong>       An array of the required attributes, e.g. array("mail",
                                           "sn", "cn"). Note that the "dn" is always returned
                                           irrespective of which attributes types are requested.
                                           
                                           Using this parameter is much more efficient than the
                                           default action (which is to return all attributes and
                                           their associated values). The use of this parameter
                                           should therefore be considered good practice.
  <info>int</info>                    <strong>$attributes_only</strong>  Should be set to 1 if only attribute types are wanted. If
                                           set to 0 both attributes types and attribute values are
                                           fetched which is the default behaviour.
  <info>int</info>                    <strong>$sizelimit</strong>        Enables you to limit the count of entries fetched.
                                           Setting this to 0 means no limit.
                                           
                                           This parameter can NOT override server-side preset
                                           sizelimit. You can set it lower though.
                                           
                                           Some directory server hosts will be configured to return
                                           no more than a preset number of entries. If this occurs,
                                           the server will indicate that it has only returned a
                                           partial results set. This also occurs if you use this
                                           parameter to limit the count of fetched entries.
  <info>int</info>                    <strong>$timelimit</strong>        Sets the number of seconds how long is spend on the
                                           search. Setting this to 0 means no limit.
                                           
                                           This parameter can NOT override server-side preset
                                           timelimit. You can set it lower though.
  <info>int</info>                    <strong>$deref</strong>            Specifies how aliases should be handled during the
                                           search. It can be one of the following: <info>LDAP_DEREF_NEVER</info>
                                           - (default) aliases are never dereferenced.
                                           <info>LDAP_DEREF_SEARCHING</info> - aliases should be dereferenced
                                           during the search but not when locating the base object
                                           of the search. <info>LDAP_DEREF_FINDING</info> - aliases should be
                                           dereferenced when locating the base object but not during
                                           the search. <info>LDAP_DEREF_ALWAYS</info> - aliases should be
                                           dereferenced always.
                                           
                                           <info>LDAP_DEREF_NEVER</info> - (default) aliases are never
                                           dereferenced.
                                           
                                           <info>LDAP_DEREF_SEARCHING</info> - aliases should be dereferenced
                                           during the search but not when locating the base object
                                           of the search.
                                           
                                           <info>LDAP_DEREF_FINDING</info> - aliases should be dereferenced when
                                           locating the base object but not during the search.
                                           
                                           <info>LDAP_DEREF_ALWAYS</info> - aliases should be dereferenced
                                           always.
  <info>array|null</info>             <strong>$controls</strong>         Array of LDAP Controls to send with the request.

<comment>Return:</comment>
  <info>LDAP\Result|array|false</info>  返回 <class>LDAP\Result</class> 实例、 <class>LDAP\Result</class> 实例数组 或者在失败时返回 <info>false</info>.


id: ldap_rename
type: function
doc:
<comment>Description:</comment>
  Modify the name of an entry
  
  The entry specified by <strong>$dn</strong> is renamed/moved.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>            通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>string</info>           <strong>$dn</strong>              The distinguished name of an LDAP entity.
  <info>string</info>           <strong>$new_rdn</strong>         The new RDN.
  <info>string</info>           <strong>$new_parent</strong>      The new parent/superior entry.
  <info>bool</info>             <strong>$delete_old_rdn</strong>  If <info>true</info> the old RDN value(s) is removed, else the old RDN
                                    value(s) is retained as non-distinguished values of the entry.
  <info>array|null</info>       <strong>$controls</strong>        Array of LDAP Controls to send with the request.

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

<comment>See Also:</comment>
   * <strong>ldap_rename_ext()</strong>
   * <strong>ldap_modify()</strong>


id: ldap_rename_ext
type: function
doc:
<comment>Description:</comment>
  Modify the name of an entry
  
  Does the same thing as <strong>ldap_rename()</strong> but returns an <class>LDAP\Result</class> instance to be parsed with
  <strong>ldap_parse_result()</strong>.

<comment>Return:</comment>
  <info>LDAP\Result|false</info>  Returns an <class>LDAP\Result</class> instance, 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>ldap_rename()</strong>
   * <strong>ldap_parse_result()</strong>


id: ldap_sasl_bind
type: function
doc:
<comment>Description:</comment>
  Bind to LDAP directory using SASL
  
  本函数还未编写文档，仅有参数列表。

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


id: ldap_search
type: function
doc:
<comment>Description:</comment>
  Search LDAP tree
  
  Performs the search for a specified filter on the directory with the scope of <info>LDAP_SCOPE_SUBTREE</info>.
  This is equivalent to searching the entire directory.
  
  It is also possible to perform parallel searches. In this case, the first argument should be an
  array of
  <class>LDAP\Connection</class> instances, rather than a single one.
  If the searches should not all use the same base DN and filter, an array of base DNs and/or an
  array of filters can be passed as arguments instead.
  These arrays must be of the same size as the <class>LDAP\Connection</class> instances array,
  since the first entries of the arrays are used for one search, the second entries are used for
  another, and so on.
  When doing parallel searches an array of <class>LDAP\Result</class> instances is returned, except in case of
  error, when the return value will be <info>false</info>.

<comment>Param:</comment>
  <info>LDAP\Connection|array</info>  <strong>$ldap</strong>             通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。
  <info>array|string</info>           <strong>$base</strong>             The base DN for the directory.
  <info>array|string</info>           <strong>$filter</strong>           The search filter can be simple or advanced, using
                                           boolean operators in the format described in the LDAP
                                           documentation (see the Netscape Directory SDK or RFC4515
                                           for full information on filters).
  <info>array</info>                  <strong>$attributes</strong>       An array of the required attributes, e.g. <return>array("mail",
                                           "sn", "cn")</return>. Note that the "dn" is always returned
                                           irrespective of which attributes types are requested.
                                           
                                           Using this parameter is much more efficient than the
                                           default action (which is to return all attributes and
                                           their associated values). The use of this parameter
                                           should therefore be considered good practice.
  <info>int</info>                    <strong>$attributes_only</strong>  Should be set to 1 if only attribute types are wanted. If
                                           set to 0 both attributes types and attribute values are
                                           fetched which is the default behaviour.
  <info>int</info>                    <strong>$sizelimit</strong>        Enables you to limit the count of entries fetched.
                                           Setting this to 0 means no limit.
                                           
                                           This parameter can NOT override server-side preset
                                           sizelimit. You can set it lower though.
                                           
                                           Some directory server hosts will be configured to return
                                           no more than a preset number of entries. If this occurs,
                                           the server will indicate that it has only returned a
                                           partial results set. This also occurs if you use this
                                           parameter to limit the count of fetched entries.
  <info>int</info>                    <strong>$timelimit</strong>        Sets the number of seconds how long is spend on the
                                           search. Setting this to 0 means no limit.
                                           
                                           This parameter can NOT override server-side preset
                                           timelimit. You can set it lower though.
  <info>int</info>                    <strong>$deref</strong>            Specifies how aliases should be handled during the
                                           search. It can be one of the following: <info>LDAP_DEREF_NEVER</info>
                                           - (default) aliases are never dereferenced.
                                           <info>LDAP_DEREF_SEARCHING</info> - aliases should be dereferenced
                                           during the search but not when locating the base object
                                           of the search. <info>LDAP_DEREF_FINDING</info> - aliases should be
                                           dereferenced when locating the base object but not during
                                           the search. <info>LDAP_DEREF_ALWAYS</info> - aliases should be
                                           dereferenced always.
                                           
                                           <info>LDAP_DEREF_NEVER</info> - (default) aliases are never
                                           dereferenced.
                                           
                                           <info>LDAP_DEREF_SEARCHING</info> - aliases should be dereferenced
                                           during the search but not when locating the base object
                                           of the search.
                                           
                                           <info>LDAP_DEREF_FINDING</info> - aliases should be dereferenced when
                                           locating the base object but not during the search.
                                           
                                           <info>LDAP_DEREF_ALWAYS</info> - aliases should be dereferenced
                                           always.
  <info>array|null</info>             <strong>$controls</strong>         Array of LDAP Controls to send with the request.

<comment>Return:</comment>
  <info>LDAP\Result|array|false</info>  返回 <class>LDAP\Result</class> 实例、 <class>LDAP\Result</class> 实例数组 或者在失败时返回 <info>false</info>.


id: ldap_set_option
type: function
doc:
<comment>Description:</comment>
  Set the value of the given option
  
  Sets the value of the specified option to be <strong>$value</strong>.

<comment>Param:</comment>
  <info>LDAP\Connection|null</info>   <strong>$ldap</strong>    Either an <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>, to
                                  set the option for that connection, or <info>null</info> to set the option
                                  globally.
  <info>int</info>                    <strong>$option</strong>  The parameter <strong>$option</strong> can be one of: OptionTypeAvailable
                                  since<info>LDAP_OPT_DEREF</info><info>int</info><info>LDAP_OPT_SIZELIMIT</info><info>int</info><info>LDAP_OPT_TIMELIMIT</info><info>int</info><info>LDAP_OPT_NETWORK_TIMEOUT</info><info>int</info><info>LDAP_OPT_PROTOCOL_VERSION</info><info>int</info><info>LDAP_OPT_ERROR_NUMBER</info><info>int</info><info>LDAP_OPT_REFERRALS</info><info>bool</info><info>LDAP_OPT_RESTART</info><info>bool</info><info>LDAP_OPT_HOST_NAME</info><info>string</info><info>LDAP_OPT_ERROR_STRING</info><info>string</info><info>LDAP_OPT_DIAGNOSTIC_MESSAGE</info><info>string</info><info>LDAP_OPT_MATCHED_DN</info><info>string</info><info>LDAP_OPT_SERVER_CONTROLS</info><info>array</info><info>LDAP_OPT_CLIENT_CONTROLS</info><info>array</info><info>LDAP_OPT_X_KEEPALIVE_IDLE</info><info>int</info>PHP
                                  7.1.0<info>LDAP_OPT_X_KEEPALIVE_PROBES</info><info>int</info>PHP
                                  7.1.0<info>LDAP_OPT_X_KEEPALIVE_INTERVAL</info><info>int</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_CACERTDIR</info><info>string</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_CACERTFILE</info><info>string</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_CERTFILE</info><info>string</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_CIPHER_SUITE</info><info>string</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_CRLCHECK</info><info>int</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_CRLFILE</info><info>string</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_DHFILE</info><info>string</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_KEYFILE</info><info>string</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_PROTOCOL_MIN</info><info>int</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_RANDOM_FILE</info><info>string</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_REQUIRE_CERT</info><info>int</info>PHP 7.0.5
                                  
                                  <info>LDAP_OPT_SERVER_CONTROLS</info> and  <info>LDAP_OPT_CLIENT_CONTROLS</info> require a
                                  list of controls, this means that the value must be an array of
                                  controls. A control consists of an oid identifying the control, an
                                  optional value, and an optional flag for criticality. In PHP a
                                  control is given by an array containing an element with the key
                                  oid and string value, and two optional elements. The optional
                                  elements are key value with string value and key iscritical with
                                  boolean value. iscritical defaults to <info>false</info> if not supplied. See
                                  draft-ietf-ldapext-ldap-c-api-xx.txt for details. See also the
                                  second example below.
  <info>array|string|int|bool</info>  <strong>$value</strong>   The new value for the specified <strong>$option</strong>.

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

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


id: ldap_set_rebind_proc
type: function
doc:
<comment>Description:</comment>
  Set a callback function to do re-binds on referral chasing
  
  本函数还未编写文档，仅有参数列表。

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


id: ldap_sort
type: function
doc:
<comment>Description:</comment>
  Sort LDAP result entries on the client side
  
  Sort the result of a LDAP search, returned by <strong>ldap_search()</strong>.
  
  As this function sorts the returned values on the client side it is possible that  you might not
  get the expected results in case you reach the <strong>$sizelimit</strong> either of the server or defined within
  <strong>ldap_search()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link</strong>        An LDAP resource, returned by <strong>ldap_connect()</strong>.
  <info>resource</info>  <strong>$result</strong>      An search result identifier, returned by <strong>ldap_search()</strong>.
  <info>string</info>    <strong>$sortfilter</strong>  The attribute to use as a key in the sort.

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


id: ldap_start_tls
type: function
doc:
<comment>Description:</comment>
  Start TLS
  
  本函数还未编写文档，仅有参数列表。

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


id: ldap_t61_to_8859
type: function
doc:
<comment>Description:</comment>
  Translate t61 characters to 8859 characters
  
  本函数还未编写文档，仅有参数列表。

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


id: ldap_unbind
type: function
doc:
<comment>Description:</comment>
  Unbind from LDAP directory
  
  Unbinds from the LDAP directory.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>  通过 <strong>ldap_connect()</strong> 返回的 <class>LDAP\Connection</class> 实例。

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

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


id: levenshtein
type: function
doc:
<comment>Description:</comment>
  计算两个字符串之间的 Levenshtein 距离
  
  Levenshtein 距离，是指两个字串之间，通过替换、插入、删除等操作将字符串 <strong>$string1</strong> 转换成 <strong>$string2</strong> 所
  需要操作的最少字符数量。该算法的复杂度是 <return>O(m*n)</return>，其中 <return>n</return> 和 <return>m</return> 分别是 <strong>$string1</strong> 和 <strong>$string2</strong> 的长度
  （当和算法复杂度为 <return>O(max(n,m)**3)</return> 的 <strong>similar_text()</strong> 相比时，此函数还是相当不错的，尽管仍然很耗
  时）。
  
  如果 <strong>$insertion_cost</strong>、<strong>$replacement_cost</strong> 和/或 <strong>$deletion_cost</strong> 不等于 <return>1</return>，则算法选择应用于最简便的算
  法。如果 $insertion_cost + $deletion_cost \< $replacement_cost，则不会替换，而是插入和删除。

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>           求编辑距离中的其中一个字符串。
  <info>string</info>  <strong>$string2</strong>           求编辑距离中的另一个字符串。
  <info>int</info>     <strong>$insertion_cost</strong>    定义插入次数。
  <info>int</info>     <strong>$replacement_cost</strong>  定义替换次数。
  <info>int</info>     <strong>$deletion_cost</strong>     定义删除次数。

<comment>Return:</comment>
  <info>int</info>  此函数返回两个字符串参数之间的 Levenshtein 距离。

<comment>See Also:</comment>
   * <strong>soundex()</strong>
   * <strong>similar_text()</strong>
   * <strong>metaphone()</strong>


id: libXMLError
type: class
doc:
<comment>Description:</comment>
  Contains various information about errors thrown by libxml. The error codes are described within
  the official  xmlError API documentation.


id: libxml_clear_errors
type: function
doc:
<comment>Description:</comment>
  Clear libxml error buffer
    
  
  <strong>libxml_clear_errors()</strong> clears the libxml error buffer.

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

<comment>See Also:</comment>
   * <strong>libxml_get_errors()</strong>
   * <strong>libxml_get_last_error()</strong>


id: libxml_disable_entity_loader
type: function
doc:
<comment>Description:</comment>
  Disable the ability to load external entities
  
  Disable/enable the ability to load external entities. Note that disabling the loading of external
  entities may cause general issues with loading XML documents. However, as of libxml 2.9.0 entity
  substitution is disabled by default, so there is no need to disable the loading of external
  entities, unless there is the need to resolve internal entity references with <info>LIBXML_NOENT</info>.
  Generally, it is preferable to use <strong>libxml_set_external_entity_loader()</strong> to suppress loading of
  external entities.

<comment>Param:</comment>
  <info>bool</info>  <strong>$disable</strong>  Disable (<info>true</info>) or enable (<info>false</info>) libxml extensions (such as ,  and ) to load
                  external entities.

<comment>Return:</comment>
  <info>bool</info>  Returns the previous value.

<comment>See Also:</comment>
   * <strong>libxml_use_internal_errors()</strong>
   * <strong>libxml_set_external_entity_loader()</strong>
   * The <info>LIBXML_NOENT</info> constant


id: libxml_get_errors
type: function
doc:
<comment>Description:</comment>
  Retrieve array of errors
    
  
  Retrieve array of errors.

<comment>Return:</comment>
  <info>array</info>  Returns an array with <info>LibXMLError</info> objects if there are any errors in the buffer, or an
         empty array otherwise.

<comment>See Also:</comment>
   * <strong>libxml_get_last_error()</strong>
   * <strong>libxml_clear_errors()</strong>


id: libxml_get_external_entity_loader
type: function
doc:
<comment>Description:</comment>
  Get the current external entity loader
  
  Get external entity loader previously installed by <strong>libxml_set_external_entity_loader()</strong>.

<comment>Return:</comment>
  <info>callable|null</info>  The external entity loader previously installed by
                 <strong>libxml_set_external_entity_loader()</strong>. If that function was never called, or if it
                 was called with <info>null</info>, <info>null</info> will be returned.

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


id: libxml_get_last_error
type: function
doc:
<comment>Description:</comment>
  Retrieve last error from libxml
    
  
  Retrieve last error from libxml.

<comment>Return:</comment>
  <info>LibXMLError|false</info>  Returns a <info>LibXMLError</info> object if there is any error in the buffer, <info>false</info>
                     otherwise.

<comment>See Also:</comment>
   * <strong>libxml_get_errors()</strong>
   * <strong>libxml_clear_errors()</strong>


id: libxml_set_external_entity_loader
type: function
doc:
<comment>Description:</comment>
  Changes the default external entity loader
  
  Changes the default external entity loader. This can be used to suppress the expansion of
  arbitrary external entities to avoid XXE attacks, even when <info>LIBXML_NOENT</info> has been set for the
  respective operation, and is usually preferable over calling <strong>libxml_disable_entity_loader()</strong>.

<comment>Param:</comment>
  <info>callable|null</info>  <strong>$resolver_function</strong>  A <info>callable</info> with the following signature:
                                     <info>resource</info><info>string</info><info>null</info></info>resolver<info>string</info><info>null</info></info><strong>$public_id</strong><info>string</info><strong>$system_id</strong><info>array</info><strong>$context</strong>
                                     <strong>$public_id</strong> The public ID. <strong>$system_id</strong> The system ID. <strong>$context</strong> An
                                     array with the four elements <return>"directory"</return>, <return>"intSubName"</return>,
                                     <return>"extSubURI"</return> and <return>"extSubSystem"</return>.  This callable should return a
                                     resource, a <info>string</info> from which a resource can be opened. If <info>null</info>
                                     is returned, the entity reference resolution will fail.
                                     
                                     The public ID.
                                     
                                     The system ID.
                                     
                                     An array with the four elements <return>"directory"</return>, <return>"intSubName"</return>,
                                     <return>"extSubURI"</return> and <return>"extSubSystem"</return>.
  <info>string|null</info>    <strong>$public_id</strong>          The public ID.
  <info>string</info>         <strong>$system_id</strong>          The system ID.
  <info>array</info>          <strong>$context</strong>            An array with the four elements <return>"directory"</return>, <return>"intSubName"</return>,
                                     <return>"extSubURI"</return> and <return>"extSubSystem"</return>.

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

<comment>See Also:</comment>
   * <strong>libxml_disable_entity_loader()</strong>
   * <strong>libxml_get_external_entity_loader()</strong>


id: libxml_set_streams_context
type: function
doc:
<comment>Description:</comment>
  Set the streams context for the next libxml document load or write
    
  
  Sets the streams context for the next libxml document load or write.

<comment>Param:</comment>
  <info>resource</info>  <strong>$context</strong>  The stream context resource (created with <strong>stream_context_create()</strong>)

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

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


id: libxml_use_internal_errors
type: function
doc:
<comment>Description:</comment>
  Disable libxml errors and allow user to fetch error information as needed
    
  
  <strong>libxml_use_internal_errors()</strong> allows you to disable standard libxml errors and enable user error
  handling.

<comment>Param:</comment>
  <info>bool|null</info>  <strong>$use_errors</strong>  Enable (<info>true</info>) user error handling or disable (<info>false</info>) user error handling.
                          Disabling will also clear any existing libxml errors.

<comment>Return:</comment>
  <info>bool</info>  This function returns the previous value of <strong>$use_errors</strong>.

<comment>See Also:</comment>
   * <strong>libxml_clear_errors()</strong>
   * <strong>libxml_get_errors()</strong>


id: link
type: function
doc:
<comment>Description:</comment>
  建立一个硬连接
  
  <strong>link()</strong> 建立一个硬连接。

<comment>Param:</comment>
  <info>string</info>  <strong>$target</strong>  要链接的目标。
  <info>string</info>  <strong>$link</strong>    链接的名称。

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

<comment>See Also:</comment>
   * <strong>symlink()</strong>
   * <strong>readlink()</strong>
   * <strong>linkinfo()</strong>
   * <strong>unlink()</strong>


id: linkinfo
type: function
doc:
<comment>Description:</comment>
  获取一个连接的信息
  
  获取一个连接的信息。
  
  本函数用来验证一个连接（由 <strong>$path</strong> 所指向的）是否确实存在（使用  stat.h 中的 S_ISLNK 宏同样的方
  法）。

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>  连接的路径。

<comment>Return:</comment>
  <info>int|false</info>  <strong>linkinfo()</strong> 返回 <return>lstat</return> 系统调用所返回的 UNIX C stat 结构中的 <return>st_dev</return> 字段。成功时返回非负
             数，如果链接未找到则返回 -1，如果跟 open.base_dir 冲突则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>symlink()</strong>
   * <strong>link()</strong>
   * <strong>readlink()</strong>


id: list
type: function
doc:
<comment>Description:</comment>
  把数组中的值赋给一组变量 
  
  像 <strong>array()</strong> 一样，这不是真正的函数，而是语言结构。 <strong>list()</strong> 可以在单次操作内为一组变量赋值。字符串不
  能解包且 <strong>list()</strong> 表达式不能完全为空。
  
  在 PHP 7.1.0 之前的版本，<strong>list()</strong> 仅能用于数字索引的数组，并假定数字索引从 0 开始。

<comment>Param:</comment>
  <info>mixed</info>  <strong>$var</strong>   一个变量。
  <info>mixed</info>  <strong>$vars</strong>  更多变量。

<comment>Return:</comment>
  <info>array</info>  返回指定的数组。

<comment>See Also:</comment>
   * <strong>each()</strong>
   * <strong>array()</strong>
   * <strong>extract()</strong>


id: localeconv
type: function
doc:
<comment>Description:</comment>
  Get numeric formatting information
  
  Returns an associative array containing localized numeric and monetary formatting information.

<comment>Return:</comment>
  <info>array</info>  <strong>localeconv()</strong> returns data based upon the current locale as set by <strong>setlocale()</strong>.  The
         associative array that is returned contains the following fields: Array
         elementDescriptiondecimal_pointDecimal point characterthousands_sepThousands
         separatorgroupingArray containing numeric groupingsint_curr_symbolInternational currency
         symbol (i.e. USD)currency_symbolLocal currency symbol (i.e. $)mon_decimal_pointMonetary
         decimal point charactermon_thousands_sepMonetary thousands separatormon_groupingArray
         containing monetary groupingspositive_signSign for positive valuesnegative_signSign for
         negative valuesint_frac_digitsInternational fractional digitsfrac_digitsLocal fractional
         digitsp_cs_precedes<info>true</info> if currency_symbol precedes a positive value, <info>false</info> if it succeeds
         one p_sep_by_space<info>true</info> if a space separates currency_symbol from a positive value, <info>false</info>
         otherwise n_cs_precedes<info>true</info> if currency_symbol precedes a negative value, <info>false</info> if it
         succeeds one n_sep_by_space<info>true</info> if a space separates currency_symbol from a negative value,
         <info>false</info> otherwise p_sign_posn0 - Parentheses surround the quantity and currency_symbol1 - The
         sign string precedes the quantity and currency_symbol2 - The sign string succeeds the
         quantity and currency_symbol3 - The sign string immediately precedes the currency_symbol4 -
         The sign string immediately succeeds the currency_symboln_sign_posn0 - Parentheses surround
         the quantity and currency_symbol1 - The sign string precedes the quantity and
         currency_symbol2 - The sign string succeeds the quantity and currency_symbol3 - The sign
         string immediately precedes the currency_symbol4 - The sign string immediately succeeds the
         currency_symbol
         
         The <return>p_sign_posn</return>, and <return>n_sign_posn</return> contain a string of formatting options. Each number
         representing one of the above listed conditions.
         
         The grouping fields contain arrays that define the way numbers should be grouped. For
         example, the monetary grouping field for the nl_NL locale (in UTF-8 mode with the euro
         sign), would contain a 2 item array with the values 3 and 3. The higher the index in the
         array, the farther left the grouping is. If an array element is equal to <info>CHAR_MAX</info>, no
         further grouping is done. If an array element is equal to 0, the previous element should be
         used.

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


id: localtime
type: function
doc:
<comment>Description:</comment>
  取得本地时间
  
  <strong>localtime()</strong> 函数返回和 C 函数调用返回的结构相同数组。

<comment>Param:</comment>
  <info>int|null</info>  <strong>$timestamp</strong>    可选的 <strong>$timestamp</strong> 参数是一个 <info>int</info> 的 Unix
                          时间戳，如未指定或是 <info>null</info>，参数值默认为当前本地时间。也就是说，其值默认为
                          <strong>time()</strong> 的返回值。
  <info>bool</info>      <strong>$associative</strong>  确定函数应该返回常规的数字索引数组还是关联数组。

<comment>Return:</comment>
  <info>array</info>  如果 <strong>$associative</strong> 设为 <info>false</info> 或未提供则返回的是普通的数字索引数组。如果 <strong>$associative</strong> 设为
         <info>true</info> 则 <strong>localtime()</strong> 返回关联数组，其中包含所有从 C 函数调用 localtime 结构元素。关联数组中
         键如下：
         
          "tm_sec" - 秒数，<return>0</return> 到 <return>59</return>  "tm_min" - 分钟数，<return>0</return> 到 <return>59</return>  "tm_hour" - 小时，<return>0</return> 到 <return>23</return>  "tm_mday"
         - 月份中的第几日，<return>1</return> 到 <return>31</return>  "tm_mon" - 年份中的第几个月，<return>0</return> (Jan) 到 <return>11</return> (Dec)  "tm_year" - 年
         份，从 1900 开始  "tm_wday" - 星期中的第几天，<return>0</return> (Sun) 到 <return>6</return> (Sat)  "tm_yday" - 一年中的第几
         天，<return>0</return> 到 <return>365</return>  "tm_isdst" - 夏令时当前是否生效？  如果是生效的是正数， <return>0</return> 代表未生效，负数代
         表未知。
         
         "tm_sec" - 秒数，<return>0</return> 到 <return>59</return>
         
         "tm_min" - 分钟数，<return>0</return> 到 <return>59</return>
         
         "tm_hour" - 小时，<return>0</return> 到 <return>23</return>
         
         "tm_mday" - 月份中的第几日，<return>1</return> 到 <return>31</return>
         
         "tm_mon" - 年份中的第几个月，<return>0</return> (Jan) 到 <return>11</return> (Dec)
         
         "tm_year" - 年份，从 1900 开始
         
         "tm_wday" - 星期中的第几天，<return>0</return> (Sun) 到 <return>6</return> (Sat)
         
         "tm_yday" - 一年中的第几天，<return>0</return> 到 <return>365</return>
         
         "tm_isdst" - 夏令时当前是否生效？
         
         如果是生效的是正数， <return>0</return> 代表未生效，负数代表未知。

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


id: log
type: function
doc:
<comment>Description:</comment>
  自然对数
  
  如果指定了可选的参数 <strong>$base</strong>，<strong>log()</strong> 返回 logbase <strong>$num</strong>，否则 <strong>log()</strong>  返回参数 <strong>$num</strong> 的自然对数。

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>   要计算对数的值
  <info>float</info>  <strong>$base</strong>  可选的底数（默认是“e”，也可以说是自然对数）。

<comment>Return:</comment>
  <info>float</info>  以 <strong>$base</strong> 为底 <strong>$num</strong> 的对数，如果未指定 <strong>$num</strong> 则为自然对数。

<comment>See Also:</comment>
   * <strong>log10()</strong>
   * <strong>exp()</strong>
   * <strong>pow()</strong>
   * <strong>error_log()</strong>


id: log10
type: function
doc:
<comment>Description:</comment>
  以 10 为底的对数
  
  返回参数 <strong>$num</strong> 以 10 为底的对数。

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  要处理的参数

<comment>Return:</comment>
  <info>float</info>  <strong>$num</strong> 以 10 为底的对数。

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


id: log1p
type: function
doc:
<comment>Description:</comment>
  返回 log(1 + number)，甚至当 number 的值接近零也能计算出准确结果
    
  
  <strong>log1p()</strong> 返回 log(1 + <strong>$num</strong>)，甚至当 <strong>$num</strong> 的值接近零也能计算出准确结果。<strong>log()</strong> 在这种情况下，可能由于
  缺乏精度只返回 log(1)。

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  要处理的参数

<comment>Return:</comment>
  <info>float</info>  log(1 + <strong>$num</strong>)

<comment>See Also:</comment>
   * <strong>expm1()</strong>
   * <strong>log()</strong>
   * <strong>log10()</strong>


id: long2ip
type: function
doc:
<comment>Description:</comment>
  将长整型转化为字符串形式带点的互联网标准格式地址（IPV4）
  
  <strong>long2ip()</strong> 函数通过长整型的表达形式转化生成带点格式的互联网地址（例如：aaa.bbb.ccc.ddd ）。

<comment>Param:</comment>
  <info>int</info>  <strong>$ip</strong>  合格的地址，长整型的表达形式。

<comment>Return:</comment>
  <info>string|false</info>  返回字符串的互联网 IP 地址， 或者在失败时返回 <info>false</info>。

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


id: lstat
type: function
doc:
<comment>Description:</comment>
  给出一个文件或符号连接的信息
  
  获取由 <strong>$filename</strong> 指定的文件或符号连接的统计信息。

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  文件或符号连接的路径。

<comment>Return:</comment>
  <info>array|false</info>  有关 <strong>lstat()</strong> 返回的数组结构见手册中 <strong>stat()</strong> 函数的页面。 本函数和 <strong>stat()</strong> 函数相同，只
               除了如果 <strong>$filename</strong> 参数是符号连接的话，则该符号连接的状态被返回，而不是该符号连接所指
               向的文件的状态。
               
               失败时返回 <info>false</info>。

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


id: ltrim
type: function
doc:
<comment>Description:</comment>
  删除字符串开头的空白字符（或其他字符）
  
  删除字符串开头的空白字符（或其他字符）

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>      输入的字符串。
  <info>string</info>  <strong>$characters</strong>  通过参数 <strong>$characters</strong>，你也可以指定想要删除的字符，简单地列出你想要删除的所有
                       字符即可。使用<return>..</return>，可以指定字符的范围。

<comment>Return:</comment>
  <info>string</info>  该函数返回一个删除了 <strong>$string</strong> 最左边的空白字符的字符串。 如果不使用第二个参数， <strong>ltrim()</strong> 仅
          删除以下字符：   " " (ASCII <return>32</return> (<return>0x20</return>))，普通空白字符。  "\t" (ASCII <return>9</return> (<return>0x09</return>))， 制表符.
          "\n" (ASCII <return>10</return> (<return>0x0A</return>))，换行符。  "\r" (ASCII <return>13</return> (<return>0x0D</return>))，回车符。  "\0" (ASCII <return>0</return>
          (<return>0x00</return>))， <return>NUL</return>空字节符。  "\v" (ASCII <return>11</return> (<return>0x0B</return>))，垂直制表符。
          
          " " (ASCII <return>32</return> (<return>0x20</return>))，普通空白字符。
          
          "\t" (ASCII <return>9</return> (<return>0x09</return>))， 制表符.
          
          "\n" (ASCII <return>10</return> (<return>0x0A</return>))，换行符。
          
          "\r" (ASCII <return>13</return> (<return>0x0D</return>))，回车符。
          
          "\0" (ASCII <return>0</return> (<return>0x00</return>))， <return>NUL</return>空字节符。
          
          "\v" (ASCII <return>11</return> (<return>0x0B</return>))，垂直制表符。

<comment>See Also:</comment>
   * <strong>trim()</strong>
   * <strong>rtrim()</strong>


id: lzf_compress
type: function
doc:
<comment>Description:</comment>
  LZF compression
    
  
  <strong>lzf_compress()</strong> compresses the given <strong>$data</strong> string using LZF encoding.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The string to compress.

<comment>Return:</comment>
  <info>string</info>  Returns the compressed data or <info>false</info> if an error occurred.

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


id: lzf_decompress
type: function
doc:
<comment>Description:</comment>
  LZF decompression
    
  
  <strong>lzf_compress()</strong> decompresses the given <strong>$data</strong> string containing lzf encoded data.

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

<comment>Return:</comment>
  <info>string</info>  Returns the decompressed data or <info>false</info> if an error occurred.

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


id: lzf_optimized_for
type: function
doc:
<comment>Description:</comment>
  Determines what LZF extension was optimized for
    
  
  Determines what was LZF extension optimized for during compilation.

<comment>Return:</comment>
  <info>int</info>  Returns 1 if LZF was optimized for speed, 0 for compression.


id: mail
type: function
doc:
<comment>Description:</comment>
  发送邮件
  
  发送一封电子邮件。

<comment>Param:</comment>
  <info>string</info>        <strong>$to</strong>                  电子邮件收件人，或收件人列表。
                                     
                                     本字符串的格式必须符合 RFC 2822。例如：
                                     user@example.comuser@example.com, anotheruser@example.comUser \<user@example.com&gt;User \<user@example.com&gt;, Another User \<anotheruser@example.com&gt;
  <info>string</info>        <strong>$subject</strong>             电子邮件的主题。
                                     
                                     本项不能包含任何换行符，否则邮件可能无法正确发送。
  <info>string</info>        <strong>$message</strong>             所要发送的消息。
                                     
                                     行之间必须以一个 CRLF（\r\n）分隔。每行不能超过 70 个字符。
                                     
                                     （Windows 下）当 PHP 直接连接到 SMTP 服务器时，如果在一行开头发
                                     现一个句号，则会被删掉。要避免此问题，将单个句号替换成两个句
                                     号。
                                     ]]>
  <info>array|string</info>  <strong>$additional_headers</strong>  <info>String</info> or <info>array</info> to be inserted at the end of the email header.
                                     
                                     This is typically used to add extra headers (From, Cc, and
                                     Bcc). Multiple extra headers should be separated with a CRLF
                                     (\r\n). If outside data are used to compose this header, the
                                     data should be sanitized so that no unwanted headers could be
                                     injected.
                                     
                                     If an <info>array</info> is passed, its keys are the header names and its
                                     values are the respective header values.
                                     
                                     Before PHP 5.4.42 and 5.5.27, repectively, <strong>$additional_headers</strong>
                                     did not have mail header injection protection. Therefore, users
                                     must make sure specified headers are safe and contains headers
                                     only. i.e. Never start mail body by putting multiple newlines.
                                     
                                     When sending mail, the mail must contain a <return>From</return> header. This
                                     can be set with the <strong>$additional_headers</strong> parameter, or a default
                                     can be set in php.ini.
                                     
                                     Failing to do this will result in an error message similar to
                                     <return>Warning: mail(): "sendmail_from" not set in php.ini or custom
                                     "From:" header missing</return>. The <return>From</return> header sets also <return>Return-Path</return>
                                     when sending directly via SMTP (Windows only).
                                     
                                     If messages are not received, try using a LF (\n) only. Some
                                     Unix mail transfer agents (most notably qmail) replace LF by
                                     CRLF automatically (which leads to doubling CR if CRLF is
                                     used). This should be a last resort, as it does not comply with
                                     RFC 2822.
  <info>string</info>        <strong>$additional_params</strong>   The <strong>$additional_params</strong> parameter can be used to pass additional
                                     flags as command line options to the program configured to be
                                     used when sending mail, as defined by the <return>sendmail_path</return>
                                     configuration setting. For example, this can be used to set the
                                     envelope sender address when using sendmail with the <return>-f</return>
                                     sendmail option.
                                     
                                     This parameter is escaped by <strong>escapeshellcmd()</strong> internally to
                                     prevent command execution. <strong>escapeshellcmd()</strong> prevents command
                                     execution, but allows to add additional parameters. For
                                     security reasons, it is recommended for the user to sanitize
                                     this parameter to avoid adding unwanted parameters to the shell
                                     command.
                                     
                                     Since <strong>escapeshellcmd()</strong> is applied automatically, some
                                     characters that are allowed as email addresses by internet RFCs
                                     cannot be used.  <strong>mail()</strong> can not allow such characters, so in
                                     programs where the use of such characters is required,
                                     alternative means of sending emails (such as using a framework
                                     or a library) is recommended.
                                     
                                     The user that the webserver runs as should be added as a
                                     trusted user to the sendmail configuration to prevent a
                                     'X-Warning' header from being added to the message when the
                                     envelope sender (-f) is set using this method. For sendmail
                                     users, this file is /etc/mail/trusted-users.

<comment>Return:</comment>
  <info>bool</info>  如果邮件成功接受投递，返回 <info>true</info>，否则返回 <info>false</info>。
        
        同样重要的是要注意到，邮件仅接受了投递并不意味着邮件实际上达到预定目的地。

<comment>See Also:</comment>
   * <strong>mb_send_mail()</strong>
   * <strong>imap_mail()</strong>
   * PEAR::Mail
   * PEAR::Mail_Mime


id: mailparse_determine_best_xfer_encoding
type: function
doc:
<comment>Description:</comment>
  Gets the best way of encoding
  
  Figures out the best way of encoding the content read from the given file pointer.

<comment>Param:</comment>
  <info>resource</info>  <strong>$fp</strong>  A valid file pointer, which must be seek-able.

<comment>Return:</comment>
  <info>string</info>  Returns one of the character encodings supported by the mbstring module.


id: mailparse_msg_create
type: function
doc:
<comment>Description:</comment>
  Create a mime mail resource
  
  Create a <return>MIME</return> mail resource.

<comment>Return:</comment>
  <info>resource</info>  Returns a handle that can be used to parse a message.

<comment>See Also:</comment>
   * <strong>mailparse_msg_free()</strong>
   * <strong>mailparse_msg_parse_file()</strong>


id: mailparse_msg_extract_part
type: function
doc:
<comment>Description:</comment>
  Extracts/decodes a message section
    
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>resource</info>  <strong>$mimemail</strong>      A valid <return>MIME</return> resource.
  <info>string</info>    <strong>$msgbody</strong>       
  <info>callable</info>  <strong>$callbackfunc</strong>  

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

<comment>See Also:</comment>
   * <strong>mailparse_msg_extract_part_file()</strong>
   * <strong>mailparse_msg_extract_whole_part_file()</strong>


id: mailparse_msg_extract_part_file
type: function
doc:
<comment>Description:</comment>
  Extracts/decodes a message section
  
  Extracts/decodes a message section from the supplied filename.
  
  The contents of the section will be decoded according to their transfer encoding - base64,
  quoted-printable and uuencoded text are supported.

<comment>Param:</comment>
  <info>resource</info>  <strong>$mimemail</strong>      A valid <return>MIME</return> resource, created with <strong>mailparse_msg_create()</strong>.
  <info>mixed</info>     <strong>$filename</strong>      Can be a file name or a valid stream resource.
  <info>callable</info>  <strong>$callbackfunc</strong>  If set, this must be either a valid callback that will be passed the
                           extracted section, or <info>null</info> to make this function return the extracted
                           section.
                           
                           If not specified, the contents will be sent to "stdout".

<comment>Return:</comment>
  <info>string</info>  If <strong>$callbackfunc</strong> is not <info>null</info> returns <info>true</info> on success.
          
          If <strong>$callbackfunc</strong> is set to <info>null</info>, returns the extracted section as a string.
          
          Returns <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>mailparse_msg_extract_part()</strong>
   * <strong>mailparse_msg_extract_whole_part_file()</strong>


id: mailparse_msg_extract_whole_part_file
type: function
doc:
<comment>Description:</comment>
  Extracts a message section including headers without decoding the transfer encoding
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>resource</info>  <strong>$mimemail</strong>      A valid <return>MIME</return> resource.
  <info>string</info>    <strong>$filename</strong>      
  <info>callable</info>  <strong>$callbackfunc</strong>  

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

<comment>See Also:</comment>
   * <strong>mailparse_msg_extract_part()</strong>
   * <strong>mailparse_msg_extract_part_file()</strong>


id: mailparse_msg_free
type: function
doc:
<comment>Description:</comment>
  Frees a MIME resource
  
  Frees a <return>MIME</return> resource.

<comment>Param:</comment>
  <info>resource</info>  <strong>$mimemail</strong>  A valid <return>MIME</return> resource allocated by <strong>mailparse_msg_create()</strong> or
                       <strong>mailparse_msg_parse_file()</strong>.

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

<comment>See Also:</comment>
   * <strong>mailparse_msg_create()</strong>
   * <strong>mailparse_msg_parse_file()</strong>


id: mailparse_msg_get_part
type: function
doc:
<comment>Description:</comment>
  Returns a handle on a given section in a mimemessage
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>resource</info>  <strong>$mimemail</strong>     A valid <return>MIME</return> resource.
  <info>string</info>    <strong>$mimesection</strong>  

<comment>Return:</comment>
  <info>resource</info>  


id: mailparse_msg_get_part_data
type: function
doc:
<comment>Description:</comment>
  Returns an associative array of info about the message
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>resource</info>  <strong>$mimemail</strong>  A valid <return>MIME</return> resource.

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


id: mailparse_msg_get_structure
type: function
doc:
<comment>Description:</comment>
  Returns an array of mime section names in the supplied message
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>resource</info>  <strong>$mimemail</strong>  A valid <return>MIME</return> resource.

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


id: mailparse_msg_parse
type: function
doc:
<comment>Description:</comment>
  Incrementally parse data into buffer
  
  Incrementally parse data into the supplied mime mail resource.
  
  This function allow you to stream portions of a file at a time, rather than read and parse the
  whole thing.

<comment>Param:</comment>
  <info>resource</info>  <strong>$mimemail</strong>  A valid <return>MIME</return> resource.
  <info>string</info>    <strong>$data</strong>      The final chunk of <strong>$data</strong> is supposed to end with a newline (<return>CRLF</return>); otherwise
                       the last line of the message will not be parsed.

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


id: mailparse_msg_parse_file
type: function
doc:
<comment>Description:</comment>
  Parses a file
  
  Parses a file. This is the optimal way of parsing a mail file that you have on disk.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Path to the file holding the message. The file is opened and streamed through
                     the parser.
                     
                     The message contained in <strong>$filename</strong> is supposed to end with a newline (<return>CRLF</return>);
                     otherwise the last line of the message will not be parsed.

<comment>Return:</comment>
  <info>resource</info>  Returns a <return>MIME</return> resource representing the structure, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>mailparse_msg_free()</strong>
   * <strong>mailparse_msg_create()</strong>


id: mailparse_rfc822_parse_addresses
type: function
doc:
<comment>Description:</comment>
  Parse RFC 822 compliant addresses
  
  Parses a RFC 822 compliant recipient list, such as that found in the <return>To:</return> header.

<comment>Param:</comment>
  <info>string</info>  <strong>$addresses</strong>  A string containing addresses, like in: <return>Wez Furlong \<wez@example.com&gt;, doe@example.com</return>
                      
                      This string must not include the header name.

<comment>Return:</comment>
  <info>array</info>  Returns an array of associative arrays with the following keys for each recipient: <return>display</return>
         The recipient name, for display purpose. If this part is not set for a recipient, this key
         will hold the same value as  <return>address</return>. <return>address</return>The email address<return>is_group</return><info>true</info> if the recipient
         is a newsgroup, <info>false</info> otherwise.


id: mailparse_stream_encode
type: function
doc:
<comment>Description:</comment>
  Streams data from source file pointer, apply encoding and write to destfp 
    
  
  Streams data from the source file pointer, apply  <strong>$encoding</strong> and write to the destination file
  pointer.

<comment>Param:</comment>
  <info>resource</info>  <strong>$sourcefp</strong>  A valid file handle. The file is streamed through the parser.
  <info>resource</info>  <strong>$destfp</strong>    The destination file handle in which the encoded data will be written.
  <info>string</info>    <strong>$encoding</strong>  One of the character encodings supported by the mbstring module.

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


id: mailparse_uudecode_all
type: function
doc:
<comment>Description:</comment>
  Scans the data from fp and extract each embedded uuencoded file
    
  
  Scans the data from the given file pointer and extract each embedded uuencoded file into a
  temporary file.

<comment>Param:</comment>
  <info>resource</info>  <strong>$fp</strong>  A valid file pointer.

<comment>Return:</comment>
  <info>array</info>  Returns an array of associative arrays listing filename information. <return>filename</return>Path to the
         temporary file name created<return>origfilename</return>The original filename, for uuencoded parts only The
         first filename entry is the message body. The next entries are the decoded uuencoded files.


id: max
type: function
doc:
<comment>Description:</comment>
  找出最大值
  
  替代签名（不支持命名参数）：
  
  如果仅有一个参数且为数组，<strong>max()</strong> 返回该数组中最大的值。如果第一个参数是整数、字符串或浮点数，则至少
  需要两个参数而 <strong>max()</strong> 会返回这些值中最大的一个。可以比较无限多个值。
  
  不同类型的值将使用标准比较规则进行比较。例如，一个非数字 <info>string</info> 与 <info>int</info> 比较时就当做是 <return>0</return>，但多个非
  数字 <info>string</info> 值将会按照字母数字比较。返回的实际值是未应用任何转换的原始类型。
  
  传递不同类型的参数时要小心，因为 <strong>max()</strong> 会产生不可预测的结果。

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>        任何可比较的值。
  <info>mixed</info>  <strong>$values</strong>       任何可比较的值。
  <info>array</info>  <strong>$value_array</strong>  包含值的数组。

<comment>Return:</comment>
  <info>mixed</info>  <strong>max()</strong> 根据标准比较返回认为是“最大”的参数值。如果不同类型的多个值认为相等（比如 <return>0</return> 与
         <return>'abc'</return>），则将会返回提供给函数的第一个值。

<comment>See Also:</comment>
   * <strong>min()</strong>
   * <strong>count()</strong>


id: mb_check_encoding
type: function
doc:
<comment>Description:</comment>
  检查字符串在指定的编码里是否有效
  
  检查指定字节流在指定编码中是否有效。如果 <strong>$value</strong> 是 <info>array</info> 类型，则递归验证所有键和值。它能有效避免
  所谓的“无效编码攻击（Invalid Encoding Attack）”。

<comment>Param:</comment>
  <info>array|string|null</info>  <strong>$value</strong>     要检查的字节流或 <info>array</info>。如果省略了这个参数，此函数会检查所有来自最初
                                请求所有的输入。
                                
                                自 PHP 8.1.0 起，禁止省略此参数或传递 <info>null</info>。
  <info>string|null</info>        <strong>$encoding</strong>  期望的编码。

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


id: mb_chr
type: function
doc:
<comment>Description:</comment>
  按 Unicode 码位值返回字符
  
  返回一个含有由 Unicode 码位值所指定的字符的字符串，以指定的编码进行编码。
  
  此函数与 <strong>mb_ord()</strong> 互补。

<comment>Param:</comment>
  <info>int</info>          <strong>$codepoint</strong>  一个 Unicode 码位值，例如 <return>128024</return> 是 U+1F418 ELEPHANT
  <info>string|null</info>  <strong>$encoding</strong>   <strong>$encoding</strong>
                           参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。

<comment>Return:</comment>
  <info>string|false</info>  如果可以用所指定的编码表示，则返回含有所请求的字符的字符串， 或者在失败时返回
                <info>false</info>。

<comment>See Also:</comment>
   * <strong>mb_internal_encoding()</strong>
   * <strong>mb_ord()</strong>
   * <strong>IntlChar::ord()</strong>
   * <strong>chr()</strong>


id: mb_convert_case
type: function
doc:
<comment>Description:</comment>
  对字符串进行大小写转换
  
  对一个 <info>string</info> 进行大小写转换，转换模式由 <strong>$mode</strong> 指定。

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    要被转换的 <info>string</info>。
  <info>int</info>          <strong>$mode</strong>      转换的模式。它可以是 <info>MB_CASE_UPPER</info>、<info>MB_CASE_LOWER</info>、<info>MB_CASE_TITLE</info>、
                          <info>MB_CASE_FOLD</info>、<info>MB_CASE_UPPER_SIMPLE</info>、<info>MB_CASE_LOWER_SIMPLE</info>、
                          <info>MB_CASE_TITLE_SIMPLE</info>、<info>MB_CASE_FOLD_SIMPLE</info> 的其中一个。
  <info>string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong>
                          参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。

<comment>Return:</comment>
  <info>string</info>  按 <strong>$mode</strong> 指定的模式转换 <strong>$string</strong> 大小写后的版本。

<comment>See Also:</comment>
   * <strong>mb_strtolower()</strong>
   * <strong>mb_strtoupper()</strong>
   * <strong>strtolower()</strong>
   * <strong>strtoupper()</strong>
   * <strong>ucfirst()</strong>
   * <strong>ucwords()</strong>


id: mb_convert_encoding
type: function
doc:
<comment>Description:</comment>
  转换字符串，从一个字符编码到另一个字符编码
  
  转换 <info>string</info> 从 <strong>$from_encoding</strong> 或当前内部编码转换到 <strong>$to_encoding</strong>。 当参数 <strong>$string</strong> 是 <info>array</info> 时，将递
  归转换它所有的 <info>string</info> 值。

<comment>Param:</comment>
  <info>array|string</info>       <strong>$string</strong>         要转换的 <info>string</info> 或 <info>array</info>。
  <info>string</info>             <strong>$to_encoding</strong>    所需的结果编码。
  <info>array|string|null</info>  <strong>$from_encoding</strong>  当前用于解释 <strong>$string</strong> 的编码。可以将多个编码指定为 <info>array</info> 或逗号
                                     分隔列表，在这种情况下，将使用与 <strong>mb_detect_encoding()</strong> 相同的算
                                     法来猜测正确的编码。
                                     
                                     如果 <strong>$from_encoding</strong> 被省略或为 <info>null</info>，则将使用
                                     mbstring.internal_encoding 设置，否则使用 default_charset 设
                                     置。
                                     
                                     有关 <strong>$to_encoding</strong> 和 <strong>$from_encoding</strong> 的有效值，请参阅支持的编
                                     码。

<comment>Return:</comment>
  <info>array|string|false</info>  编码后的 <info>string</info>。 成功时返回编码后的 <info>string</info> 或 <info>array</info>， 或者在失败时返回
                      <info>false</info>。

<comment>See Also:</comment>
   * <strong>mb_detect_order()</strong>
   * UConverter::transcode
   * <strong>iconv()</strong>


id: mb_convert_kana
type: function
doc:
<comment>Description:</comment>
  Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
  
  Performs a "han-kaku" - "zen-kaku" conversion for <info>string</info> <strong>$string</strong>.  This function is only useful
  for Japanese.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    The <info>string</info> being converted.
  <info>string</info>       <strong>$mode</strong>      The conversion option.
                          
                          Specify with a combination of following options. Applicable Conversion
                          OptionsOptionMeaning<return>r</return> Convert "zen-kaku" alphabets to "han-kaku" <return>R</return> Convert
                          "han-kaku" alphabets to "zen-kaku" <return>n</return> Convert "zen-kaku" numbers to
                          "han-kaku" <return>N</return> Convert "han-kaku" numbers to "zen-kaku" <return>a</return> Convert "zen-kaku"
                          alphabets and numbers to "han-kaku" <return>A</return> Convert "han-kaku" alphabets and
                          numbers to "zen-kaku" (Characters included in "a", "A" options are U+0021
                          - U+007E excluding U+0022, U+0027, U+005C, U+007E) <return>s</return> Convert "zen-kaku"
                          space to "han-kaku" (U+3000 -&gt; U+0020) <return>S</return> Convert "han-kaku" space to
                          "zen-kaku" (U+0020 -&gt; U+3000) <return>k</return> Convert "zen-kaku kata-kana" to
                          "han-kaku kata-kana" <return>K</return> Convert "han-kaku kata-kana" to "zen-kaku
                          kata-kana" <return>h</return> Convert "zen-kaku hira-gana" to "han-kaku kata-kana" <return>H</return>
                          Convert "han-kaku kata-kana" to "zen-kaku hira-gana" <return>c</return> Convert "zen-kaku
                          kata-kana" to "zen-kaku hira-gana" <return>C</return> Convert "zen-kaku hira-gana" to
                          "zen-kaku kata-kana" <return>V</return> Collapse voiced sound notation and convert them
                          into a character. Use with "K","H"
  <info>string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong>
                          参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。

<comment>Return:</comment>
  <info>string</info>  The converted <info>string</info>.


id: mb_convert_variables
type: function
doc:
<comment>Description:</comment>
  转换一个或多个变量的字符编码
  
  将变量 <strong>$var</strong> 和 <strong>$vars</strong> 的编码从 <strong>$from_encoding</strong> 转换成编码 <strong>$to_encoding</strong>。
  
  <strong>mb_convert_variables()</strong> 会拼接变量数组或对象中的字符串来检测编码，因为短字符串的检测往往会失败。因
  此，不能在一个数组或对象中混合使用编码。

<comment>Param:</comment>
  <info>string</info>        <strong>$to_encoding</strong>    将 <info>string</info> 转换成这个编码。
  <info>array|string</info>  <strong>$from_encoding</strong>  <strong>$from_encoding</strong> 可以指定为一个 <info>array</info> 或者逗号分隔的 <info>string</info>，它将尝试
                                根据 <strong>$from-coding</strong> 来检测编码。 当省略了 <strong>$from_encoding</strong>，将使用
                                <return>detect_order</return>。
  <info>mixed</info>         <strong>$var</strong>            <strong>$var</strong> 是要转换的变量的引用。 参数可以接受 String、Array 和 Object 的
                                类型。 <strong>mb_convert_variables()</strong> 假设所有的参数都具有同样的编码。
  <info>mixed</info>         <strong>$vars</strong>           额外的 <strong>$var</strong>。

<comment>Return:</comment>
  <info>string|false</info>  成功时返回转换前的字符编码，失败时返回 <info>false</info>。


id: mb_decode_mimeheader
type: function
doc:
<comment>Description:</comment>
  解码 MIME 头字段中的字符串
  
  解码 MIME 头中编码过的 <info>string</info> <strong>$string</strong>。

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  要解码的 <info>string</info>。

<comment>Return:</comment>
  <info>string</info>  以内部（internal）字符编码解码的 <info>string</info>。

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


id: mb_decode_numericentity
type: function
doc:
<comment>Description:</comment>
  根据 HTML 数字字符串解码成字符
  
  将 <info>string</info> 的数字字符串引用按指定的字符块转换成 <strong>$string</strong>。

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    要解码的 <info>string</info>。
  <info>array</info>        <strong>$map</strong>       <strong>$map</strong> 是 <info>array</info>，指定了要转换的代码区域。
  <info>string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong>
                          参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。
  <info></info>             <strong>$is_hex</strong>    不使用此参数。

<comment>Return:</comment>
  <info>string</info>  转换后的 <info>string</info>。

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


id: mb_detect_encoding
type: function
doc:
<comment>Description:</comment>
  检测字符的编码
  
  从有序的候选列表中检测 <info>string</info> <strong>$string</strong> 最可能的字符编码。
  
  对预期（intended）字符编码的自动检测不可能永远完全可靠；没有额外的信息，就类似于在没有密钥的情况下
  解码已编码的字符串。最好使用与数据一起存储或传输的字符编码表示，例如“Content-Type” HTTP 头。
  
  此函数适用于多字节编码，但并非所有字节顺序都构成有效字符串。如果输入字符串包含这样的顺序，则将会拒
  绝该编码，并检查下一个编码。

<comment>Param:</comment>
  <info>string</info>             <strong>$string</strong>     要检测的 <info>string</info>。
  <info>array|string|null</info>  <strong>$encodings</strong>  按顺序尝试的字符编码列表。该列表可以指定为字符串数组，或以逗号分隔
                                 的单个字符串。
                                 
                                 如果省略 <strong>$encodings</strong> 被或为 <info>null</info>，则将使用当前的 detect_order（使用
                                 mbstring.detect_order 配置选项或 <strong>mb_detect_order()</strong> 函数设置）。
  <info>bool</info>               <strong>$strict</strong>     控制 <strong>$string</strong> 在列出的所有 <strong>$encodings</strong> 中无效时的行为。如果 <strong>$strict</strong>
                                 设置为 <info>false</info>，将返回最接近的匹配编码；如果 <strong>$strict</strong> 设置为 <info>true</info>，将
                                 返回 <info>false</info>。
                                 
                                 可以使用 mbstring.strict_detection 配置选项设置 <strong>$strict</strong> 的默认值。

<comment>Return:</comment>
  <info>string|false</info>  检测到的字符编码，如果字符串在任何列出的编码中均无效，则返回 <info>false</info>。

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


id: mb_detect_order
type: function
doc:
<comment>Description:</comment>
  设置/获取 字符编码的检测顺序
  
  为编码列表 <strong>$encoding</strong> 设置自动检测字符编码的顺序。

<comment>Param:</comment>
  <info>array|string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong> 是一个 <info>array</info> 或者逗号分隔的字符编码列表。 参见支持的编码。
                                
                                如果省略 <strong>$encoding</strong> 或为 <info>null</info>，它将返回当前字符编码检测顺序的数组。
                                
                                该设置会影响 <strong>mb_detect_encoding()</strong> 和 <strong>mb_send_mail()</strong>。
                                
                                <return>mbstring</return> 当前实现了以下编码检测筛选器。 如有以下编码列表的无效字节序
                                列，编码的检测将会失败。
                                
                                <return>UTF-8</return>, <return>UTF-7</return>, <return>ASCII</return>, <return>EUC-JP</return>,<return>SJIS</return>, <return>eucJP-win</return>, <return>SJIS-win</return>, <return>JIS</return>,
                                <return>ISO-2022-JP</return>
                                
                                对于 <return>ISO-8859-*</return>，<return>mbstring</return> 总是检测为 <return>ISO-8859-*</return>。
                                
                                对于 <return>UTF-16</return>、<return>UTF-32</return>、 <return>UCS2</return> 和 <return>UCS4</return>，编码检测总是会失败。

<comment>Return:</comment>
  <info>array|bool</info>  设置编码检测顺序时候，成功时返回 <info>true</info>，识别时候返回  <info>false</info>。
              
              在获取编码检测顺序的时候，会返回排序过的编码数组。

<comment>See Also:</comment>
   * <strong>mb_internal_encoding()</strong>
   * <strong>mb_http_input()</strong>
   * <strong>mb_http_output()</strong>
   * <strong>mb_send_mail()</strong>


id: mb_encode_mimeheader
type: function
doc:
<comment>Description:</comment>
  为 MIME 头编码字符串
  
  按 MIME 头编码方案将指定的<info>字符串</info> <strong>$string</strong> 进行编码。

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>             要编码的 <info>string</info>。 它的编码应该和 <strong>mb_internal_encoding()</strong> 一样。
  <info>string|null</info>  <strong>$charset</strong>            <strong>$charset</strong> 指定了 <strong>$str</strong> 的字符集名。 其默认值由当前的 NLS 设置
                                   （<return>mbstring.language</return>）来确定。
  <info>string|null</info>  <strong>$transfer_encoding</strong>  <strong>$transfer_encoding</strong> 指定了 MIME 的编码方案。 它可以是
                                   <return>"B"</return>（Base64）也可以是 <return>"Q"</return>（Quoted-Printable）。 如果未设置，将回
                                   退为 <return>"B"</return>。
  <info>string</info>       <strong>$newline</strong>            <strong>$newline</strong> 指定了 EOL（行尾）标记，使 <strong>mb_encode_mimeheader()</strong> 执行了
                                   一个换行（RFC 文档中规定，超过长度的一行将换成多行，当前该长度硬
                                   式编码为 74 个字符）。 如果没有设定，则回退为 <return>"\r\n"</return> (CRLF)。
  <info>int</info>          <strong>$indent</strong>             首行缩进（header 里 <strong>$string</strong> 前的字符数目）。

<comment>Return:</comment>
  <info>string</info>  转换后的<info>字符串</info>版本以 ASCII 形式表达。

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


id: mb_encode_numericentity
type: function
doc:
<comment>Description:</comment>
  Encode character to HTML numeric string reference
  
  Converts specified character codes in <info>string</info> <strong>$string</strong> from character code to HTML numeric character
  reference.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    The <info>string</info> being encoded.
  <info>array</info>        <strong>$map</strong>       <strong>$map</strong> is array specifies code area to convert.
  <info>string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong>
                          参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。
  <info>bool</info>         <strong>$hex</strong>       Whether the returned entity reference should be in hexadecimal notation
                          (otherwise it is in decimal notation).

<comment>Return:</comment>
  <info>string</info>  The converted <info>string</info>.

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


id: mb_encoding_aliases
type: function
doc:
<comment>Description:</comment>
  Get aliases of a known encoding type
  
  Returns an array of aliases for a known <strong>$encoding</strong> type.

<comment>Param:</comment>
  <info>string</info>  <strong>$encoding</strong>  The encoding type being checked, for aliases.

<comment>Return:</comment>
  <info>array</info>  Returns a numerically indexed array of encoding aliases.

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


id: mb_ereg
type: function
doc:
<comment>Description:</comment>
  Regular expression match with multibyte support
  
  Executes the regular expression match with multibyte support.

<comment>Param:</comment>
  <info>string</info>  <strong>$pattern</strong>  The search pattern.
  <info>string</info>  <strong>$string</strong>   The search <info>string</info>.
  <info>array</info>   <strong>$matches</strong>  If matches are found for parenthesized substrings of <strong>$pattern</strong> and the function
                    is called with the third argument <strong>$matches</strong>, the matches will be stored in the
                    elements of the array <strong>$matches</strong>. If no matches are found, <strong>$matches</strong> is set to an
                    empty array.
                    
                    $matches[1] will contain the substring which starts at the first left
                    parenthesis; $matches[2] will contain the substring starting at the second, and
                    so on. $matches[0] will contain a copy of the complete string matched.

<comment>Return:</comment>
  <info>bool</info>  Returns whether <strong>$pattern</strong> matches <strong>$string</strong>.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_eregi()</strong>


id: mb_ereg_match
type: function
doc:
<comment>Description:</comment>
  Regular expression match for multibyte string
  
  A regular expression match for a multibyte string <strong>$pattern</strong> is only matched at the beginning of
  <strong>$string</strong>.
  
  <strong>$pattern</strong> is only matched at the beginning of <strong>$string</strong>.

<comment>Param:</comment>
  <info>string</info>       <strong>$pattern</strong>  The regular expression pattern.
  <info>string</info>       <strong>$string</strong>   The <info>string</info> being evaluated.
  <info>string|null</info>  <strong>$options</strong>  The search option. See <strong>mb_regex_set_options()</strong> for explanation.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$string</strong> matches the regular expression <strong>$pattern</strong>, <info>false</info> if not.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg()</strong>


id: mb_ereg_replace
type: function
doc:
<comment>Description:</comment>
  Replace regular expression with multibyte support
  
  Scans <strong>$string</strong> for matches to <strong>$pattern</strong>, then replaces the matched text with <strong>$replacement</strong>

<comment>Param:</comment>
  <info>string</info>       <strong>$pattern</strong>      The regular expression pattern.
                             
                             Multibyte characters may be used in <strong>$pattern</strong>.
  <info>string</info>       <strong>$replacement</strong>  The replacement text.
  <info>string</info>       <strong>$string</strong>       The <info>string</info> being checked.
  <info>string|null</info>  <strong>$options</strong>      The search option. See <strong>mb_regex_set_options()</strong> for explanation.

<comment>Return:</comment>
  <info>string|false|null</info>  The resultant <info>string</info> on success, or <info>false</info> on error. If <strong>$string</strong> is not valid for
                     the current encoding, <info>null</info> is returned.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_eregi_replace()</strong>


id: mb_ereg_replace_callback
type: function
doc:
<comment>Description:</comment>
  Perform a regular expression search and replace with multibyte support using a callback
    
  
  Scans <strong>$string</strong> for matches to <strong>$pattern</strong>, then replaces the matched text with the output of <strong>$callback</strong>
  function.
  
  The behavior of this function is almost identical to <strong>mb_ereg_replace()</strong>,  except for the fact that
  instead of <strong>$replacement</strong> parameter, one should specify a <strong>$callback</strong>.

<comment>Param:</comment>
  <info>string</info>       <strong>$pattern</strong>   The regular expression pattern.
                          
                          Multibyte characters may be used in <strong>$pattern</strong>.
  <info>callable</info>     <strong>$callback</strong>  A callback that will be called and passed an array of matched elements in
                          the  <strong>$subject</strong> string. The callback should return the replacement string.
                          
                          You'll often need the <strong>$callback</strong> function for a <strong>mb_ereg_replace_callback()</strong>
                          in just one place. In this case you can use an anonymous function to
                          declare the callback within the call to <strong>mb_ereg_replace_callback()</strong>. By
                          doing it this way you have all information for the call in one place and
                          do not clutter the function namespace with a callback function's name not
                          used anywhere else.
  <info>string</info>       <strong>$string</strong>    The <info>string</info> being checked.
  <info>string|null</info>  <strong>$options</strong>   The search option. See <strong>mb_regex_set_options()</strong> for explanation.

<comment>Return:</comment>
  <info>string|false|null</info>  The resultant <info>string</info> on success, or <info>false</info> on error. If <strong>$string</strong> is not valid for
                     the current encoding, <info>null</info> is returned.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg_replace()</strong>
   * Anonymous functions


id: mb_ereg_search
type: function
doc:
<comment>Description:</comment>
  Multibyte regular expression match for predefined multibyte string
  
  Performs a multibyte regular expression match for a predefined multibyte string.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$pattern</strong>  The search pattern.
  <info>string|null</info>  <strong>$options</strong>  The search option. See <strong>mb_regex_set_options()</strong> for explanation.

<comment>Return:</comment>
  <info>bool</info>  <strong>mb_ereg_search()</strong> returns <info>true</info> if the multibyte string matches with the regular expression,
        or <info>false</info> otherwise. The <info>string</info> for matching is set by  <strong>mb_ereg_search_init()</strong>. If <strong>$pattern</strong> is
        not specified, the previous one is used.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg_search_init()</strong>


id: mb_ereg_search_getpos
type: function
doc:
<comment>Description:</comment>
  Returns start point for next regular expression match
  
  Returns the start point for the next regular expression match.

<comment>Return:</comment>
  <info>int</info>  <strong>mb_ereg_search_getpos()</strong> returns the point to start regular expression match for
       <strong>mb_ereg_search()</strong>, <strong>mb_ereg_search_pos()</strong>, <strong>mb_ereg_search_regs()</strong>. The position is represented by
       bytes from the head of string.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg_search_setpos()</strong>


id: mb_ereg_search_getregs
type: function
doc:
<comment>Description:</comment>
  Retrieve the result from the last multibyte regular expression match
  
  Retrieve the result from the last multibyte regular expression match

<comment>Return:</comment>
  <info>array|false</info>  An <info>array</info> including the sub-string of matched part by last <strong>mb_ereg_search()</strong>,
               <strong>mb_ereg_search_pos()</strong>, <strong>mb_ereg_search_regs()</strong>. If there are some matches, the first
               element will have the matched sub-string, the second element will have the first part
               grouped with brackets,  the third element will have the second part grouped with
               brackets, and so on. It returns <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg_search_init()</strong>


id: mb_ereg_search_init
type: function
doc:
<comment>Description:</comment>
  Setup string and regular expression for a multibyte regular expression match
  
  <strong>mb_ereg_search_init()</strong> sets <strong>$string</strong> and <strong>$pattern</strong> for a multibyte regular expression. These values
  are used for <strong>mb_ereg_search()</strong>, <strong>mb_ereg_search_pos()</strong>, and <strong>mb_ereg_search_regs()</strong>.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>   The search string.
  <info>string|null</info>  <strong>$pattern</strong>  The search pattern.
  <info>string|null</info>  <strong>$options</strong>  The search option. See <strong>mb_regex_set_options()</strong> for explanation.

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

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg_search_regs()</strong>


id: mb_ereg_search_pos
type: function
doc:
<comment>Description:</comment>
  Returns position and length of a matched part of the multibyte regular expression for a predefined
  multibyte string
  
  Returns position and length of a matched part of the multibyte regular expression  for a
  predefined multibyte string
  
  The string for match is specified by <strong>mb_ereg_search_init()</strong>. If it is not specified, the previous
  one will be used.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$pattern</strong>  The search pattern.
  <info>string|null</info>  <strong>$options</strong>  The search option. See <strong>mb_regex_set_options()</strong> for explanation.

<comment>Return:</comment>
  <info>array|false</info>  An <info>array</info> containing two elements. The first element is the offset, in bytes, where
               the match begins relative to the start of the search string, and the second element
               is the length in bytes of the match.
               
               If an error occurs, <info>false</info> is returned.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg_search_init()</strong>


id: mb_ereg_search_regs
type: function
doc:
<comment>Description:</comment>
  Returns the matched part of a multibyte regular expression
  
  Returns the matched part of a multibyte regular expression.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$pattern</strong>  The search pattern.
  <info>string|null</info>  <strong>$options</strong>  The search option. See <strong>mb_regex_set_options()</strong> for explanation.

<comment>Return:</comment>
  <info>array|false</info>  <strong>mb_ereg_search_regs()</strong> executes the multibyte regular expression match, and if there
               are some matched part, it returns an <info>array</info> including substring of matched part as
               first element, the first grouped part with brackets as second element, the second
               grouped part as third element, and so on.  It returns <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg_search_init()</strong>


id: mb_ereg_search_setpos
type: function
doc:
<comment>Description:</comment>
  Set start point of next regular expression match
  
  <strong>mb_ereg_search_setpos()</strong> sets the starting point of a match for <strong>mb_ereg_search()</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$offset</strong>  The position to set. If it is negative, it counts from the end of the string.

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

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg_search_init()</strong>


id: mb_eregi
type: function
doc:
<comment>Description:</comment>
  Regular expression match ignoring case with multibyte support
  
  Executes the case insensitive regular expression match with multibyte support.

<comment>Param:</comment>
  <info>string</info>  <strong>$pattern</strong>  The regular expression pattern.
  <info>string</info>  <strong>$string</strong>   The <info>string</info> being searched.
  <info>array</info>   <strong>$matches</strong>  If matches are found for parenthesized substrings of <strong>$pattern</strong> and the function
                    is called with the third argument <strong>$matches</strong>, the matches will be stored in the
                    elements of the array <strong>$matches</strong>. If no matches are found, <strong>$matches</strong> is set to an
                    empty array.
                    
                    $matches[1] will contain the substring which starts at the first left
                    parenthesis; $matches[2] will contain the substring starting at the second, and
                    so on. $matches[0] will contain a copy of the complete string matched.

<comment>Return:</comment>
  <info>bool</info>  Returns whether <strong>$pattern</strong> matches <strong>$string</strong>.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg()</strong>


id: mb_eregi_replace
type: function
doc:
<comment>Description:</comment>
  Replace regular expression with multibyte support ignoring case
  
  Scans <strong>$string</strong> for matches to <strong>$pattern</strong>, then replaces the matched text with <strong>$replacement</strong>.

<comment>Param:</comment>
  <info>string</info>       <strong>$pattern</strong>      The regular expression pattern.  Multibyte characters may be used. The
                             case will be ignored.
  <info>string</info>       <strong>$replacement</strong>  The replacement text.
  <info>string</info>       <strong>$string</strong>       The searched <info>string</info>.
  <info>string|null</info>  <strong>$options</strong>      The search option. See <strong>mb_regex_set_options()</strong> for explanation.

<comment>Return:</comment>
  <info>string|false|null</info>  The resultant <info>string</info> or <info>false</info> on error.  If <strong>$string</strong> is not valid for the
                     current encoding, <info>null</info> is returned.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg_replace()</strong>


id: mb_get_info
type: function
doc:
<comment>Description:</comment>
  获取 mbstring 的内部设置
  
  <strong>mb_get_info()</strong> 返回 mbstring 参数的内部设定。

<comment>Param:</comment>
  <info>string</info>  <strong>$type</strong>  如果没有设定 <strong>$type</strong> 或者将其设定为 <return>"all"</return> 将会返回以下内容 <return>"internal_encoding"</return>,
                 <return>"http_input"</return>, <return>"http_output"</return>, <return>"http_output_conv_mimetypes"</return>, <return>"mail_charset"</return>,
                 <return>"mail_header_encoding"</return>, <return>"mail_body_encoding"</return>, <return>"illegal_chars"</return>,
                 <return>"encoding_translation"</return>, <return>"language"</return>, <return>"detect_order"</return>, <return>"substitute_character"</return> 和
                 <return>"strict_detection"</return>。
                 
                 如果 <strong>$type</strong> 设定为类似 <return>"internal_encoding"</return>, <return>"http_input"</return>, <return>"http_output"</return>,
                 <return>"http_output_conv_mimetypes"</return>, <return>"mail_charset"</return>, <return>"mail_header_encoding"</return>,
                 <return>"mail_body_encoding"</return>, <return>"illegal_chars"</return>, <return>"encoding_translation"</return>, <return>"language"</return>,
                 <return>"detect_order"</return>, <return>"substitute_character"</return> 或 <return>"strict_detection"</return>，将返回该参数的设置。

<comment>Return:</comment>
  <info>mixed</info>  如果没有指定 <strong>$type</strong> 将返回类型信息的数组，否则将返回指定 <strong>$type</strong> 的信息。 或者在失败时返回
         <info>false</info>。

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_http_output()</strong>


id: mb_http_input
type: function
doc:
<comment>Description:</comment>
  检测 HTTP 输入字符编码
  
  检测 HTTP 输入字符的编码。

<comment>Param:</comment>
  <info>string|null</info>  <strong>$type</strong>  设置的字符串指定了输入类型。 <return>"G"</return> 是 GET，<return>"P"</return> 是 POST，<return>"C"</return> 是 COOKIE，<return>"S"</return> 是
                      string，<return>"L"</return> 是 list，以及 <return>"I"</return> 是整个列表（将会返回 <info>array</info>）。 如果省略了 type，
                      它将返回最后处理的一种输入类型。

<comment>Return:</comment>
  <info>array|string|false</info>  每个 <strong>$type</strong> 的字符编码名称，如果 <strong>$type</strong> 是 <return>"I"</return> 时为字符编码名称数组。 如果
                      <strong>mb_http_input()</strong> 没有处理过任何指定的 HTTP 输入，它将返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mb_internal_encoding()</strong>
   * <strong>mb_http_output()</strong>
   * <strong>mb_detect_order()</strong>


id: mb_http_output
type: function
doc:
<comment>Description:</comment>
  设置/获取 HTTP 输出字符编码
  
  设置/获取 HTTP 输出字符编码。此函数被调用之后输出的内容会被转换成 <strong>$encoding</strong>。

<comment>Param:</comment>
  <info>string|null</info>  <strong>$encoding</strong>  如果设置了 <strong>$encoding</strong>，<strong>mb_http_output()</strong> 设置 HTTP 输出字符编码为
                          <strong>$encoding</strong>。
                          
                          如果省略了 <strong>$encoding</strong>，<strong>mb_http_output()</strong> 返回当前的 HTTP 输出字符编码。

<comment>Return:</comment>
  <info>string|bool</info>  如果省略了 <strong>$encoding</strong>，<strong>mb_http_output()</strong> 返回当前的 HTTP 输出字符编码。 否则成功时返回
               <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mb_internal_encoding()</strong>
   * <strong>mb_http_input()</strong>
   * <strong>mb_detect_order()</strong>


id: mb_internal_encoding
type: function
doc:
<comment>Description:</comment>
  设置/获取内部字符编码
  
  设置/获取内部字符编码

<comment>Param:</comment>
  <info>string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong> 字符编码名称使用于 HTTP 输入字符编码转换、HTTP 输出字符编码转
                          换、mbstring 模块系列函数字符编码转换的默认编码。内部编码与多字节正则表达
                          式的编码完全不同。

<comment>Return:</comment>
  <info>string|bool</info>  如果设置了 <strong>$encoding</strong>，则成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 在这种情况下，多字
               节正则表达式的字符编码不会改变。 如果省略了 <strong>$encoding</strong>，则返回当前的字符编码名称。

<comment>See Also:</comment>
   * <strong>mb_http_input()</strong>
   * <strong>mb_http_output()</strong>
   * <strong>mb_detect_order()</strong>
   * <strong>mb_regex_encoding()</strong>


id: mb_language
type: function
doc:
<comment>Description:</comment>
  设置/获取当前的语言
  
  设置/获取当前的语言。

<comment>Param:</comment>
  <info>string|null</info>  <strong>$language</strong>  用于编码邮件信息。下表列出了有效的语言。 <strong>mb_send_mail()</strong> 使用了该设置来对邮
                          件进行编码。

<comment>Return:</comment>
  <info>string|bool</info>  如果设置了 <strong>$language</strong>，并且 <strong>$language</strong> 是有效的，它将返回 <info>true</info>。否则将返回 <info>false</info>。 当省
               略了 <strong>$language</strong> 或为 <info>null</info> 时，将返回语言名称的 <info>string</info>。

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


id: mb_list_encodings
type: function
doc:
<comment>Description:</comment>
  返回所有支持编码的数组
  
  返回所有支持编码的数组。

<comment>Return:</comment>
  <info>array</info>  返回一个数字索引数组。

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


id: mb_ord
type: function
doc:
<comment>Description:</comment>
  获取字符的 Unicode 码位值
  
  返回所给定的字符的 Unicode 码位值。
  
  此函数与 <strong>mb_chr()</strong> 互补。

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    一个字符串。
  <info>string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong>
                          参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。

<comment>Return:</comment>
  <info>int|false</info>  <return>string</return> 第一个字符的 Unicode 码位值， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mb_internal_encoding()</strong>
   * <strong>mb_chr()</strong>
   * <strong>IntlChar::ord()</strong>
   * <strong>ord()</strong>


id: mb_output_handler
type: function
doc:
<comment>Description:</comment>
  在输出缓冲中转换字符编码的回调函数
  
  <strong>mb_output_handler()</strong> 是一个 <strong>ob_start()</strong> 回调函数。  <strong>mb_output_handler()</strong> 将输出缓冲中的字符从内部字符
  编码转换为 HTTP 输出的字符编码。

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  输出缓冲的内容。
  <info>int</info>     <strong>$status</strong>  输出缓冲的状态。

<comment>Return:</comment>
  <info>string</info>  转换后的 <info>string</info>。

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


id: mb_parse_str
type: function
doc:
<comment>Description:</comment>
  解析 GET/POST/COOKIE 数据并设置全局变量
  
  解析 GET/POST/COOKIE 数据并设置全局变量。 由于 PHP 不提供原始 POST/COOKIE 数据，目前它仅能够用于
  GET 数据。 它解析了 URL 编码过的数据，检测其编码，并转换编码为内部编码，然后设置其值为 <info>array</info> 的
  <strong>$result</strong> 或者全局变量。

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  URL 编码过的数据。
  <info>array</info>   <strong>$result</strong>  一个 <info>array</info>，包含解码过的、编码转换后的值。

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

<comment>See Also:</comment>
   * <strong>mb_detect_order()</strong>
   * <strong>mb_internal_encoding()</strong>


id: mb_preferred_mime_name
type: function
doc:
<comment>Description:</comment>
  获取 MIME 字符串
  
  获取指定编码的 MIME 字符 <info>string</info>。

<comment>Param:</comment>
  <info>string</info>  <strong>$encoding</strong>  要检查的字符串。

<comment>Return:</comment>
  <info>string|false</info>  字符编码 <strong>$encoding</strong> 的 MIME <return>charset</return> <info>string</info>，如果指定 <strong>$encoding</strong> 没有首选字符集，则为
                <info>false</info>。


id: mb_regex_encoding
type: function
doc:
<comment>Description:</comment>
  Set/Get character encoding for multibyte regex
  
  Set/Get character encoding for a multibyte regex.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong>
                          参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。

<comment>Return:</comment>
  <info>string|bool</info>  If <strong>$encoding</strong> is set, then  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。  In this case,
               the internal character encoding is NOT changed. If <strong>$encoding</strong> is omitted, then  the
               current character encoding name for a multibyte regex is returned.

<comment>See Also:</comment>
   * <strong>mb_internal_encoding()</strong>
   * <strong>mb_ereg()</strong>


id: mb_regex_set_options
type: function
doc:
<comment>Description:</comment>
  Set/Get the default options for mbregex functions
  
  Sets the default options described by <strong>$options</strong>  for multibyte regex functions.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$options</strong>  The options to set. This is a string where each  character is an option. To
                         set a mode, the mode  character must be the last one set, however there
                         can only be set one mode but multiple options.
                         
                         The <return>"e"</return> option has no effect when set through <strong>mb_regex_set_options()</strong>. Use
                         it with <strong>mb_ereg_replace()</strong> or <strong>mb_eregi_replace()</strong>.

<comment>Return:</comment>
  <info>string</info>  The previous options. If <strong>$options</strong> is omitted or <info>null</info>,  it returns the <info>string</info> that
          describes the current options.

<comment>See Also:</comment>
   * <strong>mb_split()</strong>
   * <strong>mb_ereg()</strong>
   * <strong>mb_eregi()</strong>


id: mb_scrub
type: function
doc:
<comment>Description:</comment>
  Replace ill-formed byte sequences with the substitute character
  
  Perform a character set conversion from the specified encoding, or the default encoding if no
  encoding was specified, to the same encoding. This has the effect of replacing any invalid byte
  sequences with the substitute character.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    The input string.
  <info>string|null</info>  <strong>$encoding</strong>  The encoding used to interpret <strong>$string</strong>. If it is omitted or <info>null</info>, the
                          mbstring.internal_encoding setting will be used if set, otherwise the
                          default_charset setting will be used.

<comment>Return:</comment>
  <info>string</info>  The <info>string</info> result with invalid byte sequences replaced.


id: mb_send_mail
type: function
doc:
<comment>Description:</comment>
  发送编码过的邮件
  
  发送邮件。邮件头和内容根据 <strong>mb_language()</strong> 设置来转换编码。 这是 <strong>mail()</strong> 的一个包装器函数，所以详情参
  见 <strong>mail()</strong>。

<comment>Param:</comment>
  <info>string</info>        <strong>$to</strong>                  被发送到该邮件地址。可通过逗号分隔地址的 <strong>$to</strong> 来指定多个收件人。
                                     该参数不会被自动编码。
  <info>string</info>        <strong>$subject</strong>             邮件标题。
  <info>string</info>        <strong>$message</strong>             邮件消息。
  <info>array|string</info>  <strong>$additional_headers</strong>  要插入到电子邮件标头末尾的 <info>string</info> 或 <info>array</info>。
                                     
                                     这通常用于添加额外的标头（发件人、抄送和密件抄送）。多个额外的
                                     标头应该用 CRLF（\r\n）分隔。验证参数不会被攻击者注入不需要的标
                                     头。
                                     
                                     如果传递 <info>array</info>，则其键是标头名称，其值是相应的标头值。
                                     
                                     发送邮件时，邮件必须包含 <return>From</return> 标头。这可以使用
                                     <strong>$additional_headers</strong> 参数设置，或者可以在 php.ini 中设置默认值。
                                     
                                     如果不这样做，将导致类似于 <return>Warning: mail(): "sendmail_from" not
                                     set in php.ini or custom "From:" header missing</return> 的错误消息。
                                     <return>From</return> 标头还设置了 Windows 下的 <return>Return-Path</return>。
                                     
                                     如果未收到消息，请尝试仅使用 LF（\n）。一些 Unix 邮件传输代理
                                     （最著名的是 qmail）自动将 LF 替换为 CRLF（如果使用 CRLF，这会
                                     导致两个 CR）。这应该是最后的手段，因为它不符合 RFC 2822。
  <info>string|null</info>   <strong>$additional_params</strong>   <strong>$additional_params</strong> 是一个 MTA 命令行参数。在使用 sendmail 时对
                                     设置正确的返回路径头很有帮助。
                                     
                                     该参数由 <strong>escapeshellcmd()</strong> 内部转义以防止命令执行。
                                     <strong>escapeshellcmd()</strong> 阻止命令执行，但允许添加额外的参数。出于安全原
                                     因，应该验证此参数。
                                     
                                     Since <strong>escapeshellcmd()</strong> is applied automatically, some
                                     characters that are allowed as email addresses by internet RFCs
                                     cannot be used. Programs that are required to use these
                                     characters <strong>mail()</strong> cannot be used.
                                     
                                     Web 服务器运行的用户应作为受信任的用户添加到 sendmail 配置中，
                                     以防止在使用此方法设置信封发件人（-f）时将“X-Warning”标头添加到
                                     邮件中。对于 sendmail 用户，此文件为 /etc/mail/trusted-users。

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

<comment>See Also:</comment>
   * <strong>mail()</strong>
   * <strong>mb_encode_mimeheader()</strong>
   * <strong>mb_language()</strong>


id: mb_split
type: function
doc:
<comment>Description:</comment>
  使用正则表达式分割多字节字符串
  
  使用正则表达式 <strong>$pattern</strong> 分割多字节 <strong>$string</strong> 并返回结果 <info>array</info>。

<comment>Param:</comment>
  <info>string</info>  <strong>$pattern</strong>  正则表达式。
  <info>string</info>  <strong>$string</strong>   待分割的 <info>string</info>。
  <info>int</info>     <strong>$limit</strong>    如果指定了可选参数 <strong>$limit</strong>，将最多分割为 <strong>$limit</strong> 个元素。

<comment>Return:</comment>
  <info>array|false</info>  结果为 <info>array</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg()</strong>


id: mb_str_pad
type: function
doc:
<comment>Description:</comment>
  Pad a multibyte string to a certain length with another multibyte string
  
  This function returns the <strong>$string</strong> padded on the left, the right, or both sides to the specified
  padding length, where the length is measured in Unicode codepoints. If the optional argument
  <strong>$pad_string</strong> is not supplied, the <strong>$string</strong> is padded with spaces, otherwise it is padded with
  characters from <strong>$pad_string</strong> up to the limit.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>      The input string.
  <info>int</info>          <strong>$length</strong>      If the value of <strong>$length</strong> is negative, less than, or equal to the length
                            of the input string, no padding takes place, and <strong>$string</strong> will be
                            returned.
  <info>string</info>       <strong>$pad_string</strong>  The <strong>$pad_string</strong> may be truncated if the required number of padding
                            characters can't be evenly divided by the <strong>$pad_string</strong>'s length.
  <info>int</info>          <strong>$pad_type</strong>    Optional argument <strong>$pad_type</strong> can be <info>STR_PAD_RIGHT</info>, <info>STR_PAD_LEFT</info>, or
                            <info>STR_PAD_BOTH</info>. By default <info>STR_PAD_RIGHT</info>.
  <info>string|null</info>  <strong>$encoding</strong>    <strong>$encoding</strong>
                            参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。

<comment>Return:</comment>
  <info>string</info>  Returns the padded string.


id: mb_str_split
type: function
doc:
<comment>Description:</comment>
  指定多字节字符串，返回其字符数组
  
  此函数将返回一个字符串数组，这是一个支持字符变长编码以及 1、2、4 字节字符定长编码版本的
  <strong>str_split()</strong>。 如果指定了 <strong>$length</strong> 参数，则将字符串按指定的字符长度（而不是字节长度）拆分为块。 可以
  选择指定 <strong>$encoding</strong> 参数，这样是很好的做法。

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    要拆分为单个字符或块的字符串。
  <info>int</info>          <strong>$length</strong>    如果指定，则返回的数组中的每个元素将会由多个字符而不是单个字符组成。
  <info>string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong>
                          参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。
                          
                          一个字符串，用于指定一种受支持的编码。

<comment>Return:</comment>
  <info>array</info>  <strong>mb_str_split()</strong> 返回字符串数组。

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


id: mb_strcut
type: function
doc:
<comment>Description:</comment>
  获取字符的一部分
  
  <strong>mb_strcut()</strong> 和 <strong>mb_substr()</strong> 类似，都是从字符串中提取子字符串，但是按字节数来执行，而不是字符个数。
  如果截断位置位于多字节字符两个字节的中间，将于该字符的第一个字节开始执行。 这也是和 <strong>substr()</strong> 函数
  的不同之处，后者简单地将字符串在字节之间截断，这将导致一个畸形的字节序列。

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    要截断的 <info>string</info>。
  <info>int</info>          <strong>$start</strong>     如果 <strong>$start</strong> 不是负数，返回的字符串会从 <strong>$string</strong> 的第 <strong>$start</strong> 字节位置开始，
                          从 0 开始计数。举个例子，字符串 '<return>abcdef</return>'，字节位置 <return>0</return> 的字符是 '<return>a</return>'，字节位
                          置 <return>2</return> 的字符是 '<return>c</return>'，以此类推。
                          
                          如果 <strong>$start</strong> 是负数，返回的字符串是从 <strong>$string</strong> 末尾倒数第 <strong>$start</strong> 个字节开始
                          的。但是，如果负 <strong>$start</strong> 大于字符串的长度，则返回的部分将从 <strong>$string</strong> 的开头
                          开始。
  <info>int|null</info>     <strong>$length</strong>    字节长度。如果省略或传递 <return>NULL</return>，则将所有字节提取到字符串的末尾。
                          
                          如果 <strong>$length</strong> 为负数，则返回的字符串将在从 <strong>$string</strong> 末尾倒数的第 <strong>$length</strong> 个
                          字节处结束。但是，如果负 <strong>$length</strong> 大于 <strong>$start</strong> 位置之后的字符数，则返回空字
                          符串。
  <info>string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong>
                          参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。

<comment>Return:</comment>
  <info>string</info>  <strong>mb_strcut()</strong> 根据 <strong>$start</strong> 和 <strong>$length</strong> 参数返回 <strong>$string</strong> 的一部分。

<comment>See Also:</comment>
   * <strong>mb_substr()</strong>
   * <strong>mb_internal_encoding()</strong>


id: mb_strimwidth
type: function
doc:
<comment>Description:</comment>
  获取按指定宽度截断的字符串
  
  将 <info>string</info> <strong>$string</strong> 截断到指定 <strong>$width</strong>。其中半角字符计为 <return>1</return>，全角字符计为 <return>2</return>。有关东亚字符宽度的详细信
  息，请参阅 http://www.unicode.org/reports/tr11/。

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>       要截断的 <info>string</info>。
  <info>int</info>          <strong>$start</strong>        开始位置的偏移。从这些字符数开始的截取字符串。（默认是 0 个字符） 如果
                             start 是负数，就是字符串结尾处的字符数。
  <info>int</info>          <strong>$width</strong>        所需修剪的宽度。如果指定负宽度，则从字符串末尾开始计数。  从 PHP 8.3.0
                             起，传递负宽度已被弃用。
                             
                             从 PHP 8.3.0 起，传递负宽度已被弃用。
  <info>string</info>       <strong>$trim_marker</strong>  当字符串被截断的时候，将此字符串添加到截断后的末尾。
  <info>string|null</info>  <strong>$encoding</strong>     <strong>$encoding</strong>
                             参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。

<comment>Return:</comment>
  <info>string</info>  截断后的 <info>string</info>。如果设置了 <strong>$trim_marker</strong>，还将结尾处的字符替换为 <strong>$trim_marker</strong> ，并符合
          <strong>$width</strong> 的宽度。

<comment>See Also:</comment>
   * <strong>mb_strwidth()</strong>
   * <strong>mb_internal_encoding()</strong>


id: mb_stripos
type: function
doc:
<comment>Description:</comment>
  大小写不敏感地查找字符串在另一个字符串中首次出现的位置
  
  <strong>mb_stripos()</strong> 返回 <strong>$needle</strong> 在字符串 <strong>$haystack</strong> 中首次出现位置的数值。 和 <strong>mb_strpos()</strong> 不同的是，
  <strong>mb_stripos()</strong> 是大小写不敏感的。 如果 <strong>$needle</strong> 没找到，它将返回 <info>false</info>。

<comment>Param:</comment>
  <info>string</info>       <strong>$haystack</strong>  在这个字符串中查找获取 <strong>$needle</strong> 首次出现的位置
  <info>string</info>       <strong>$needle</strong>    在 <strong>$haystack</strong> 中查找这个字符串
  <info>int</info>          <strong>$offset</strong>    <strong>$haystack</strong> 里开始搜索的位置。如果是负数，就从字符串的尾部开始统计。
  <info>string|null</info>  <strong>$encoding</strong>  使用的字符编码名称。 如果省略了它，将使用内部字符编码。

<comment>Return:</comment>
  <info>int|false</info>  返回字符串 <strong>$haystack</strong> 中 <strong>$needle</strong> 首次出现位置的数值。 如果没有找到 <strong>$needle</strong>，它将返回
             <info>false</info>。

<comment>See Also:</comment>
   * <strong>stripos()</strong>
   * <strong>strpos()</strong>
   * <strong>mb_strpos()</strong>


id: mb_stristr
type: function
doc:
<comment>Description:</comment>
  大小写不敏感地查找字符串在另一个字符串里的首次出现
  
  <strong>mb_strstr()</strong> 查找了 <strong>$needle</strong> 在 <strong>$haystack</strong> 中首次的出现并返回 <strong>$haystack</strong> 的一部分。 和 <strong>mb_strstr()</strong> 不
  同的是，<strong>mb_stristr()</strong> 是大小写不敏感的。 如果 <strong>$needle</strong> 没有找到，它将返回 <info>false</info>。

<comment>Param:</comment>
  <info>string</info>       <strong>$haystack</strong>       要获取 <strong>$needle</strong> 首次出现的字符串。
  <info>string</info>       <strong>$needle</strong>         在 <strong>$haystack</strong> 中查找这个字符串。
  <info>bool</info>         <strong>$before_needle</strong>  决定这个函数返回 <strong>$haystack</strong> 的哪一部分。 如果设置为 <info>true</info>，它返回
                               <strong>$haystack</strong> 中从开始到 <strong>$needle</strong> 出现位置的所有字符（不包括 needle）。 如
                               果设置为 <info>false</info>，它返回 <strong>$haystack</strong> 中 <strong>$needle</strong> 出现位置到最后的所有字符
                               （包括了 needle）。
  <info>string|null</info>  <strong>$encoding</strong>       要使用的字符编码名称。 如果省略该参数，将使用内部字符编码。

<comment>Return:</comment>
  <info>string|false</info>  返回 <strong>$haystack</strong> 的一部分，或者 <strong>$needle</strong> 没找到则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>stristr()</strong>
   * <strong>strstr()</strong>
   * <strong>mb_strstr()</strong>


id: mb_strlen
type: function
doc:
<comment>Description:</comment>
  获取字符串的长度
  
  获取一个 <info>string</info> 的长度。

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    要检查长度的 <info>string</info>。
  <info>string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong>
                          参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。

<comment>Return:</comment>
  <info>int</info>  返回具有 <strong>$encoding</strong> 编码的 <info>string</info> <strong>$string</strong> 包含的字符数。 多字节的字符被计为 1。

<comment>See Also:</comment>
   * <strong>mb_internal_encoding()</strong>
   * <strong>grapheme_strlen()</strong>
   * <strong>iconv_strlen()</strong>
   * <strong>strlen()</strong>


id: mb_strpos
type: function
doc:
<comment>Description:</comment>
  查找字符串在另一个字符串中首次出现的位置
  
  查找 <info>string</info> 在一个 <info>string</info> 中首次出现的位置。
  
  基于字符数执行一个多字节安全的 <strong>strpos()</strong> 操作。 第一个字符的位置是 0，第二个字符的位置是 1，以此类
  推。

<comment>Param:</comment>
  <info>string</info>       <strong>$haystack</strong>  要被检查的 <info>string</info>。
  <info>string</info>       <strong>$needle</strong>    在 <strong>$haystack</strong> 中查找这个字符串。 和 <strong>strpos()</strong> 不同的是，数字的值不会被当做字
                          符的顺序值。
  <info>int</info>          <strong>$offset</strong>    搜索位置的偏移。如果没有提供该参数，将会使用 0。负数的 offset 会从字符串尾
                          部开始统计。
  <info>string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong>
                          参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。

<comment>Return:</comment>
  <info>int|false</info>  返回 <info>string</info> 的 <strong>$haystack</strong> 中 <strong>$needle</strong> 首次出现位置的数值。 如果没有找到 <strong>$needle</strong>，它将返回
             <info>false</info>。

<comment>See Also:</comment>
   * <strong>mb_internal_encoding()</strong>
   * <strong>strpos()</strong>


id: mb_strrchr
type: function
doc:
<comment>Description:</comment>
  查找指定字符在另一个字符串中最后一次的出现
  
  <strong>mb_strrchr()</strong> 查找了 <strong>$needle</strong> 在 <strong>$haystack</strong> 中最后一次出现的位置，并返回 <strong>$haystack</strong> 的部分。 如果没有
  找到 <strong>$needle</strong>，它将返回 <info>false</info>。

<comment>Param:</comment>
  <info>string</info>       <strong>$haystack</strong>       在该字符串中查找 <strong>$needle</strong> 最后出现的位置
  <info>string</info>       <strong>$needle</strong>         在 <strong>$haystack</strong> 中查找这个字符串
  <info>bool</info>         <strong>$before_needle</strong>  决定这个函数返回 <strong>$haystack</strong> 的哪一部分。 如果设置为 <info>true</info>，它将返回的字
                               符是从 <strong>$haystack</strong> 的开始到 <strong>$needle</strong> 最后出现的位置。  如果设置为
                               <info>false</info>，它将返回的字符是从 <strong>$needle</strong> 最后出现的位置到 <strong>$haystack</strong> 的末尾。
  <info>string|null</info>  <strong>$encoding</strong>       使用的字符编码名称。如果省略了，则将使用内部编码。

<comment>Return:</comment>
  <info>string|false</info>  返回 <strong>$haystack</strong> 的一部分。 或者在没有找到 <strong>$needle</strong> 时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>strrchr()</strong>
   * <strong>mb_strstr()</strong>
   * <strong>mb_strrichr()</strong>


id: mb_strrichr
type: function
doc:
<comment>Description:</comment>
  大小写不敏感地查找指定字符在另一个字符串中最后一次的出现
  
  <strong>mb_strrichr()</strong> 大小写不敏感地查找指定 <strong>$needle</strong> 在 <strong>$haystack</strong> 中最后一次的出现，并返回 <strong>$haystack</strong> 的一
  部分。 和 <strong>mb_strrchr()</strong> 不同的是，<strong>mb_strrichr()</strong> 是大小写不敏感的。 如果 <strong>$needle</strong> 没有找到，它将返回
  <info>false</info>。

<comment>Param:</comment>
  <info>string</info>       <strong>$haystack</strong>       在该字符串中查找 <strong>$needle</strong> 的最后出现位置
  <info>string</info>       <strong>$needle</strong>         在 <strong>$needle</strong> 中查找该字符串
  <info>bool</info>         <strong>$before_needle</strong>  决定这个函数返回 <strong>$haystack</strong> 的哪一部分。 如果设置为 <info>true</info>，它将返回的字
                               符是从 <strong>$haystack</strong> 的开始到 <strong>$needle</strong> 最后出现的位置。  如果设置为
                               <info>false</info>，它将返回的字符是从 <strong>$needle</strong> 最后出现的位置到 <strong>$haystack</strong> 的末尾。
  <info>string|null</info>  <strong>$encoding</strong>       使用的字符编码名称。如果省略了，则将使用内部编码。

<comment>Return:</comment>
  <info>string|false</info>  返回 <strong>$haystack</strong> 的一部分。 或者在没有找到 <strong>$needle</strong> 时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mb_stristr()</strong>
   * <strong>mb_strrchr()</strong>


id: mb_strripos
type: function
doc:
<comment>Description:</comment>
  大小写不敏感地在字符串中查找一个字符串最后出现的位置
  
  <strong>mb_strripos()</strong> 基于字符数执行一个多字节安全的 <strong>strripos()</strong> 操作。 <strong>$needle</strong> 的位置是从 <strong>$haystack</strong> 的开始
  进行统计的。 第一个字符的位置是 0，第二个字符的位置是 1。 和 <strong>mb_strrpos()</strong> 不同的是，<strong>mb_strripos()</strong>
  是大小写不敏感的。

<comment>Param:</comment>
  <info>string</info>       <strong>$haystack</strong>  查找 <strong>$needle</strong> 在这个字符串中最后出现的位置。
  <info>string</info>       <strong>$needle</strong>    在 <strong>$haystack</strong> 中查找这个字符串。
  <info>int</info>          <strong>$offset</strong>    在 <strong>$haystack</strong> 中开始搜索的位置。
  <info>string|null</info>  <strong>$encoding</strong>  使用的字符编码名称。如果省略了，则将使用内部编码。

<comment>Return:</comment>
  <info>int|false</info>  返回字符串 <strong>$haystack</strong> 中 <strong>$needle</strong> 最后出现位置的数值。 如果没有找到 <strong>$needle</strong>，它将返回
             <info>false</info>。

<comment>See Also:</comment>
   * <strong>strripos()</strong>
   * <strong>strrpos()</strong>
   * <strong>mb_strrpos()</strong>


id: mb_strrpos
type: function
doc:
<comment>Description:</comment>
  查找字符串在一个字符串中最后出现的位置
  
  基于字符数执行一个多字节安全的 <strong>strrpos()</strong> 操作。 <strong>$needle</strong> 的位置是从 <strong>$haystack</strong> 的开始进行统计的。 第
  一个字符的位置是 0，第二个字符的位置是 1。

<comment>Param:</comment>
  <info>string</info>       <strong>$haystack</strong>  查找 <strong>$needle</strong> 在这个 <info>string</info> 中最后出现的位置。
  <info>string</info>       <strong>$needle</strong>    在 <strong>$haystack</strong> 中查找这个 <info>string</info>。
  <info>int</info>          <strong>$offset</strong>    可以用于指定 <info>string</info> 里从任意字符数开始进行搜索。 负数的值将导致搜索会终止
                          于指向 <info>string</info> 末尾的任意点。
  <info>string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong>
                          参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。

<comment>Return:</comment>
  <info>int|false</info>  返回 <info>string</info> 的 <strong>$haystack</strong> 中，<strong>$needle</strong> 最后出现位置的数值。 如果没有找到 <strong>$needle</strong>，它将返
             回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mb_strpos()</strong>
   * <strong>mb_internal_encoding()</strong>
   * <strong>strrpos()</strong>


id: mb_strstr
type: function
doc:
<comment>Description:</comment>
  查找字符串在另一个字符串里的首次出现
  
  <strong>mb_strstr()</strong> 查找了 <strong>$needle</strong> 在 <strong>$haystack</strong> 中首次的出现并返回 <strong>$haystack</strong> 的一部分。 如果 <strong>$needle</strong> 没有
  找到，它将返回 <info>false</info>。

<comment>Param:</comment>
  <info>string</info>       <strong>$haystack</strong>       要获取 <strong>$needle</strong> 首次出现的字符串。
  <info>string</info>       <strong>$needle</strong>         在 <strong>$haystack</strong> 中查找这个字符串。
  <info>bool</info>         <strong>$before_needle</strong>  决定这个函数返回 <strong>$haystack</strong> 的哪一部分。 如果设置为 <info>true</info>，它返回
                               <strong>$haystack</strong> 中从开始到 <strong>$needle</strong> 出现位置的所有字符（不包括 needle）。 如
                               果设置为 <info>false</info>，它返回 <strong>$haystack</strong> 中 <strong>$needle</strong> 出现位置到最后的所有字符
                               （包括了 needle）。
  <info>string|null</info>  <strong>$encoding</strong>       要使用的字符编码名称。 如果省略该参数，将使用内部字符编码。

<comment>Return:</comment>
  <info>string|false</info>  返回 <strong>$haystack</strong> 的一部分，或者 <strong>$needle</strong> 没找到则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>stristr()</strong>
   * <strong>strstr()</strong>
   * <strong>mb_stristr()</strong>


id: mb_strtolower
type: function
doc:
<comment>Description:</comment>
  使字符串小写
  
  返回所有字母字符转换成小写的 <strong>$string</strong>。

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    要被小写的 <info>string</info>。
  <info>string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong>
                          参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。

<comment>Return:</comment>
  <info>string</info>  所有字母字符已被转换成小写的 <strong>$string</strong>。

<comment>See Also:</comment>
   * <strong>mb_strtoupper()</strong>
   * <strong>mb_convert_case()</strong>
   * <strong>strtolower()</strong>


id: mb_strtoupper
type: function
doc:
<comment>Description:</comment>
  使字符串大写
  
  将所有的字母字符转化成大写并返回 <strong>$string</strong>。

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    要大写的 <info>string</info>。
  <info>string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong>
                          参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。

<comment>Return:</comment>
  <info>string</info>  <strong>$string</strong> 里所有的字母都转换成大写的。

<comment>See Also:</comment>
   * <strong>mb_strtolower()</strong>
   * <strong>mb_convert_case()</strong>
   * <strong>strtoupper()</strong>


id: mb_strwidth
type: function
doc:
<comment>Description:</comment>
  返回字符串的宽度
  
  返回 <info>string</info> 类型 <strong>$string</strong> 的宽度，其中半角字符计为 <return>1</return>，全角字符计为 <return>2</return>。有关东亚字符宽度的详细信息，
  请参见 http://www.unicode.org/reports/tr11/。
  
  全角字符是： <return>U+1100</return>-<return>U+115F</return>, <return>U+11A3</return>-<return>U+11A7</return>, <return>U+11FA</return>-<return>U+11FF</return>, <return>U+2329</return>-<return>U+232A</return>, <return>U+2E80</return>-<return>U+2E99</return>,
  <return>U+2E9B</return>-<return>U+2EF3</return>, <return>U+2F00</return>-<return>U+2FD5</return>, <return>U+2FF0</return>-<return>U+2FFB</return>, <return>U+3000</return>-<return>U+303E</return>, <return>U+3041</return>-<return>U+3096</return>, <return>U+3099</return>-<return>U+30FF</return>,
  <return>U+3105</return>-<return>U+312D</return>, <return>U+3131</return>-<return>U+318E</return>, <return>U+3190</return>-<return>U+31BA</return>, <return>U+31C0</return>-<return>U+31E3</return>, <return>U+31F0</return>-<return>U+321E</return>, <return>U+3220</return>-<return>U+3247</return>,
  <return>U+3250</return>-<return>U+32FE</return>, <return>U+3300</return>-<return>U+4DBF</return>, <return>U+4E00</return>-<return>U+A48C</return>, <return>U+A490</return>-<return>U+A4C6</return>, <return>U+A960</return>-<return>U+A97C</return>, <return>U+AC00</return>-<return>U+D7A3</return>,
  <return>U+D7B0</return>-<return>U+D7C6</return>, <return>U+D7CB</return>-<return>U+D7FB</return>, <return>U+F900</return>-<return>U+FAFF</return>, <return>U+FE10</return>-<return>U+FE19</return>, <return>U+FE30</return>-<return>U+FE52</return>, <return>U+FE54</return>-<return>U+FE66</return>,
  <return>U+FE68</return>-<return>U+FE6B</return>, <return>U+FF01</return>-<return>U+FF60</return>, <return>U+FFE0</return>-<return>U+FFE6</return>, <return>U+1B000</return>-<return>U+1B001</return>, <return>U+1F200</return>-<return>U+1F202</return>, <return>U+1F210</return>-<return>U+1F23A</return>,
  <return>U+1F240</return>-<return>U+1F248</return>, <return>U+1F250</return>-<return>U+1F251</return>, <return>U+20000</return>-<return>U+2FFFD</return>, <return>U+30000</return>-<return>U+3FFFD</return>。 其它所有字符都是半角字符。

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    待解码的 <info>string</info>。
  <info>string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong>
                          参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。

<comment>Return:</comment>
  <info>int</info>  <info>string</info><strong>$string</strong> 的宽度。

<comment>See Also:</comment>
   * <strong>mb_strimwidth()</strong>
   * <strong>mb_internal_encoding()</strong>


id: mb_substitute_character
type: function
doc:
<comment>Description:</comment>
  设置/获取替代字符
  
  当输入字符的编码是无效的，或者字符代码不存在于输出的字符编码中时，可以为其指定一个替代字符。 无效
  字符可以被替换为 <return>"none"</return>（不输出）、<info>string</info> 或者 <info>int</info> 值（Unicode 字符代码的值）。
  
  该设置会影响 <strong>mb_convert_encoding()</strong>、 <strong>mb_convert_variables()</strong>、 <strong>mb_output_handler()</strong> 和
  <strong>mb_send_mail()</strong>。

<comment>Param:</comment>
  <info>string|int|null</info>  <strong>$substitute_character</strong>  指定 Unicode 值为一个 <info>int</info>，或者是以下 <info>string</info> 中的一个：
                                          <return>"none"</return>：不输出 <return>"long"</return>：输出字符代码的值（比如：<return>U+3000</return>、
                                          <return>JIS+7E7E</return>） <return>"entity"</return>：输出字符的实体（比如：<return>&#x200;</return>）
                                          
                                          <return>"none"</return>：不输出
                                          
                                          <return>"long"</return>：输出字符代码的值（比如：<return>U+3000</return>、<return>JIS+7E7E</return>）
                                          
                                          <return>"entity"</return>：输出字符的实体（比如：<return>&#x200;</return>）

<comment>Return:</comment>
  <info>string|int|bool</info>  如果设置了 <strong>$substitute_character</strong>，在成功时返回 <info>true</info>，失败时返回 <info>false</info>。 如果没有
                   设置 <strong>$substitute_character</strong>，它将返回当前设置。


id: mb_substr
type: function
doc:
<comment>Description:</comment>
  获取部分字符串
  
  根据字符数执行一个多字节安全的 <strong>substr()</strong> 操作。 位置是从 <strong>$string</strong> 的开始位置进行计数。 第一个字符的
  位置是 0。第二个字符的位置是 1，以此类推。

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    从该 <info>string</info> 中提取子字符串。
  <info>int</info>          <strong>$start</strong>     如果 <strong>$start</strong> 不是负数，返回的字符串会从 <strong>$string</strong> 第 <strong>$start</strong> 的位置开始，从 0
                          开始计数。举个例子，字符串 '<return>abcdef</return>'，位置 <return>0</return> 的字符是 '<return>a</return>'，位置 <return>2</return> 的字符是
                          '<return>c</return>'，以此类推。
                          
                          如果 <strong>$start</strong> 是负数，返回的字符串是从 <strong>$string</strong> 末尾处第 <strong>$start</strong> 个字符开始
                          的。
  <info>int|null</info>     <strong>$length</strong>    <strong>$string</strong> 中要使用的最大字符数。如果省略了此参数或者传入了 <return>NULL</return>，则会提取到
                          字符串的尾部。
  <info>string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong>
                          参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。

<comment>Return:</comment>
  <info>string</info>  <strong>mb_substr()</strong> 函数根据 <strong>$start</strong> 和 <strong>$length</strong> 参数返回 <strong>$string</strong> 中指定的部分。

<comment>See Also:</comment>
   * <strong>mb_strcut()</strong>
   * <strong>mb_internal_encoding()</strong>


id: mb_substr_count
type: function
doc:
<comment>Description:</comment>
  统计字符串出现的次数
  
  统计子字符串 <strong>$needle</strong> 出现在<info>字符串</info> <strong>$haystack</strong> 中的次数。

<comment>Param:</comment>
  <info>string</info>       <strong>$haystack</strong>  要检查的<info>字符串</info>。
  <info>string</info>       <strong>$needle</strong>    待查找的<info>字符串</info>。
  <info>string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong>
                          参数为字符编码。如果省略或是 <info>null</info>，则使用内部字符编码。

<comment>Return:</comment>
  <info>int</info>  子字符串 <strong>$needle</strong> 出现在 <info>string</info> <strong>$haystack</strong> 中的次数。

<comment>See Also:</comment>
   * <strong>mb_strpos()</strong>
   * <strong>mb_substr()</strong>
   * <strong>substr_count()</strong>


id: mcrypt_create_iv
type: function
doc:
<comment>Description:</comment>
  从随机源创建初始向量
  
  从随机源创建初始向量。
  
  初始向量只是为了给加密算法提供一个可用的种子， 所以它不需要安全保护， 你甚至可以随同密文一起发布初
  始向量也不会对安全性带来影响。

<comment>Param:</comment>
  <info>int</info>  <strong>$size</strong>    初始向量大小。
  <info>int</info>  <strong>$source</strong>  初始向量数据来源。可选值有： <info>MCRYPT_RAND</info> （系统随机数生成器）, <info>MCRYPT_DEV_RANDOM</info>
                （从 /dev/random 文件读取数据） 和 <info>MCRYPT_DEV_URANDOM</info> （从 /dev/urandom 文件读取数
                据）。 在 Windows 平台，PHP 5.3.0 之前的版本中，仅支持 <info>MCRYPT_RAND</info>。
                
                请注意，在 PHP 5.6.0 之前的版本中， 此参数的默认值为 <info>MCRYPT_DEV_RANDOM</info>。
                
                需要注意的是，如果没有更多可用的用来产生随机数据的信息，那么 <info>MCRYPT_DEV_RANDOM</info> 可能
                进入阻塞状态。

<comment>Return:</comment>
  <info>string</info>  返回初始向量。如果发生错误，则返回 <info>false</info>。

<comment>See Also:</comment>
   * http://www.ciphersbyritter.com/GLOSSARY.HTM#IV
   * http://www.quadibloc.com/crypto/co0409.htm
   * Applied Cryptography by Schneier (ISBN 0-471-11709-9) 9.3 节。
   * <strong>random_bytes()</strong>


id: mcrypt_decrypt
type: function
doc:
<comment>Description:</comment>
  使用给定参数解密密文
  
  解密 <strong>$data</strong> 并返回明文。

<comment>Param:</comment>
  <info>string</info>  <strong>$cipher</strong>  <info>MCRYPT_ciphername</info> 常量中的一个，或者是字符串值的算法名称。
  <info>string</info>  <strong>$key</strong>     数据加密密钥。 如果密钥长度不是加解密算法能够支持的有效长度， 那么会产生警告并且
                   返回 <info>false</info>
  <info>string</info>  <strong>$data</strong>    要使用给定的 <strong>$cipher</strong> 和 <strong>$mode</strong> 解密的数据。 如果数据大小不是 n * 分组大小，则在其
                   后追加 '<return>\0</return>' 来补齐。
  <info>string</info>  <strong>$mode</strong>    <info>MCRYPT_MODE_modename</info> 常量中的一个，或以下字符串中的一个："ecb"，"cbc"，"cfb"，
                   "ofb"，"nofb" 和 "stream"。
  <info>string</info>  <strong>$iv</strong>      Used for the initialization in CBC, CFB, OFB modes, and in some algorithms in
                   STREAM mode. If the provided IV size is not supported by the chaining mode or no
                   IV was provided, but the chaining mode requires one, the function will emit a
                   warning and return <info>false</info>.

<comment>Return:</comment>
  <info>string|false</info>  以字符串格式返回解密后的数据，  或者在失败时返回 <info>false</info>。

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


id: mcrypt_enc_get_algorithms_name
type: function
doc:
<comment>Description:</comment>
  返回打开的算法名称
  
  本函数返回算法名称。

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  加密描述符。

<comment>Return:</comment>
  <info>string</info>  以字符串格式返回打开的加密算法名称。


id: mcrypt_enc_get_block_size
type: function
doc:
<comment>Description:</comment>
  返回打开的算法的分组大小
  
  获取打开的算法的分组大小。

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  加密描述符。

<comment>Return:</comment>
  <info>int</info>  返回指定算法的分组大小，以字节为单位。


id: mcrypt_enc_get_iv_size
type: function
doc:
<comment>Description:</comment>
  返回打开的算法的初始向量大小
  
  本函数返回由加密描述符指定的算法所使用的初始向量大小， 以字节为单位。 在 cbc，cfb 和 ofb 模式以及
  某些流模式算法中会用到初始向量。

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  加密描述符。

<comment>Return:</comment>
  <info>int</info>  返回初始向量大小。如果算法忽略初始向量，则返回 0。


id: mcrypt_enc_get_key_size
type: function
doc:
<comment>Description:</comment>
  返回打开的模式所能支持的最长密钥
  
  返回打开的模式所能支持的最长密钥，以字节为单位。

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  加密描述符。

<comment>Return:</comment>
  <info>int</info>  返回打开的模式所能支持的最长密钥，以字节为单位。


id: mcrypt_enc_get_modes_name
type: function
doc:
<comment>Description:</comment>
  返回打开的模式的名称
  
  返回模式名称。

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  加密描述符。

<comment>Return:</comment>
  <info>string</info>  以字符串格式返回模式名称。


id: mcrypt_enc_get_supported_key_sizes
type: function
doc:
<comment>Description:</comment>
  以数组方式返回打开的算法所支持的密钥长度
  
  获取打开的算法所支持的密钥长度。

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  加密描述符。

<comment>Return:</comment>
  <info>array</info>  返回由加密描述符指定的算法所能够支持的密钥长度。 如果该算法支持从 1 到
         <strong>mcrypt_enc_get_key_size()</strong> 之间任意长度的密钥，则返回空数组。


id: mcrypt_enc_is_block_algorithm
type: function
doc:
<comment>Description:</comment>
  检测打开模式的算法是否为分组算法
  
  打开模式的算法是否为分组算法。

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  加密描述符。

<comment>Return:</comment>
  <info>bool</info>  如果是分组算法，返回 <info>true</info>， 如果是流模式，返回 <info>false</info>。


id: mcrypt_enc_is_block_algorithm_mode
type: function
doc:
<comment>Description:</comment>
  检测打开的模式是否支持分组加密
  
  打开的模式的算法是否支持分组加密 （例如： 如果是流模式，则返回 <info>false</info>， cbc，cfb，ofb 模式则返回
  <info>true</info>）。

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  加密描述符。

<comment>Return:</comment>
  <info>bool</info>  如果算法支持分组模式，返回 <info>true</info>， 反之返回 <info>false</info>。


id: mcrypt_enc_is_block_mode
type: function
doc:
<comment>Description:</comment>
  检测打开的模式是否以分组方式输出
  
  打开的模式是否以分组方式输出 （例如，对于 cbc 和 ecb 模式而言返回 <info>true</info>，对于 cfb 和流模式而言，返
  回 <info>false</info>）。

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  加密描述符。

<comment>Return:</comment>
  <info>bool</info>  如果模式以字节分组（字节块）方式输出，返回 <info>true</info>， 如果是以字节方式输出，返回 <info>false</info>。


id: mcrypt_enc_self_test
type: function
doc:
<comment>Description:</comment>
  在打开的模块上进行自检
  
  在 <strong>$td</strong> 指定的算法 上进行自检操作。

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  加密描述符。

<comment>Return:</comment>
  <info>int</info>  自检成功返回 <return>0</return>，失败则返回一个小于零的<info>int</info>。


id: mcrypt_encrypt
type: function
doc:
<comment>Description:</comment>
  使用给定参数加密明文
  
  加密数据并返回密文。

<comment>Param:</comment>
  <info>string</info>  <strong>$cipher</strong>  <info>MCRYPT_ciphername</info> 常量中的一个，或者是字符串值的算法名称。
  <info>string</info>  <strong>$key</strong>     加密密钥。 如果密钥长度不是该算法所能够支持的有效长度，则函数将会发出警告并返回
                   <info>false</info>
  <info>string</info>  <strong>$data</strong>    使用给定的 <strong>$cipher</strong> 和 <strong>$mode</strong> 加密的数据。 如果数据长度不是 n*分组大小，则在其后使
                   用 '<return>\0</return>' 补齐。
                   
                   返回的密文长度可能比 <strong>$data</strong>  更大。
  <info>string</info>  <strong>$mode</strong>    <info>MCRYPT_MODE_modename</info> 常量中的一个，或以下字符串中的一个："ecb"，"cbc"，"cfb"，
                   "ofb"，"nofb" 和 "stream"。
  <info>string</info>  <strong>$iv</strong>      Used for the initialization in CBC, CFB, OFB modes, and in some algorithms in
                   STREAM mode. If the provided IV size is not supported by the chaining mode or no
                   IV was provided, but the chaining mode requires one, the function will emit a
                   warning and return <info>false</info>.

<comment>Return:</comment>
  <info>string|false</info>  以字符串方式返回密文， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mcrypt_decrypt()</strong>
   * <strong>mcrypt_module_open()</strong>


id: mcrypt_generic
type: function
doc:
<comment>Description:</comment>
  加密数据
  
  本函数用来加密数据。 传入数据长度必须是 n * 分组大小，否则需要后补 "<return>\0</return>"。 本函数返回加密后的数据。
  注意，根据数据补齐不同， 返回的数据可能比输入的数据长度有所增加。
  
  如果你需要把加密后的数据保存到数据库， 请确保保存 mcrypt_generic 返回的完整的字符串， 否则将无法正
  确解密。 如果原始数据有 10 个字符，分组大小为 8  （使用 <strong>mcrypt_enc_get_block_size()</strong> 获取分组大
  小）， 则数据库中至少需要 16 个字符来保存数据。 请注意 <strong>mdecrypt_generic()</strong> 函数返回的数据也会是 16
  个字符。 使用 rtrim($str, "\0") 移除字符串末尾的 0 。
  
  如果你在例如 MySQL 这样的数据库中存储数据， 请注意 varchar 类型的字段会在插入数据时自动移除字符串
  末尾的“空格”。 由于加密后的数据可能是以空格（ASCII 32）结尾， 这种特性会导致数据损坏。 请使用
  tinyblob/tinytext（或 larger）字段来存储加密数据。

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>    加密描述符。
                   
                   在调用本函数之前， 请使用 <strong>mcrypt_generic_init()</strong> 函数初始化加密句柄。 在加密完成之
                   后， 需要调用 <strong>mcrypt_generic_deinit()</strong> 函数进行必要的清理工作。 请参见
                   <strong>mcrypt_module_open()</strong> 。
  <info>string</info>    <strong>$data</strong>  要加密的数据。

<comment>Return:</comment>
  <info>string</info>  返回加密后的数据。

<comment>See Also:</comment>
   * <strong>mdecrypt_generic()</strong>
   * <strong>mcrypt_generic_init()</strong>
   * <strong>mcrypt_generic_deinit()</strong>


id: mcrypt_generic_deinit
type: function
doc:
<comment>Description:</comment>
  对加密模块进行清理工作
  
  本函数终止由加密描述符（<strong>$td</strong>）指定的加密模块， 它会清理缓冲区，但是并不关闭模块。 要想关闭加密模
  块， 你需要自行调用 <strong>mcrypt_module_close()</strong> 函数。 （但是 PHP 会在脚本末尾为你关闭已打开的加密模块）

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  加密描述符。

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

<comment>See Also:</comment>
   * <strong>mcrypt_module_open()</strong>
   * <strong>mcrypt_generic_init()</strong>


id: mcrypt_generic_init
type: function
doc:
<comment>Description:</comment>
  初始化加密所需的缓冲区
  
  在每次调用 <strong>mcrypt_generic()</strong> 或 <strong>mdecrypt_generic()</strong> 函数之前必须调用本函数。

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>   加密描述符。
  <info>string</info>    <strong>$key</strong>  调用 <strong>mcrypt_enc_get_key_size()</strong> 函数获得的密钥最大长度。 小于最大长度的数值都被视为
                  非法参数。
  <info>string</info>    <strong>$iv</strong>   通常情况下，向量大小等于算法的分组大小， 但是你应该通过 <strong>mcrypt_enc_get_iv_size()</strong>
                  函数 来获得这个值。在 ECB 模式下，初始向量会被忽略， 在 CFB，CBC，STREAM，nOFB 和
                  OFB 模式下，必须提供初始向量。 初始向量要求是随机的，并且是唯一的（不需要是安全
                  的）。 加密和解密必须使用相同的初始向量。 如果你不想使用初始向量，请将其设置为全 0
                  值，但是不建议你这么做。

<comment>Return:</comment>
  <info>int</info>  如果发生错误，将会返回负数： -3 表示密钥长度有误，-4 表示内存分配失败， 其他值表示未知错误，
       同时会显示对应的警告信息。 如果传入参数不正确，返回 <info>false</info>。

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


id: mcrypt_get_block_size
type: function
doc:
<comment>Description:</comment>
  获得加密算法的分组大小
  
  第一个原型针对 libmcrypt 2.2.x， 第二个原型针对 libmcrypt 2.4.x 或 2.5.x。
  
  <strong>mcrypt_get_block_size()</strong> 用来获取 <strong>$cipher</strong> （其中包括了加密模式） 加密算法分组大小。
  
  <strong>mcrypt_enc_get_block_size()</strong> 函数更加有用， 因为它可以使用 <strong>mcrypt_module_open()</strong> 函数所返回的资源。

<comment>Param:</comment>
  <info>int</info>     <strong>$cipher</strong>  <info>MCRYPT_ciphername</info> 常量中的一个，或者是字符串值的算法名称。
  <info>string</info>  <strong>$mode</strong>    <info>MCRYPT_MODE_modename</info> 常量中的一个，或以下字符串中的一个："ecb"，"cbc"，"cfb"，
                   "ofb"，"nofb" 和 "stream"。

<comment>Return:</comment>
  <info>int|false</info>  返回以字节为单位的此算法的分组数据大小。 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mcrypt_get_key_size()</strong>
   * <strong>mcrypt_enc_get_block_size()</strong>
   * <strong>mcrypt_encrypt()</strong>


id: mcrypt_get_cipher_name
type: function
doc:
<comment>Description:</comment>
  获取加密算法名称
  
  <strong>mcrypt_get_cipher_name()</strong>  用来获取加密算法名称。
  
  libmcrypt 2.2.x 中，<strong>mcrypt_get_cipher_name()</strong> 接受整数表达的加密算法， libmcrypt 2.4.x 及更高版本
  中，它接受字符串表达的加密算法名称， 返回的都是字符串表达的名称，如果算法不存在则返回 <info>false</info>。

<comment>Param:</comment>
  <info>int</info>  <strong>$cipher</strong>  <info>MCRYPT_ciphername</info> 常量中的一个，或者是字符串值的算法名称。

<comment>Return:</comment>
  <info>string</info>  本函数返回加密算法名称， 如果算法不存在返回 <info>false</info>。


id: mcrypt_get_iv_size
type: function
doc:
<comment>Description:</comment>
  返回指定算法/模式组合的初始向量大小
  
  获取由 <strong>$cipher</strong>/<strong>$mode</strong> 参数指定的初始向量大小。
  
  <strong>mcrypt_enc_get_iv_size()</strong> 更加有用， 因为它使用由 <strong>mcrypt_module_open()</strong>  返回的资源作为参数。

<comment>Param:</comment>
  <info>string</info>  <strong>$cipher</strong>  <info>MCRYPT_ciphername</info> 常量中的一个，或者是字符串值的算法名称。
  <info>string</info>  <strong>$mode</strong>    <info>MCRYPT_MODE_modename</info> 常量中的一个，或以下字符串中的一个："ecb"，"cbc"，"cfb"，
                   "ofb"，"nofb" 和 "stream"。
                   
                   由于 ECB 模式不使用初始向量，所以会忽略它。 在加密和解密的过程中， 你需要使用相同
                   的初始向量（想象成：开始点）。

<comment>Return:</comment>
  <info>int</info>  返回初始向量的大小，以字节为单位。 如果发生错误，返回 <info>false</info>。 如果指定的算法/模式不需要初始向
       量，返回 0。

<comment>See Also:</comment>
   * <strong>mcrypt_get_block_size()</strong>
   * <strong>mcrypt_enc_get_iv_size()</strong>
   * <strong>mcrypt_create_iv()</strong>


id: mcrypt_get_key_size
type: function
doc:
<comment>Description:</comment>
  获取指定加密算法的密钥大小
  
  第一个原型是针对 libmcrypt 2.2.x 的， 第二个原型是针对 libmcrypt 2.4.x 或 2.5.x 的。
  
  <strong>mcrypt_get_key_size()</strong> 用来获取 由 <strong>$cipher</strong>  所指定的算法和模式所需的密钥长度。
  
  <strong>mcrypt_enc_get_key_size()</strong> 更加有用， 因为它使用由 <strong>mcrypt_module_open()</strong> 返回的资源。

<comment>Param:</comment>
  <info>int</info>     <strong>$cipher</strong>  <info>MCRYPT_ciphername</info> 常量中的一个，或者是字符串值的算法名称。
  <info>string</info>  <strong>$mode</strong>    <info>MCRYPT_MODE_modename</info> 常量中的一个，或以下字符串中的一个："ecb"，"cbc"，"cfb"，
                   "ofb"，"nofb" 和 "stream"。

<comment>Return:</comment>
  <info>int|false</info>  返回算法所支持的最大密钥大小，以字节为单位。 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mcrypt_get_block_size()</strong>
   * <strong>mcrypt_enc_get_key_size()</strong>
   * <strong>mcrypt_encrypt()</strong>


id: mcrypt_list_algorithms
type: function
doc:
<comment>Description:</comment>
  获取支持的加密算法
  
  获取 <strong>$lib_dir</strong> 中 包含的受支持的算法。

<comment>Param:</comment>
  <info>string</info>  <strong>$lib_dir</strong>  指定算法所在的位置。 如果未指定，将使用 php.ini 中的 <return>mcrypt.algorithms_dir</return> 指示
                    所指定的位置。

<comment>Return:</comment>
  <info>array</info>  以数组方式返回所有受支持的算法。


id: mcrypt_list_modes
type: function
doc:
<comment>Description:</comment>
  获取所支持的模式
  
  获取 <strong>$lib_dir</strong> 中 包含的受支持的模式。

<comment>Param:</comment>
  <info>string</info>  <strong>$lib_dir</strong>  指定模式所在的位置。 如果未指定，将使用 php.ini 中的 <return>mcrypt.modes_dir</return> 指示所指定
                    的位置。

<comment>Return:</comment>
  <info>array</info>  以数组形式返回受支持的模式。


id: mcrypt_module_close
type: function
doc:
<comment>Description:</comment>
  关闭加密模块
  
  关闭加密模块。

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>  加密描述符。

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

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


id: mcrypt_module_get_algo_block_size
type: function
doc:
<comment>Description:</comment>
  返回指定算法的分组大小
  
  返回指定算法的分组大小。

<comment>Param:</comment>
  <info>string</info>  <strong>$algorithm</strong>  算法名称。
  <info>string</info>  <strong>$lib_dir</strong>    可选参数 <strong>$lib_dir</strong> ， 表示在操作系统上包含模式模块的路径。

<comment>Return:</comment>
  <info>int</info>  返回指定算法的分组大小，以字节为单位。


id: mcrypt_module_get_algo_key_size
type: function
doc:
<comment>Description:</comment>
  获取打开模式所支持的最大密钥大小
  
  获取打开模式所支持的最大密钥大小。

<comment>Param:</comment>
  <info>string</info>  <strong>$algorithm</strong>  算法名称。
  <info>string</info>  <strong>$lib_dir</strong>    可选参数， 表示在操作系统上包含模式模块的路径。

<comment>Return:</comment>
  <info>int</info>  本函数返回算法所支持的最大密钥大小， 以字节为单位。


id: mcrypt_module_get_supported_key_sizes
type: function
doc:
<comment>Description:</comment>
  以数组形式返回打开的算法所支持的密钥大小
  
  以数组形式返回指定算法所支持的密钥大小。 如果从 1 到 <strong>mcrypt_module_get_algo_key_size()</strong>  的密钥大小
  都支持，则返回空数组。

<comment>Param:</comment>
  <info>string</info>  <strong>$algorithm</strong>  算法名称。
  <info>string</info>  <strong>$lib_dir</strong>    可选参数， 表示在操作系统上包含算法模块的路径。

<comment>Return:</comment>
  <info>array</info>  以数组形式返回指定算法所支持的密钥大小。 如果从 1 到 <strong>mcrypt_module_get_algo_key_size()</strong>  的
         密钥大小都支持，则返回空数组。

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


id: mcrypt_module_is_block_algorithm
type: function
doc:
<comment>Description:</comment>
  检测指定算法是否为分组加密算法
  
  如果指定算法是分组加密算法，返回 <info>true</info>， 反之返回 <info>false</info>。

<comment>Param:</comment>
  <info>string</info>  <strong>$algorithm</strong>  要检测的算法。
  <info>string</info>  <strong>$lib_dir</strong>    可选参数 <strong>$lib_dir</strong>， 表示在操作系统上包含算法模块的路径。

<comment>Return:</comment>
  <info>bool</info>  如果指定算法是分组加密算法，返回 <info>true</info>， 反之返回 <info>false</info>。


id: mcrypt_module_is_block_algorithm_mode
type: function
doc:
<comment>Description:</comment>
  返回指定模块是否是分组加密模式
  
  对于分组加密模式，返回 <info>true</info>， 反之返回 <info>false</info>。 （例如，对于 STREAM 模式返回 <info>false</info>，对于 cbc，cfb，
  ofb 返回 <info>true</info>）

<comment>Param:</comment>
  <info>string</info>  <strong>$mode</strong>     模式。
  <info>string</info>  <strong>$lib_dir</strong>  可选参数， 表示在操作系统上包含算法模块的路径。

<comment>Return:</comment>
  <info>bool</info>  对于分组加密模式，返回 <info>true</info>， 反之返回 <info>false</info>。 （例如，对于 STREAM 模式返回 <info>false</info>，对于
        cbc，cfb，ofb 返回 <info>true</info>）


id: mcrypt_module_is_block_mode
type: function
doc:
<comment>Description:</comment>
  检测指定模式是否以分组方式输出
  
  如果模式是以字节块（分组）方式输出，则返回 <info>true</info>， 如果只是以字节方式输出，则返回 <info>false</info>。 （例如，
  对于 cbc 和 ecb 模式，返回 <info>true</info>，对于 cfb 和 stream 模式，返回 <info>false</info>）

<comment>Param:</comment>
  <info>string</info>  <strong>$mode</strong>     <info>MCRYPT_MODE_modename</info> 常量中的一个，或以下字符串中的一个："ecb"，"cbc"，"cfb"，
                    "ofb"，"nofb" 和 "stream"。
  <info>string</info>  <strong>$lib_dir</strong>  可选参数 <strong>$lib_dir</strong> ， 表示在操作系统上包含模式模块的路径。

<comment>Return:</comment>
  <info>bool</info>  如果模式是以字节块（分组）方式输出，则返回 <info>true</info>， 如果只是以字节方式输出，则返回 <info>false</info>。
        （例如，对于 cbc 和 ecb 模式，返回 <info>true</info>，对于 cfb 和 stream 模式，返回 <info>false</info>）


id: mcrypt_module_open
type: function
doc:
<comment>Description:</comment>
  打开算法和模式对应的模块
  
  本函数打开指定算法和模式对应的模块。 算法名称可以是字符串，例如 <return>"twofish"</return>， 也可以是
  <info>MCRYPT_ciphername</info> 常量。 调用 <strong>mcrypt_module_close()</strong> 函数可以关闭模块。

<comment>Param:</comment>
  <info>string</info>  <strong>$algorithm</strong>            <info>MCRYPT_ciphername</info> 常量中的一个，或者是字符串值的算法名称。
  <info>string</info>  <strong>$algorithm_directory</strong>  <strong>$algorithm_directory</strong> 参数指示加密模块的位置。 如果你提供此参数，则使
                                用你指定的值。 如果将此参数设置为空字符串（<return>""</return>），将使用 php.ini 中的
                                <return>mcrypt.algorithms_dir</return> 。 如果不指定此参数，则使用 libmcrypt 的编译路
                                径 （通常是 /usr/local/lib/libmcrypt）。
  <info>string</info>  <strong>$mode</strong>                 <info>MCRYPT_MODE_modename</info> 常量中的一个，或以下字符串中的一个："ecb"，
                                "cbc"，"cfb"，"ofb"，"nofb" 和 "stream"。
  <info>string</info>  <strong>$mode_directory</strong>       <strong>$algorithm_directory</strong> 参数指示加密模式的位置。 如果你提供此参数，则使
                                用你指定的值。 如果将此参数设置为空字符串（<return>""</return>），将使用 php.ini 中的
                                <return>mcrypt.modes_dir</return> 。 如果不指定此参数，则使用 libmcrypt 的编译路径
                                （通常是 /usr/local/lib/libmcrypt）。

<comment>Return:</comment>
  <info>resource</info>  成功则返回加密描述符，如果发生错误则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mcrypt_module_close()</strong>
   * <strong>mcrypt_generic()</strong>
   * <strong>mdecrypt_generic()</strong>
   * <strong>mcrypt_generic_init()</strong>
   * <strong>mcrypt_generic_deinit()</strong>


id: mcrypt_module_self_test
type: function
doc:
<comment>Description:</comment>
  在指定模块上执行自检
  
  在指定模块上执行自检。

<comment>Param:</comment>
  <info>string</info>  <strong>$algorithm</strong>  <info>MCRYPT_ciphername</info> 常量中的一个，或者是字符串值的算法名称。
  <info>string</info>  <strong>$lib_dir</strong>    可选参数 <strong>$lib_dir</strong>， 表示包含加密算法模块的路径。

<comment>Return:</comment>
  <info>bool</info>  自检成功返回 <info>true</info>， 自检失败返回 <info>false</info>。


id: md5
type: function
doc:
<comment>Description:</comment>
  计算字符串的 MD5 散列值
  
  使用 RSA 数据安全公司的 MD5 消息摘要算法 计算 <strong>$string</strong> 的 MD5 散列值，并返回该散列值。

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  要计算的字符串。
  <info>bool</info>    <strong>$binary</strong>  如果可选的 <strong>$binary</strong> 被设置为 <info>true</info>，那么 md5 摘要将以 16 字符长度的原始二进制格式返
                   回。

<comment>Return:</comment>
  <info>string</info>  以 32 字符的十六进制数形式返回散列值。

<comment>See Also:</comment>
   * <strong>md5_file()</strong>
   * <strong>sha1_file()</strong>
   * <strong>crc32()</strong>
   * <strong>sha1()</strong>
   * <strong>hash()</strong>
   * <strong>crypt()</strong>
   * <strong>password_hash()</strong>


id: md5_file
type: function
doc:
<comment>Description:</comment>
  计算指定文件的 MD5 散列值
  
  使用 RSA 数据安全公司的 MD5 消息摘要算法 计算 <strong>$filename</strong> 参数指定的文件的 MD5 散列值，并返回该散列
  值。 该散列值是 32 字符的十六进制数。

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  文件名
  <info>bool</info>    <strong>$binary</strong>    为 <info>true</info> 时，返回 16 字符长度的原始二进制格式的摘要。

<comment>Return:</comment>
  <info>string|false</info>  成功返回字符串，否则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>md5()</strong>
   * <strong>sha1_file()</strong>
   * <strong>crc32()</strong>


id: mdecrypt_generic
type: function
doc:
<comment>Description:</comment>
  解密数据
  
  解密数据。 请注意，由于存在数据补齐的情况， 返回字符串的长度可能和明文的长度不相等。

<comment>Param:</comment>
  <info>resource</info>  <strong>$td</strong>    由 <strong>mcrypt_module_open()</strong> 函数创建的加密描述符。
  <info>string</info>    <strong>$data</strong>  密文。

<comment>Return:</comment>
  <info>string</info>  Returns decrypted string.

<comment>See Also:</comment>
   * <strong>mcrypt_generic()</strong>
   * <strong>mcrypt_generic_init()</strong>
   * <strong>mcrypt_generic_deinit()</strong>


id: memcache_debug
type: function
doc:
<comment>Description:</comment>
  打开/关闭调试输出
  
  如果参数 <strong>$on_off</strong> 为 <info>true</info>，<strong>memcache_debug()</strong> 打开调试输出，如果为 <info>false</info>，则关闭调试输出。
  <strong>memcache_debug()</strong> 仅在 PHP 以 --enable-debug 选项编译时可以访问，并且在这种情况下始终返回 <info>true</info>，其
  他情况下此函数无效并始终返回 <info>false</info>。
  
  <strong>memcache_debug()</strong> 仅在 PHP 以 --enable-debug 选项编译时可以访问，并且在这种情况下始终返回 <info>true</info>，其
  他情况下此函数无效并始终返回 <info>false</info>。

<comment>Param:</comment>
  <info>bool</info>  <strong>$on_off</strong>  如果为 <info>true</info>，则打开调试输出。如果为 <info>false</info> 则关闭调试输出。

<comment>Return:</comment>
  <info>bool</info>  当 PHP 以 --enalbe-debug 选项编译时返回 <info>true</info> 其他情况下返回 <info>false</info>。


id: memory_get_peak_usage
type: function
doc:
<comment>Description:</comment>
  返回分配给 PHP 内存的峰值
  
  返回分配给你的 PHP 脚本的内存峰值字节数。

<comment>Param:</comment>
  <info>bool</info>  <strong>$real_usage</strong>  如果设置为 <info>true</info> 可以获取从系统分配到的真实内存尺寸。 如果未设置，或者设置为
                     <info>false</info>，仅会报告 <return>emalloc()</return> 使用的内存。

<comment>Return:</comment>
  <info>int</info>  返回内存峰值的字节数。

<comment>See Also:</comment>
   * <strong>memory_get_usage()</strong>
   * <strong>memory_reset_peak_usage()</strong>
   * memory_limit


id: memory_get_usage
type: function
doc:
<comment>Description:</comment>
  返回分配给 PHP 的内存量
  
  返回当前分配给你的 PHP 脚本的内存量，单位是字节（byte）。

<comment>Param:</comment>
  <info>bool</info>  <strong>$real_usage</strong>  如果设置为 <info>true</info>，获取系统分配总的内存尺寸，包括未使用的页。如果未设置或者设置为
                     <info>false</info>，仅仅报告实际使用的内存量。

<comment>Return:</comment>
  <info>int</info>  返回内存量字节数。

<comment>See Also:</comment>
   * <strong>memory_get_peak_usage()</strong>
   * memory_limit


id: memory_reset_peak_usage
type: function
doc:
<comment>Description:</comment>
  Reset the peak memory usage
  
  Resets the peak memory usage returned by the <strong>memory_get_peak_usage()</strong> function.

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

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


id: metaphone
type: function
doc:
<comment>Description:</comment>
  Calculate the metaphone key of a string
  
  Calculates the metaphone key of <strong>$string</strong>.
  
  Similar to <strong>soundex()</strong> metaphone creates the same key for similar sounding words. It's more accurate
  than <strong>soundex()</strong> as it knows the basic rules of English pronunciation.  The metaphone generated keys
  are of variable length.
  
  Metaphone was developed by Lawrence Philips \<lphilips at verity dot com&gt;. It is described in ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995].

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>        The input string.
  <info>int</info>     <strong>$max_phonemes</strong>  This parameter restricts the returned metaphone key to  <strong>$max_phonemes</strong>
                         characters in length. However, the resulting phonemes are always
                         transcribed completely, so the resulting string length may be slightly
                         longer than <strong>$max_phonemes</strong>. The default value of <return>0</return> means no restriction.

<comment>Return:</comment>
  <info>string</info>  Returns the metaphone key as a string.


id: method_exists
type: function
doc:
<comment>Description:</comment>
  检查类的方法是否存在
  
  检查类的方法是否存在于指定的 <strong>$object_or_class</strong> 中。

<comment>Param:</comment>
  <info>object|string</info>  <strong>$object_or_class</strong>  对象示例或者类名
  <info>string</info>         <strong>$method</strong>           方法名

<comment>Return:</comment>
  <info>bool</info>  如果 <strong>$method</strong> 所指的方法在 <strong>$object_or_class</strong> 所指的对象类中已定义，则返回 <info>true</info>，否则返回
        <info>false</info>。

<comment>See Also:</comment>
   * <strong>function_exists()</strong>
   * <strong>is_callable()</strong>
   * <strong>class_exists()</strong>


id: mhash
type: function
doc:
<comment>Description:</comment>
  Computes hash
  
  <strong>mhash()</strong> applies a hash function specified by <strong>$algo</strong> to the <strong>$data</strong>.

<comment>Param:</comment>
  <info>int</info>          <strong>$algo</strong>  The hash ID. One of the <info>MHASH_hashname</info> constants.
  <info>string</info>       <strong>$data</strong>  The user input, as a string.
  <info>string|null</info>  <strong>$key</strong>   If specified, the function will return the resulting HMAC instead. HMAC is
                      keyed hashing for message authentication, or simply a message digest that
                      depends on the specified key. Not all algorithms  supported in mhash can be
                      used in HMAC mode.

<comment>Return:</comment>
  <info>string|false</info>  Returns the resulting hash (also called digest) or HMAC as a string, or <info>false</info> on
                error.


id: mhash_count
type: function
doc:
<comment>Description:</comment>
  Gets the highest available hash ID
  
  Gets the highest available hash ID.

<comment>Return:</comment>
  <info>int</info>  Returns the highest available hash ID. Hashes are numbered from 0 to this hash ID.


id: mhash_get_block_size
type: function
doc:
<comment>Description:</comment>
  Gets the block size of the specified hash
  
  Gets the size of a block of the specified <strong>$algo</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$algo</strong>  The hash ID. One of the <info>MHASH_hashname</info> constants.

<comment>Return:</comment>
  <info>int|false</info>  Returns the size in bytes or <info>false</info>, if the <strong>$algo</strong> does not exist.


id: mhash_get_hash_name
type: function
doc:
<comment>Description:</comment>
  Gets the name of the specified hash
  
  Gets the name of the specified <strong>$algo</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$algo</strong>  The hash ID. One of the <info>MHASH_hashname</info> constants.

<comment>Return:</comment>
  <info>string|false</info>  Returns the name of the hash or <info>false</info>, if the hash does not exist.


id: mhash_keygen_s2k
type: function
doc:
<comment>Description:</comment>
  Generates a key
  
  Generates a key according to the given <strong>$algo</strong>, using an user provided <strong>$password</strong>.
  
  This is the Salted S2K algorithm as specified in the OpenPGP document (RFC 2440).
  
  Keep in mind that user supplied passwords are not really suitable to be used as keys in
  cryptographic algorithms, since users normally choose keys they can write on keyboard. These
  passwords use only 6 to 7 bits per character (or less). It is highly recommended to use some kind
  of transformation (like this function) to the user supplied key.

<comment>Param:</comment>
  <info>int</info>     <strong>$algo</strong>      The hash ID used to create the key. One of the <info>MHASH_hashname</info> constants.
  <info>string</info>  <strong>$password</strong>  An user supplied password.
  <info>string</info>  <strong>$salt</strong>      Must be different and random enough for every key you generate in order to
                     create different keys. Because <strong>$salt</strong> must be known when you check the keys, it
                     is a good idea to append the key to it. Salt has a fixed length of 8 bytes and
                     will be padded with zeros if you supply less bytes.
  <info>int</info>     <strong>$length</strong>    The key length, in bytes.

<comment>Return:</comment>
  <info>string|false</info>  Returns the generated key as a string, or <info>false</info> on error.


id: microtime
type: function
doc:
<comment>Description:</comment>
  返回当前 Unix 时间戳和微秒数
  
  <strong>microtime()</strong> 返回当前 Unix 时间戳以及微秒数。本函数仅在支持 gettimeofday() 系统调用的操作系统下可
  用。
  
  对于性能测量，建议使用 <strong>hrtime()</strong>。

<comment>Param:</comment>
  <info>bool</info>  <strong>$as_float</strong>  如果使用并设置为 <info>true</info>，<strong>microtime()</strong> 将返回浮点数而不是字符串，具体查看下面的返回值
                   相关描述。

<comment>Return:</comment>
  <info>string|float</info>  默认情况下，<strong>microtime()</strong> 返回“msec sec”形式的 <info>string</info>，其中 <return>sec</return> 是自 Unix 纪元（格林威
                治标准时间 1970 年 1 月 1 日 0:00:00）以来的秒数，<return>msec</return> 是自 <return>sec</return> 以来经过的微秒，表示
                为秒数的小数部分。
                
                如果 <strong>$as_float</strong> 设置为 <info>true</info>，然后 <strong>microtime()</strong> 返回 <info>float</info>，表示自 Unix 纪元以来的当前
                时间，以秒为单位，精确到最接近的微秒。

<comment>See Also:</comment>
   * <strong>time()</strong>
   * <strong>hrtime()</strong>


id: mime_content_type
type: function
doc:
<comment>Description:</comment>
  检测文件的 MIME 类型
  
  返回通过使用  magic.mime  检测到的文件 MIME 类型。

<comment>Param:</comment>
  <info>resource|string</info>  <strong>$filename</strong>  要检测的文件名。

<comment>Return:</comment>
  <info>string|false</info>  返回文件的 MIME 内容类型，例如 <return>text/plain</return> 或 <return>application/octet-stream</return>。 或者在失败时
                返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>finfo_file()</strong>
   * <strong>finfo_buffer()</strong>


id: min
type: function
doc:
<comment>Description:</comment>
  找出最小值
  
  替代签名（不支持命名参数）：
  
  如果仅有一个参数且为数组，<strong>min()</strong> 返回该数组中最小的值。如果给出了两个或更多参数, <strong>min()</strong> 会返回这些值
  中最小的一个。
  
  不同类型的值将使用标准比较规则进行比较。例如，一个非数字 <info>string</info> 与 <info>int</info> 比较时就当做是 <return>0</return>，但多个非
  数字 <info>string</info> 值将会按照字母数字比较。返回的实际值是未应用任何转换的原始类型。
  
  传递不同类型的参数时要小心，因为 <strong>min()</strong> 会产生不可预测的结果。

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>        任何可比较的值。
  <info>mixed</info>  <strong>$values</strong>       任何可比较的值。
  <info>array</info>  <strong>$value_array</strong>  包含值的数组。

<comment>Return:</comment>
  <info>mixed</info>  <strong>max()</strong> 根据标准比较返回认为是“最小”的参数值。如果不同类型的多个值认为相等（比如 <return>0</return> 与
         <return>'abc'</return>），则将会返回提供给函数的第一个值。

<comment>See Also:</comment>
   * <strong>max()</strong>
   * <strong>count()</strong>


id: mkdir
type: function
doc:
<comment>Description:</comment>
  新建目录
  
  尝试新建由 <strong>$directory</strong> 指定的目录。

<comment>Param:</comment>
  <info>string</info>         <strong>$directory</strong>    目录的路径。如已启用fopen 包装器，在此函数中， URL 可作为文件名。关于
                               如何指定文件名详见 <strong>fopen()</strong>。各种
                               wapper 的不同功能请参见 ，注意其用法及其可提供的预定义变量。
                               
                               如已启用fopen 包装器，在此函数中， URL 可作为文件名。关于如何指定文件
                               名详见 <strong>fopen()</strong>。各种
                               wapper 的不同功能请参见 ，注意其用法及其可提供的预定义变量。
  <info>int</info>            <strong>$permissions</strong>  默认权限是 0777，意味着最大可能的访问权。有关权限的更多信息请阅读
                               <strong>chmod()</strong> 页面。
                               
                               <strong>$permissions</strong> 在 Windows 下被忽略。
                               
                               注意也许想用八进制数指定 <strong>$permissions</strong>，也就是说该数应以零打头。
                               <strong>$permissions</strong> 也会被当前的 umask 修改，可以用 <strong>umask()</strong> 来改变。
  <info>bool</info>           <strong>$recursive</strong>    如果为 <info>true</info>，还将会创建指定 <strong>$directory</strong> 的任何父级目录，并具有相同的权
                               限。
  <info>resource|null</info>  <strong>$context</strong>      上下文流（context stream）<info>resource</info>。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。
        
        如果创建的目录已存在，则视为错误，仍然返回 <info>false</info>。在尝试创建之前，使用 <strong>is_dir()</strong> 或者
        <strong>file_exists()</strong> 检查目录是否已经存在。

<comment>See Also:</comment>
   * <strong>is_dir()</strong>
   * <strong>rmdir()</strong>
   * <strong>umask()</strong>


id: mktime
type: function
doc:
<comment>Description:</comment>
  取得一个日期的 Unix 时间戳
  
  根据给出的参数返回 Unix 时间戳。时间戳是一个长整数，包含了从 Unix 纪元（January 1 1970 00:00:00
  GMT）到给定时间的秒数。
  
  任何可选或为 <info>null</info> 的参数都将根据本地日期和时间设置为当前值。
  
  请注意，参数的顺序是很奇怪：<strong>$month</strong>、<strong>$day</strong>、<strong>$year</strong>，而不是更合理的 <strong>$year</strong>、<strong>$month</strong>、<strong>$day</strong> 顺序。
  
  不带参数调用 <strong>mktime()</strong> 已经不受支持，会导致 <class>ArgumentCountError</class>。 <strong>time()</strong> 可以用来获取当前时间戳。

<comment>Param:</comment>
  <info>int</info>       <strong>$hour</strong>    相对于一天开始的小时数，由 <strong>$month</strong>、<strong>$day</strong> 和 <strong>$year</strong> 确定。负值是指当天零点前的小
                     时。值大于 23 是指接下来几天的适当小时。
  <info>int|null</info>  <strong>$minute</strong>  相对于 <strong>$hour</strong> 开始的分钟数。负值指的是上个小时的分钟。大于 59 的值将指向接下来几
                     个小时的适当分钟。
  <info>int|null</info>  <strong>$second</strong>  相对于 <strong>$minute</strong> 开始的秒数。负值是指前一分钟的秒数。大于 59 的值是指接下来几分钟
                     的适当秒。
  <info>int|null</info>  <strong>$month</strong>   相对于去年年底的月份数。值 1 到 12 是指相关年份的正常日历月份。小于 1 的值（包
                     括负值）按相反的顺序指向去年的月份，因此 0 是 12 月，-1 是 11 月，以此类推。值
                     大于 12 是指接下来几年的适当月份。
  <info>int|null</info>  <strong>$day</strong>     相对于上个月月底的天数。值 1 到 28、29、30 或 31（取决于月份）是指相关月份的正
                     常天数。小于 1 的值（包括负值）是指上个月的天数，因此 0 是上个月的最后一天，-1
                     是倒数第二天，以此类推。大于相关月份天数的值是指接下来几个月的适当某一天。
  <info>int|null</info>  <strong>$year</strong>    年份数，可以是两位或四位数字，0-69 对应于 2000-2069，70-100 对应于 1970-2000。
                     在如今系统中普遍把 time_t 作为一个 32 位有符号整数的情况下，<strong>$year</strong> 的合法范围是
                     1901 到 2038 之间。

<comment>Return:</comment>
  <info>int|false</info>  <strong>mktime()</strong> 根据给出的参数返回 Unix 时间戳，如果时间戳不适合 PHP 整数则返回 <info>false</info>。

<comment>See Also:</comment>
   * <class>DateTimeImmutable</class> 类
   * <strong>checkdate()</strong>
   * <strong>gmmktime()</strong>
   * <strong>date()</strong>
   * <strong>time()</strong>


id: money_format
type: function
doc:
<comment>Description:</comment>
  将数字格式化成货币字符串
  
  <strong>money_format()</strong> 返回格式化好的  <strong>$number</strong> 版本。 此函数包装了 C 函数库中的 <strong>strfmon()</strong>，不同之处是：此
  实现每次只能转化一个数字。

<comment>Param:</comment>
  <info>string</info>  <strong>$format</strong>  格式字符串由以下几部分组成： 单个 <return>%</return> 字符可选的标记（flags）可选的字段宽度可选的，
                   左侧精度可选的，右侧精度必选的，单个转化字符
                   
                   单个 <return>%</return> 字符
                   
                   可选的标记（flags）
                   
                   可选的字段宽度
                   
                   可选的，左侧精度
                   
                   可选的，右侧精度
                   
                   必选的，单个转化字符
                   
                   可选多个标记，分别是： <return>=</return>f 字符：<return>=</return>，并紧跟一个字符（单字节） f，用于数字填充。默认
                   的填充字符是空格。 <return>^</return> 禁用分组字符（比如金额中的逗号。在本地区域设置 locale 中定
                   义）。 <return>+</return> or <return>(</return> 正负数字的格式。使用 <return>+</return>，将使用区域设置（locale）中相当于 <return>+</return> 和 <return>-</return> 的
                   符号。 如果使用 <return>(</return>，负数将被圆括号围绕。不设置的话，默认为 <return>+</return>。 <return>!</return> 不输出货币符号
                   （比如 ¥）。 <return>-</return> 有这个符号的时候，将使字段左对齐（填充到右边），默认是相反的，是右
                   对齐的（填充到左边）。
                   
                   字符：<return>=</return>，并紧跟一个字符（单字节） f，用于数字填充。默认的填充字符是空格。
                   
                   禁用分组字符（比如金额中的逗号。在本地区域设置 locale 中定义）。
                   
                   正负数字的格式。使用 <return>+</return>，将使用区域设置（locale）中相当于 <return>+</return> 和 <return>-</return> 的符号。 如果使用
                   <return>(</return>，负数将被圆括号围绕。不设置的话，默认为 <return>+</return>。
                   
                   不输出货币符号（比如 ¥）。
                   
                   有这个符号的时候，将使字段左对齐（填充到右边），默认是相反的，是右对齐的（填充到
                   左边）。
                   
                   w 十进制数值字符串的宽度。字段将右对齐，除非使用了 <return>-</return> 标记。默认值 0。 
                   
                   十进制数值字符串的宽度。字段将右对齐，除非使用了 <return>-</return> 标记。默认值 0。
                   
                   <return>#</return>n 小数字符（比如小数点）前的最大位数 (n)。 常用于同一列中的格式对齐。 如果位数小
                   于 n 则使用填充字符填满。 如果实际位数大于 n，此设置将被忽略。  如果没用 <return>^</return> 标识禁
                   用分组，分组分隔符会在添加填充字符之前插入（如果有的话）。 分组分隔符不会应用到填
                   充字符里，哪怕填充字符是个数字。  为了保证对齐，出现在之前或者之后的字符，都会填
                   充必要的空格，保证正负情况下长度都一样。
                   
                   小数字符（比如小数点）前的最大位数 (n)。 常用于同一列中的格式对齐。 如果位数小于
                   n 则使用填充字符填满。 如果实际位数大于 n，此设置将被忽略。
                   
                   如果没用 <return>^</return> 标识禁用分组，分组分隔符会在添加填充字符之前插入（如果有的话）。 分组
                   分隔符不会应用到填充字符里，哪怕填充字符是个数字。
                   
                   为了保证对齐，出现在之前或者之后的字符，都会填充必要的空格，保证正负情况下长度都
                   一样。
                   
                   <return>.</return>p 小数点后的一段数字 (p)。 如果 p 的值是 0（零），小数点右侧的数值将被删除。 如
                   果不使用这个标记，默认展现取决于当前的区域设置。 小数点后指定位数的数字，四舍五入
                   格式化。
                   
                   小数点后的一段数字 (p)。 如果 p 的值是 0（零），小数点右侧的数值将被删除。 如果不
                   使用这个标记，默认展现取决于当前的区域设置。 小数点后指定位数的数字，四舍五入格式
                   化。
                   
                   <return>i</return> 根据国际化区域设置中的货币格式，格式化数值。（比如，locale 是 USA：USD
                   1,234.56）。 <return>n</return> 根据国际化区域设置中国家的货币格式，格式化数值。（比如，locale 是
                   de_DE：EU1.234,56）。 <return>%</return> 返回字符 <return>%</return>。
                   
                   根据国际化区域设置中的货币格式，格式化数值。（比如，locale 是 USA：USD
                   1,234.56）。
                   
                   根据国际化区域设置中国家的货币格式，格式化数值。（比如，locale 是 de_DE：
                   EU1.234,56）。
                   
                   返回字符 <return>%</return>。
  <info>float</info>   <strong>$number</strong>  需要格式化的数字。

<comment>Return:</comment>
  <info>string</info>  返回格式化后的字符。格式字符串前后的字符将原封不动返回。 传入的 <strong>$number</strong> 如果不是数字，将返
          回  <info>null</info> 并且产生 <info>E_WARNING</info>。

<comment>See Also:</comment>
   * <strong>setlocale()</strong>
   * <strong>sscanf()</strong>
   * <strong>sprintf()</strong>
   * <strong>printf()</strong>
   * <strong>number_format()</strong>


id: move_uploaded_file
type: function
doc:
<comment>Description:</comment>
  将上传的文件移动到新位置
  
  本函数检查并确保由 <strong>$from</strong> 指定的文件是合法的上传文件（即通过 PHP 的 HTTP POST 上传机制所上传的）。
  如果文件合法，则将其移动为由 <strong>$to</strong> 指定的文件。
  
  这种检查显得格外重要，如果上传的文件有可能会造成对用户或本系统的其他用户显示其内容的话。

<comment>Param:</comment>
  <info>string</info>  <strong>$from</strong>  上传的文件的文件名。
  <info>string</info>  <strong>$to</strong>    移动文件到这个位置。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>。
        
        如果 <strong>$from</strong> 不是合法的上传文件，不会出现任何操作，<strong>move_uploaded_file()</strong> 将返回 <info>false</info>。
        
        如果 <strong>$from</strong> 是合法的上传文件，但出于某些原因无法移动，不会出现任何操作，<strong>move_uploaded_file()</strong>
        将返回 <info>false</info>。此外还会发出一条警告。

<comment>See Also:</comment>
   * <strong>is_uploaded_file()</strong>
   * <strong>rename()</strong>
   * 参见文件上传处理一章中的简单使用例子。


id: mqseries_back
type: function
doc:
<comment>Description:</comment>
  MQSeries MQBACK
  
  The <strong>mqseries_back()</strong> (MQBACK) call indicates to the queue manager that all the message gets and
  puts that have occurred since the last syncpoint are to be backed out. Messages put as part of a
  unit of work are deleted; messages retrieved as part of a unit of work are reinstated on the
  queue.
  
  Using <strong>mqseries_back()</strong> only works in conjunction with <strong>mqseries_begin()</strong> and only function when
  connecting directly to a Queueu manager. Not via the mqclient interface.

<comment>Param:</comment>
  <info></info>          <strong>$hConn</strong>     Connection handle.
                       
                       This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$compCode</strong>  Completion code.
  <info>resource</info>  <strong>$reason</strong>    Reason code qualifying the compCode.

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

<comment>See Also:</comment>
   * <strong>mqseries_conn()</strong>
   * <strong>mqseries_connx()</strong>
   * <strong>mqseries_begin()</strong>


id: mqseries_begin
type: function
doc:
<comment>Description:</comment>
  MQseries MQBEGIN
  
  The <strong>mqseries_begin()</strong> (MQBEGIN) call begins a unit of work that is coordinated by the queue
  manager, and that may involve external resource managers.
  
  Using <strong>mqseries_begin()</strong> starts the unit of work. Either <strong>mqseries_back()</strong> or <strong>mqseries_cmit()</strong> ends the
  unit of work.

<comment>Param:</comment>
  <info></info>          <strong>$hConn</strong>     Connection handle.
                       
                       This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$compCode</strong>  Completion code.
  <info>resource</info>  <strong>$reason</strong>    Reason code qualifying the compCode.

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

<comment>See Also:</comment>
   * <strong>mqseries_conn()</strong>
   * <strong>mqseries_connx()</strong>
   * <strong>mqseries_back()</strong>
   * <strong>mqseries_cmit()</strong>


id: mqseries_close
type: function
doc:
<comment>Description:</comment>
  MQSeries MQCLOSE
  
  The <strong>mqseries_close()</strong> (MQCLOSE) call relinquishes access to an object, and is the inverse of the
  <strong>mqseries_open()</strong> (MQOPEN) call.

<comment>Param:</comment>
  <info></info>          <strong>$hConn</strong>     Connection handle.
                       
                       This handle represents the connection to the queue manager.
  <info></info>          <strong>$hObj</strong>      Object handle.
                       
                       This handle represents the object to be used.
  <info>int</info>       <strong>$options</strong>   
  <info>resource</info>  <strong>$compCode</strong>  Completion code.
  <info>resource</info>  <strong>$reason</strong>    Reason code qualifying the compCode.

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

<comment>See Also:</comment>
   * <strong>mqseries_open()</strong>
   * <strong>mqseries_conn()</strong>
   * <strong>mqseries_connx()</strong>


id: mqseries_cmit
type: function
doc:
<comment>Description:</comment>
  MQSeries MQCMIT
  
  The <strong>mqseries_cmit()</strong> (MQCMIT) call indicates to the queue manager that the application has reached
  a syncpoint, and that all of the message gets and puts that have occurred since the last syncpoint
  are to be made permanent. Messages put as part of a unit of work are made available to other
  applications; messages retrieved as part of a unit of work are deleted.

<comment>Param:</comment>
  <info></info>          <strong>$hConn</strong>     Connection handle.
                       
                       This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$compCode</strong>  Completion code.
  <info>resource</info>  <strong>$reason</strong>    Reason code qualifying the compCode.

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

<comment>See Also:</comment>
   * <strong>mqseries_begin()</strong>
   * <strong>mqseries_back()</strong>
   * <strong>mqseries_conn()</strong>
   * <strong>mqseries_connx()</strong>


id: mqseries_conn
type: function
doc:
<comment>Description:</comment>
  MQSeries MQCONN
  
  The <strong>mqseries_conn()</strong> (MQCONN) call connects an application program to a queue manager. It provides
  a queue manager connection handle, which is used by the application on subsequent message queuing
  calls.

<comment>Param:</comment>
  <info>string</info>    <strong>$qManagerName</strong>  Name of queue manager.
                           
                           Name of the queue manager the application wishes to connect.
  <info></info>          <strong>$hConn</strong>         Connection handle.
                           
                           This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$compCode</strong>      Completion code.
  <info>resource</info>  <strong>$reason</strong>        Reason code qualifying the compCode.

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

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


id: mqseries_connx
type: function
doc:
<comment>Description:</comment>
  MQSeries MQCONNX
  
  The <strong>mqseries_connx()</strong> (MQCONNX) call connects an application program to a queue manager. It
  provides a queue manager connection handle, which is used by the application on subsequent MQ
  calls.
  
  The <strong>mqseries_connx()</strong> call is like the  <strong>mqseries_conn()</strong> (MQCONN) call, except that MQCONNX  allows
  options to be specified to control the way that the call works.

<comment>Param:</comment>
  <info>string</info>    <strong>$qManagerName</strong>  Name of queue manager.
                           
                           Name of the queue manager the application wishes to connect.
  <info></info>          <strong>$connOps</strong>       Options that control the action of function
                           
                           See also the MQCNO structure.
  <info></info>          <strong>$hConn</strong>         Connection handle.
                           
                           This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$compCode</strong>      Completion code.
  <info>resource</info>  <strong>$reason</strong>        Reason code qualifying the compCode.

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

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


id: mqseries_disc
type: function
doc:
<comment>Description:</comment>
  MQSeries MQDISC
  
  The <strong>mqseries_disc()</strong> (MQDISC) call breaks the connection between the queue manager and the
  application program, and is the inverse of the <strong>mqseries_conn()</strong> (MQCONN) or <strong>mqseries_connx()</strong>
  (MQCONNX) call.

<comment>Param:</comment>
  <info></info>          <strong>$hConn</strong>     Connection handle.
                       
                       This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$compCode</strong>  Completion code.
  <info>resource</info>  <strong>$reason</strong>    Reason code qualifying the compCode.

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

<comment>See Also:</comment>
   * <strong>mqseries_conn()</strong>
   * <strong>mqseries_connx()</strong>


id: mqseries_get
type: function
doc:
<comment>Description:</comment>
  MQSeries MQGET
  
  The <strong>mqseries_get()</strong> (MQGET) call retrieves a message from a local queue that has been opened using
  the <strong>mqseries_open()</strong> (MQOPEN) call

<comment>Param:</comment>
  <info>resource</info>  <strong>$hConn</strong>         Connection handle.
                           
                           This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$hObj</strong>          Object handle.
                           
                           This handle represents the object to be used.
  <info>array</info>     <strong>$md</strong>            Message descriptor (MQMD).
  <info>array</info>     <strong>$gmo</strong>           Get message options (MQGMO).
  <info>int</info>       <strong>$bufferLength</strong>  Expected length of the result buffer
  <info>string</info>    <strong>$msg</strong>           Buffer holding the message that was retrieved from the object.
  <info>int</info>       <strong>$data_length</strong>   Actual buffer length
  <info>resource</info>  <strong>$compCode</strong>      Completion code.
  <info>resource</info>  <strong>$reason</strong>        Reason code qualifying the compCode.

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

<comment>See Also:</comment>
   * <strong>mqseries_conn()</strong>
   * <strong>mqseries_connx()</strong>
   * <strong>mqseries_open()</strong>
   * <strong>mqseries_put()</strong>


id: mqseries_inq
type: function
doc:
<comment>Description:</comment>
  MQSeries MQINQ
  
  The <strong>mqseries_inq()</strong> (MQINQ) call returns an array of integers and a set of character strings
  containing the attributes of an object.

<comment>Param:</comment>
  <info></info>          <strong>$hConn</strong>           Connection handle.
                             
                             This handle represents the connection to the queue manager.
  <info></info>          <strong>$hObj</strong>            Object handle.
                             
                             This handle represents the object to be used.
  <info>int</info>       <strong>$selectorCount</strong>   Count of selectors.
  <info>array</info>     <strong>$selectors</strong>       Array of attribute selectors.
  <info></info>          <strong>$intAttrLength</strong>   Count of integer attributes.
  <info>resource</info>  <strong>$intAttr</strong>         Array of integer attributes.
  <info>int</info>       <strong>$charAttrLength</strong>  Length of character attributes buffer.
  <info>resource</info>  <strong>$charAttr</strong>        Character attributes.
  <info>resource</info>  <strong>$compCode</strong>        Completion code.
  <info>resource</info>  <strong>$reason</strong>          Reason code qualifying the compCode.

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

<comment>See Also:</comment>
   * <strong>mqseries_conn()</strong>
   * <strong>mqseries_connx()</strong>
   * <strong>mqseries_open()</strong>


id: mqseries_open
type: function
doc:
<comment>Description:</comment>
  MQSeries MQOPEN
  
  The <strong>mqseries_open()</strong> (MQOPEN) call establishes access to an object.

<comment>Param:</comment>
  <info></info>          <strong>$hConn</strong>     Connection handle.
                       
                       This handle represents the connection to the queue manager.
  <info>array</info>     <strong>$objDesc</strong>   Object descriptor. (MQOD)
  <info></info>          <strong>$options</strong>   Options that control the action of the function.
  <info></info>          <strong>$hObj</strong>      Object handle.
                       
                       This handle represents the object to be used.
  <info>resource</info>  <strong>$compCode</strong>  Completion code.
  <info>resource</info>  <strong>$reason</strong>    Reason code qualifying the compCode.

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

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


id: mqseries_put
type: function
doc:
<comment>Description:</comment>
  MQSeries MQPUT
  
  The <strong>mqseries_put()</strong> (MQPUT) call puts a message on a queue or distribution list. The queue or
  distribution list must already be open.

<comment>Param:</comment>
  <info>resource</info>  <strong>$hConn</strong>     Connection handle.
                       
                       This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$hObj</strong>      Object handle.
                       
                       This handle represents the object to be used.
  <info>array</info>     <strong>$md</strong>        Message descriptor (MQMD).
  <info>array</info>     <strong>$pmo</strong>       Put message options (MQPMO).
  <info>string</info>    <strong>$message</strong>   The actual message to put onto the queue.
  <info>resource</info>  <strong>$compCode</strong>  Completion code.
  <info>resource</info>  <strong>$reason</strong>    Reason code qualifying the compCode.

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

<comment>See Also:</comment>
   * <strong>mqseries_conn()</strong>
   * <strong>mqseries_connx()</strong>
   * <strong>mqseries_open()</strong>
   * <strong>mqseries_get()</strong>


id: mqseries_put1
type: function
doc:
<comment>Description:</comment>
  MQSeries MQPUT1
  
  The <strong>mqseries_put1()</strong> (MQPUT1) call puts one message on a queue. The queue need not be open.
  
  You can use both the <strong>mqseries_put()</strong> and <strong>mqseries_put1()</strong> calls to put messages on a queue; which
  call to use depends on the circumstances. Use the <strong>mqseries_put()</strong> (MQPUT) call to place multiple
  messages on the same queue. Use the <strong>mqseries_put1()</strong> (MQPUT1) call to put only one message on a
  queue. This call encapsulates the MQOPEN, MQPUT, and MQCLOSE calls into a single call, minimizing
  the number of calls that must be issued.

<comment>Param:</comment>
  <info></info>          <strong>$hConn</strong>     Connection handle.
                       
                       This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$objDesc</strong>   Object descriptor. (MQOD)
                       
                       This is a structure which identifies the queue to which the message is added.
  <info>resource</info>  <strong>$msgDesc</strong>   Message descriptor (MQMD).
  <info>resource</info>  <strong>$pmo</strong>       Put message options (MQPMO).
  <info>resource</info>  <strong>$compCode</strong>  Completion code.
  <info>resource</info>  <strong>$reason</strong>    Reason code qualifying the compCode.

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

<comment>See Also:</comment>
   * <strong>mqseries_conn()</strong>
   * <strong>mqseries_connx()</strong>
   * <strong>mqseries_open()</strong>
   * <strong>mqseries_get()</strong>


id: mqseries_set
type: function
doc:
<comment>Description:</comment>
  MQSeries MQSET
  
  The <strong>mqseries_set()</strong> (MQSET) call is used to change the attributes of an object represented by a
  handle. The object must be a queue.

<comment>Param:</comment>
  <info>resource</info>  <strong>$hConn</strong>           Connection handle.
                             
                             This handle represents the connection to the queue manager.
  <info>resource</info>  <strong>$hObj</strong>            Object handle.
                             
                             This handle represents the object to be used.
  <info>int</info>       <strong>$selectorCount</strong>   Count of selectors.
  <info>array</info>     <strong>$selectors</strong>       Array of attribute selectors.
  <info>int</info>       <strong>$intAttrCount</strong>    Count of integer attributes.
  <info>array</info>     <strong>$intAttrs</strong>        Array of integer attributes.
  <info>int</info>       <strong>$charAttrLength</strong>  Length of character attributes buffer.
  <info>array</info>     <strong>$charAttrs</strong>       Character attributes.
  <info>resource</info>  <strong>$compCode</strong>        Completion code.
  <info>resource</info>  <strong>$reason</strong>          Reason code qualifying the compCode.

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

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


id: mqseries_strerror
type: function
doc:
<comment>Description:</comment>
  Returns the error message corresponding to a result code (MQRC)
  
  <strong>mqseries_strerror()</strong> returns the message that correspond to the reason result code.

<comment>Param:</comment>
  <info>int</info>  <strong>$reason</strong>  Reason code qualifying the compCode.

<comment>Return:</comment>
  <info>string</info>  string representation of the reason code message.


id: msg_get_queue
type: function
doc:
<comment>Description:</comment>
  Create or attach to a message queue
  
  <strong>msg_get_queue()</strong> returns an id that can be used to access the System V message queue with the given
  <strong>$key</strong>. The first call creates the message queue with the optional <strong>$permissions</strong>. A second call to
  <strong>msg_get_queue()</strong> for the same <strong>$key</strong> will return a different message queue identifier, but both
  identifiers access the same underlying message queue.

<comment>Param:</comment>
  <info>int</info>  <strong>$key</strong>          Message queue numeric ID
  <info>int</info>  <strong>$permissions</strong>  Queue permissions. Default to 0666. If the message queue already exists, the
                     <strong>$permissions</strong> will be ignored.

<comment>Return:</comment>
  <info>SysvMessageQueue|false</info>  Returns <class>SysvMessageQueue</class> instance that can be used to access the System V
                          message queue, 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>msg_remove_queue()</strong>
   * <strong>msg_receive()</strong>
   * <strong>msg_send()</strong>
   * <strong>msg_stat_queue()</strong>
   * <strong>msg_set_queue()</strong>


id: msg_queue_exists
type: function
doc:
<comment>Description:</comment>
  Check whether a message queue exists
  
  Checks whether the message queue <strong>$key</strong> exists.

<comment>Param:</comment>
  <info>int</info>  <strong>$key</strong>  Queue key.

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

<comment>See Also:</comment>
   * <strong>msg_remove_queue()</strong>
   * <strong>msg_receive()</strong>
   * <strong>msg_stat_queue()</strong>


id: msg_receive
type: function
doc:
<comment>Description:</comment>
  Receive a message from a message queue
  
  <strong>msg_receive()</strong> will receive the first message from the specified <strong>$queue</strong> of the type specified by
  <strong>$desired_message_type</strong>.

<comment>Param:</comment>
  <info>SysvMessageQueue</info>  <strong>$queue</strong>                  The message queue.
  <info>int</info>               <strong>$desired_message_type</strong>   If <strong>$desired_message_type</strong> is 0, the message from the
                                            front of the queue is returned. If <strong>$desired_message_type</strong>
                                            is greater than 0, then the first message of that type
                                            is returned. If <strong>$desired_message_type</strong> is less than 0,
                                            the first message on the queue with a type less than or
                                            equal to the absolute value of <strong>$desired_message_type</strong>
                                            will be read. If no messages match the criteria, your
                                            script will wait until a suitable message arrives on the
                                            queue.  You can prevent the script from blocking by
                                            specifying <info>MSG_IPC_NOWAIT</info> in the <strong>$flags</strong> parameter.
  <info>int</info>               <strong>$received_message_type</strong>  The type of the message that was received will be stored
                                            in this parameter.
  <info>int</info>               <strong>$max_message_size</strong>       The maximum size of message to be accepted is specified
                                            by the <strong>$max_message_size</strong>; if the message in the queue is
                                            larger than this size the function will fail (unless you
                                            set <strong>$flags</strong> as described below).
  <info>mixed</info>             <strong>$message</strong>                The received message will be stored in <strong>$message</strong>, unless
                                            there were errors receiving the message.
  <info>bool</info>              <strong>$unserialize</strong>            If set to <info>true</info>, the message is treated as though it was
                                            serialized using the same mechanism as the session
                                            module. The message will be unserialized and then
                                            returned to your script. This allows you to easily
                                            receive arrays or complex object structures from other
                                            PHP scripts, or if you are using the WDDX serializer,
                                            from any WDDX compatible source.
                                            
                                            If <strong>$unserialize</strong> is <info>false</info>, the message will be returned
                                            as a binary-safe string.
  <info>int</info>               <strong>$flags</strong>                  The optional <strong>$flags</strong> allows you to pass flags to the
                                            low-level msgrcv system call.  It defaults to 0, but you
                                            may specify one or more of the following values (by
                                            adding or ORing them together). Flag values for
                                            msg_receive<info>MSG_IPC_NOWAIT</info>If there are no messages of the
                                            <strong>$desired_message_type</strong>, return immediately and do not
                                            wait.  The function will fail and return an integer
                                            value corresponding to <info>MSG_ENOMSG</info>. <info>MSG_EXCEPT</info>Using this
                                            flag in combination with a <strong>$desired_message_type</strong> greater
                                            than 0 will cause the function to receive the first
                                            message that is not equal to
                                            <strong>$desired_message_type</strong>.<info>MSG_NOERROR</info> If the message is
                                            longer than <strong>$max_message_size</strong>, setting this flag will
                                            truncate the message to <strong>$max_message_size</strong> and will not
                                            signal an error.
  <info>int</info>               <strong>$error_code</strong>             If the function fails, the optional <strong>$error_code</strong> will be
                                            set to the value of the system errno variable.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。
        
        Upon successful completion the message queue data structure is updated as follows: <return>msg_lrpid</return>
        is set to the process-ID of the calling process, <return>msg_qnum</return> is decremented by 1 and <return>msg_rtime</return>
        is set to the current time.

<comment>See Also:</comment>
   * <strong>msg_remove_queue()</strong>
   * <strong>msg_send()</strong>
   * <strong>msg_stat_queue()</strong>
   * <strong>msg_set_queue()</strong>


id: msg_remove_queue
type: function
doc:
<comment>Description:</comment>
  Destroy a message queue
  
  <strong>msg_remove_queue()</strong> destroys the message queue specified by the <strong>$queue</strong>.  Only use this function
  when all processes have finished working with the message queue and you need to release the system
  resources held by it.

<comment>Param:</comment>
  <info>SysvMessageQueue</info>  <strong>$queue</strong>  The message queue.

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

<comment>See Also:</comment>
   * <strong>msg_get_queue()</strong>
   * <strong>msg_receive()</strong>
   * <strong>msg_stat_queue()</strong>
   * <strong>msg_set_queue()</strong>


id: msg_send
type: function
doc:
<comment>Description:</comment>
  Send a message to a message queue
  
  <strong>msg_send()</strong> sends a <strong>$message</strong> of type <strong>$message_type</strong> (which MUST be greater than 0) to the message
  queue specified by <strong>$queue</strong>.

<comment>Param:</comment>
  <info>SysvMessageQueue</info>       <strong>$queue</strong>         The message queue.
  <info>int</info>                    <strong>$message_type</strong>  The type of the message (MUST be greater than 0)
  <info>string|int|float|bool</info>  <strong>$message</strong>       The body of the message.
                                        
                                        If <strong>$serialize</strong> set to <info>false</info> is supplied, MUST be of type:
                                        <info>string</info>, <info>int</info>, <info>float</info>  or <info>bool</info>. In other case a warning will be
                                        issued.
  <info>bool</info>                   <strong>$serialize</strong>     The optional <strong>$serialize</strong> controls how the <strong>$message</strong> is sent.
                                        <strong>$serialize</strong> defaults to <info>true</info> which means that the <strong>$message</strong> is
                                        serialized using the same mechanism as the session module
                                        before being sent to the queue.  This allows complex arrays
                                        and objects to be sent to other PHP scripts, or if you are
                                        using the WDDX serializer, to any WDDX compatible client.
  <info>bool</info>                   <strong>$blocking</strong>      If the message is too large to fit in the queue, your script
                                        will wait until another process reads messages from the
                                        queue and frees enough space for your message to be sent.
                                        This is called blocking; you can prevent blocking by setting
                                        the optional <strong>$blocking</strong> parameter to <info>false</info>, in which case
                                        <strong>msg_send()</strong> will immediately return <info>false</info> if the message is
                                        too big for the queue, and set the optional <strong>$error_code</strong> to
                                        <info>MSG_EAGAIN</info>, indicating that you should try to send your
                                        message again a little later on.
  <info>int</info>                    <strong>$error_code</strong>    If the function fails, the optional errorcode will be set to
                                        the value of the system errno variable.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。
        
        Upon successful completion the message queue data structure is updated as follows:
        <strong>$msg_lspid</strong> is set to the process-ID of the calling process, <strong>$msg_qnum</strong> is incremented by 1
        and <strong>$msg_stime</strong> is set to the current time.

<comment>See Also:</comment>
   * <strong>msg_remove_queue()</strong>
   * <strong>msg_receive()</strong>
   * <strong>msg_stat_queue()</strong>
   * <strong>msg_set_queue()</strong>


id: msg_set_queue
type: function
doc:
<comment>Description:</comment>
  Set information in the message queue data structure
  
  <strong>msg_set_queue()</strong> allows you to change the values of the msg_perm.uid, msg_perm.gid, msg_perm.mode
  and msg_qbytes fields of the underlying message queue data structure.
  
  Changing the data structure will require that PHP be running as the same user that created the
  queue, owns the queue (as determined by the existing msg_perm.xxx fields), or be running with root
  privileges. root privileges are required to raise the msg_qbytes values above the system defined
  limit.

<comment>Param:</comment>
  <info>SysvMessageQueue</info>  <strong>$queue</strong>  The message queue.
  <info>array</info>             <strong>$data</strong>   You specify the values you require by setting the value of the keys that
                            you require in the <strong>$data</strong> array.

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

<comment>See Also:</comment>
   * <strong>msg_remove_queue()</strong>
   * <strong>msg_receive()</strong>
   * <strong>msg_stat_queue()</strong>
   * <strong>msg_get_queue()</strong>


id: msg_stat_queue
type: function
doc:
<comment>Description:</comment>
  Returns information from the message queue data structure
  
  <strong>msg_stat_queue()</strong> returns the message queue meta data for the message queue specified by the
  <strong>$queue</strong>. This is useful, for example, to determine which process sent the message that was just
  received.

<comment>Param:</comment>
  <info>SysvMessageQueue</info>  <strong>$queue</strong>  The message queue.

<comment>Return:</comment>
  <info>array|false</info>  On success, the return value is an array whose keys and values have the following
               meanings: Array structure for msg_stat_queue<return>msg_perm.uid</return> The uid of the owner of the
               queue. <return>msg_perm.gid</return> The gid of the owner of the queue. <return>msg_perm.mode</return> The file access
               mode of the queue. <return>msg_stime</return> The time that the last message was sent to the queue.
               <return>msg_rtime</return> The time that the last message was received from the queue. <return>msg_ctime</return> The
               time that the queue was last changed. <return>msg_qnum</return> The number of messages waiting to be
               read from the queue. <return>msg_qbytes</return> The maximum number of bytes allowed in one message
               queue. On Linux, this value may be read and modified via /proc/sys/kernel/msgmnb.
               <return>msg_lspid</return> The pid of the process that sent the last message to the queue. <return>msg_lrpid</return>
               The pid of the process that received the last message from the queue.
               
               Returns <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>msg_remove_queue()</strong>
   * <strong>msg_receive()</strong>
   * <strong>msg_get_queue()</strong>
   * <strong>msg_set_queue()</strong>


id: mt_getrandmax
type: function
doc:
<comment>Description:</comment>
  显示随机数的最大可能值
  
  返回调用 <strong>mt_rand()</strong> 所能返回的最大的随机数。

<comment>Return:</comment>
  <info>int</info>  返回不带参数调用 <strong>mt_rand()</strong> 时获取到的最大随机值，这可用于 <strong>$max</strong> 参数而不是放大结果的最大值（更
       少的随机）。

<comment>See Also:</comment>
   * <strong>mt_rand()</strong>
   * <strong>mt_srand()</strong>
   * <strong>getrandmax()</strong>


id: mt_rand
type: function
doc:
<comment>Description:</comment>
  通过梅森旋转（Mersenne Twister）随机数生成器生成随机值
  
  很多老的 libc 的随机数发生器具有一些不确定和未知的特性而且很慢。<strong>mt_rand()</strong> 函数是旧的 <strong>rand()</strong> 的临时
  替代。该函数用了梅森旋转中已知的特性作为随机数发生器，它可以产生随机数值的平均速度比 libc 提供的
  rand() 快四倍。
  
  如果没有提供可选参数 <strong>$min</strong> 和 <strong>$max</strong>，<strong>mt_rand()</strong> 返回 0 到 <strong>mt_getrandmax()</strong> 之间的伪随机数。例如想要 5
  到 15（包括 5 和 15）之间的随机数，用 <return>mt_rand(5, 15)</return>。
  
  本函数并不会生成安全加密的值，并且不可用于加密或者要求返回值不可猜测的目的。
  
  如果需要加密安全随机，则可以将 <class>Random\Engine\Secure</class> 引擎用于 <class>Random\Randomizer</class>。对于简单的用例，
  <strong>random_int()</strong> 和 <strong>random_bytes()</strong> 函数提供了操作系统的 CSPRNG 支持的方便且安全的 API。

<comment>Param:</comment>
  <info>int</info>  <strong>$min</strong>  可选的、返回的最小值（默认：0）
  <info>int</info>  <strong>$max</strong>  可选的、返回的最大值（默认：<strong>mt_getrandmax()</strong>）

<comment>Return:</comment>
  <info>int</info>  返回 <strong>$min</strong>（或者 0）到 <strong>$max</strong>（或者是到 <strong>mt_getrandmax()</strong>，包含这个值）之间的随机整数，如果 <strong>$max</strong>
       小于 <strong>$min</strong> 则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mt_srand()</strong>
   * <strong>mt_getrandmax()</strong>
   * <strong>random_int()</strong>
   * <strong>random_bytes()</strong>


id: mt_srand
type: function
doc:
<comment>Description:</comment>
  播下一个更好的随机数发生器种子
  
  用 <strong>$seed</strong> 来给随机数发生器播种。 没有设定 <strong>$seed</strong> 参数时，会被设为随时数。
  
  不再需要用
  <strong>srand()</strong> 或 <strong>mt_srand()</strong>
  给随机数发生器播种，因为现在是由系统自动完成的。
  
  由于 Mt19937（“梅森旋转算法”）引擎仅接受 32 位整数作为种子，因此尽管 Mt19937 的范围为 219937-1，但
  可能的随机序列数量仅限于 232（即 4,294,967,296）。
  
  当依赖隐式或显式随机播种时，重复会出现得更早。根据生日问题，在少于 80,000 个随机生成的种子后，预计
  重复种子的概率为 50%。在随机生成大约 30,000 个种子后，重复种子的概率为 10%。
  
  This makes Mt19937 unsuitable for applications where duplicated sequences must not happen with
  more than a negligible probability. 如果需要可重复的种子，<class>Random\Engine\Xoshiro256StarStar</class> 和
  <class>Random\Engine\PcgOneseq128XslRr64</class> 引擎都支持更大的种子，它们不太可能随机碰撞。如果不需要再现性，
  <class>Random\Engine\Secure</class> 引擎提供加密安全随机性。

<comment>Param:</comment>
  <info>int</info>  <strong>$seed</strong>  任意 <info>int</info> 种子值。
  <info>int</info>  <strong>$mode</strong>  使用以下一个常量指定要使用的实现算法。 <info>MT_RAND_MT19937</info>： 正确的 Mt19937 实现，自 PHP
              7.1.0 起可用。 <info>MT_RAND_PHP</info> 使用不正确的梅森旋转（Mersenne Twister）实现，在 PHP 7.1.0
              之前一直用于默认实现，此模式可用于向后兼容。
              
              本特性已自 PHP 8.3.0
              起废弃。强烈建议不要使用本特性。

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

<comment>See Also:</comment>
   * <strong>mt_rand()</strong>
   * <strong>mt_getrandmax()</strong>
   * <strong>srand()</strong>


id: mysql_affected_rows
type: function
doc:
<comment>Description:</comment>
  取得前一次 MySQL 操作所影响的记录行数
  
  取得最近一次与 <strong>$link_identifier</strong> 关联的 INSERT，UPDATE 或 DELETE 查询所影响的记录行数。

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

<comment>Return:</comment>
  <info>int</info>  执行成功则返回受影响的行的数目，如果最近一次查询失败的话，函数返回 -1。
       
       如果最近一次操作是没有任何条件（WHERE）的 DELETE 查询，在表中所有的记录都会被删除，但本函数返
       回值在 4.1.2 版之前都为 0。
       
       当使用 UPDATE 查询，MySQL 不会将原值和新值一样的列更新。这样使得 <strong>mysql_affected_rows()</strong> 函数返
       回值不一定就是查询条件所符合的记录数，只有真正被修改的记录数才会被返回。
       
       REPLACE 语句首先删除具有相同主键的记录，然后插入一个新记录。本函数返回的是被删除的记录数加上
       被插入的记录数。
       
       "INSERT ... ON DUPLICATE KEY UPDATE" 这种情况的查询，当执行了一次 INSERT 返回的值会是 <return>1</return>；如果
       是对已经存在的记录执行一次 UPDATE 将返回 <return>2</return>。

<comment>See Also:</comment>
   * <strong>mysql_num_rows()</strong>
   * <strong>mysql_info()</strong>


id: mysql_client_encoding
type: function
doc:
<comment>Description:</comment>
  返回字符集的名称
  
  从 MySQL 中取得 <return>character_set</return> 变量的值。

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

<comment>Return:</comment>
  <info>string</info>  返回当前连接的默认字符集名称。

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


id: mysql_close
type: function
doc:
<comment>Description:</comment>
  关闭 MySQL 连接
  
  <strong>mysql_close()</strong> 关闭指定的连接标识所关联的到 MySQL 服务器的非持久连接。如果没有指定
  <strong>$link_identifier</strong>，则关闭上一个打开的连接。
  
  建立非持久性的 MySQL 连接，会在 PHP
  执行完毕后自动销毁，所以手动关闭连接，并释放资源是可选的。但是还是推荐你在代码中显性的执行该操作，
  这对提高代码性能有帮助。参考文档
  资源释放

<comment>Param:</comment>
  <info></info>  <strong>$link_identifier</strong>  MySQL 连接. 如果该连接标识符未给出, 将使用最近一次<strong>mysql_connect()</strong>建立的连接. 
                      如果没有找到可使用的连接, 将产生一个 <info>E_WARNING</info> 错误.

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

<comment>See Also:</comment>
   * <strong>mysql_connect()</strong>
   * <strong>mysql_free_result()</strong>


id: mysql_connect
type: function
doc:
<comment>Description:</comment>
  打开一个到 MySQL 服务器的连接
  
  打开或重复使用一个到 MySQL 服务器的连接。

<comment>Param:</comment>
  <info>string</info>  <strong>$server</strong>        MySQL 服务器。可以包括端口号，例如 "hostname:port"，或者到本地套接字的路
                         径，例如对于 localhost 的 ":/path/to/socket"。
                         
                         如果 PHP 指令  mysql.default_host 未定义（默认情况），则默认值是
                         'localhost:3306'。 在 SQL 安全模式 时，参数被忽略，总是使用
                         'localhost:3306'。
  <info>string</info>  <strong>$username</strong>      用户名。默认值由 mysql.default_user 定义。 在 SQL 安全模式 时，参数被忽略，
                         总是使用服务器进程所有者的用户名。
  <info>string</info>  <strong>$password</strong>      密码。默认值由mysql.default_password定义。在 SQL 安全模式 时，参数被忽略，
                         总是使用空密码。
  <info>bool</info>    <strong>$new_link</strong>      如果用同样的参数第二次调用 <strong>mysql_connect()</strong>，将不会建立新连接，而将返回已经
                         打开的连接标识。参数 <strong>$new_link</strong> 改变此行为并使 <strong>mysql_connect()</strong> 总是打开新的
                         连接，甚至当 <strong>mysql_connect()</strong> 曾在前面被用同样的参数调用过。
  <info>int</info>     <strong>$client_flags</strong>  <strong>$client_flags</strong> 参数可以是以下常量的组合：<info>MYSQL_CLIENT_SSL</info>，
                         <info>MYSQL_CLIENT_COMPRESS</info>，<info>MYSQL_CLIENT_IGNORE_SPACE</info> 或
                         <info>MYSQL_CLIENT_INTERACTIVE</info>。进一步信息见 。

<comment>Return:</comment>
  <info>resource|false</info>  如果成功则返回一个 MySQL 连接标识， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mysql_pconnect()</strong>
   * <strong>mysql_close()</strong>


id: mysql_create_db
type: function
doc:
<comment>Description:</comment>
  新建一个 MySQL 数据库
  
  <strong>mysql_create_db()</strong> 尝试在指定的连接标识所关联的服务器上建立一个新数据库。

<comment>Param:</comment>
  <info></info>          <strong>$database_name</strong>    要创建的数据库名。
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

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

<comment>See Also:</comment>
   * <strong>mysql_query()</strong>
   * <strong>mysql_select_db()</strong>


id: mysql_data_seek
type: function
doc:
<comment>Description:</comment>
  移动内部结果的指针
  
  <strong>mysql_data_seek()</strong> 将指定的结果标识所关联的 MySQL 结果内部的行指针移动到指定的行号。接着调用
  <strong>mysql_fetch_row()</strong> 将返回那一行。
  
  <strong>$row_number</strong> 从 0 开始。<strong>$row_number</strong> 的取值范围应该从 0 到 mysql_num_rows - 1。但是如果结果集为空
  （<strong>mysql_num_rows()</strong> == 0），要将指针移动到 0 会失败并发出 <info>E_WARNING</info> 级的错误，<strong>mysql_data_seek()</strong> 将
  返回 <info>false</info>。

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>      <info>resource</info>
                         型的结果集。此结果集来自对 <strong>mysql_query()</strong>
                         的调用。
  <info>int</info>       <strong>$row_number</strong>  想要设定的新的结果集指针的行数。

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

<comment>See Also:</comment>
   * <strong>mysql_query()</strong>
   * <strong>mysql_num_rows()</strong>
   * <strong>mysql_fetch_row()</strong>
   * <strong>mysql_fetch_assoc()</strong>
   * <strong>mysql_fetch_array()</strong>
   * <strong>mysql_fetch_object()</strong>


id: mysql_db_name
type: function
doc:
<comment>Description:</comment>
  取得 mysql_list_dbs 返回的结果数据
  
  取得 <strong>mysql_list_dbs()</strong> 调用所返回的数据库名。

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  <strong>mysql_list_dbs()</strong> 调用所返回的结果指针。
  <info>int</info>       <strong>$row</strong>     结果集中的行号。
  <info>mixed</info>     <strong>$field</strong>   字段名。

<comment>Return:</comment>
  <info>string</info>  如果成功则返回数据库名，失败返回 <info>false</info>。如果返回了 <info>false</info>，用 <strong>mysql_error()</strong> 来判断错误的种
          类。

<comment>See Also:</comment>
   * <strong>mysql_list_dbs()</strong>
   * <strong>mysql_tablename()</strong>


id: mysql_db_query
type: function
doc:
<comment>Description:</comment>
  选择数据库并执行查询
  
  <strong>mysql_db_query()</strong> 选择数据库并执行查询。

<comment>Param:</comment>
  <info>string</info>    <strong>$database</strong>         要选择的数据库名。
  <info>string</info>    <strong>$query</strong>            MySQL 查询。
                              
                              查询中的数据应正确转义。
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

<comment>Return:</comment>
  <info>resource|bool</info>  返回正的 MySQL 结果资源到查询结果，出错时返回 <info>false</info>。本函数会对
                 <return>INSERT</return>/<return>UPDATE</return>/<return>DELETE</return> 查询返回 <info>true</info>/<info>false</info> 来指示成功或失败。

<comment>See Also:</comment>
   * <strong>mysql_query()</strong>
   * <strong>mysql_select_db()</strong>


id: mysql_drop_db
type: function
doc:
<comment>Description:</comment>
  丢弃（删除）一个 MySQL 数据库
  
  <strong>mysql_drop_db()</strong> 尝试丢弃（删除）指定连接标识所关联的服务器上的一整个数据库。
  
  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。
  
  为向下兼容也可以用 <strong>mysql_dropdb()</strong>，但反对这样做。
  
  不提倡使用 <strong>mysql_drop_db()</strong> 函数。最好用 <strong>mysql_query()</strong> 提交一条 <return>SQL DROP DATABASE</return> 语句来替代。
  
  如果 MySQL 扩展库是基于 MySQL 4.x 客户端库建立的，则本函数不可用。
  
  参见 <strong>mysql_create_db()</strong> 和 <strong>mysql_query()</strong>。

<comment>Param:</comment>
  <info>string</info>  <strong>$database_name</strong>    The name of the database that will be deleted.
  <info></info>        <strong>$link_identifier</strong>  MySQL
                            连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                            最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                            <strong>mysql_connect()</strong>
                            来创建。如没有找到连接或无法建立连接，则会生成
                            <info>E_WARNING</info> 级别的错误。

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

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


id: mysql_errno
type: function
doc:
<comment>Description:</comment>
  返回上一个 MySQL 操作中的错误信息的数值
  
  返回上一个 MySQL 函数的错误号码。
  
  从 MySQL 数据库后端来的错误不再发出警告。要用 <strong>mysql_errno()</strong> 来检索错误代码。注意本函数仅返回最近执
  行的 MySQL 函数（不包括 <strong>mysql_error()</strong> 和 <strong>mysql_errno()</strong>）的错误代码，因此如果要使用此函数，确保在调
  用另一个 MySQL 函数之前检查它的值。

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

<comment>Return:</comment>
  <info>int</info>  Returns the error number from the last MySQL function, or <return>0</return> (zero) if no error occurred.

<comment>See Also:</comment>
   * <strong>mysql_error()</strong>
   * MySQL 错误代码


id: mysql_error
type: function
doc:
<comment>Description:</comment>
  返回上一个 MySQL 操作中的错误信息的文本
  
  返回上一个 MySQL 函数的错误文本。
   从 MySQL 数据库后端来的错误不再发出警告。要用 <strong>mysql_error()</strong> 来检索错误文本。注意本函数仅返回最近
  执行的 MySQL 函数（不包括 <strong>mysql_error()</strong> 和 <strong>mysql_errno()</strong>）的错误文本，因此如果要使用此函数，确保在
  调用另一个 MySQL 函数之前检查它的值。

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

<comment>Return:</comment>
  <info>string</info>  返回上一个 MySQL 函数的错误文本，如果没有出错则返回 <return>''</return>（空字符串）。

<comment>See Also:</comment>
   * <strong>mysql_errno()</strong>
   * MySQL 错误代码


id: mysql_escape_string
type: function
doc:
<comment>Description:</comment>
  转义字符串用于 mysql_query
  
  本函数将转义 <strong>$unescaped_string</strong>，使之可以安全用于 <strong>mysql_query()</strong>。此函数已弃用。
  
  本函数和 <strong>mysql_real_escape_string()</strong> 相同，除了 <strong>mysql_real_escape_string()</strong> 接受连接处理程序并根据当
  前字符集进行转义。<strong>mysql_escape_string()</strong> 不接受连接参数，也不遵循当前字符集设定。

<comment>Param:</comment>
  <info>string</info>  <strong>$unescaped_string</strong>  要转义的字符串。

<comment>Return:</comment>
  <info>string</info>  返回转义后的字符串。

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


id: mysql_fetch_array
type: function
doc:
<comment>Description:</comment>
  从结果集中取得一行作为关联数组
  
  <strong>mysql_fetch_array()</strong> 是 <strong>mysql_fetch_row()</strong> 的扩展版本。除了将数据以数字索引方式储存在数组中之外，还
  可以将数据作为关联索引储存，用字段名作为键名。
  
  有一点很重要必须指出，用 <strong>mysql_fetch_array()</strong> 并不明显 比用 <strong>mysql_fetch_row()</strong> 慢，而且还提供了明显
  更多的值。

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>       <info>resource</info>
                          型的结果集。此结果集来自对 <strong>msql_query()</strong>
                          的调用。
  <info>int</info>       <strong>$result_type</strong>  接受以下常量值： <info>MSQL_ASSOC</info>，<info>MSQL_NUM</info> 和 <info>MSQL_BOTH</info>，默认为 <info>MSQL_BOTH</info>。如果
                          用了 MYSQL_BOTH，将得到一个同时包含关联和数字索引的数组。用 MYSQL_ASSOC 只
                          得到关联索引（如同 <strong>mysql_fetch_assoc()</strong> 那样），用 MYSQL_NUM 只得到数字索引
                          （如同 <strong>mysql_fetch_row()</strong> 那样）。

<comment>Return:</comment>
  <info>array</info>  返回根据从结果集取得的行生成的数组，如果没有更多行则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>msql_fetch_row()</strong>
   * <strong>msql_fetch_object()</strong>
   * <strong>msql_data_seek()</strong>
   * <strong>msql_result()</strong>


id: mysql_fetch_assoc
type: function
doc:
<comment>Description:</comment>
  从结果集中取得一行作为关联数组
      
  
  返回对应结果集的关联数组，并且继续移动内部数据指针。 <strong>mysql_fetch_assoc()</strong> 和用 <strong>mysql_fetch_array()</strong>
  加上第二个可选参数  MYSQL_ASSOC 完全相同。它仅仅返回关联数组。

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  <info>resource</info>
                     型的结果集。此结果集来自对 <strong>mysql_query()</strong>
                     的调用。

<comment>Return:</comment>
  <info>array</info>  返回根据从结果集取得的行生成的关联数组；如果没有更多行则返回 <info>false</info>。
         
         如果结果中的两个或以上的列具有相同字段名，最后一列将优先。要访问同名的其它列，要么用
         <strong>mysql_fetch_row()</strong> 来取得数字索引或给该列起个别名。 参见 <strong>mysql_fetch_array()</strong> 例子中有关别名
         说明。

<comment>See Also:</comment>
   * <strong>mysql_fetch_row()</strong>
   * <strong>mysql_fetch_array()</strong>
   * <strong>mysql_data_seek()</strong>
   * <strong>mysql_query()</strong>
   * <strong>mysql_error()</strong>


id: mysql_fetch_field
type: function
doc:
<comment>Description:</comment>
  从结果集中取得列信息并作为对象返回
      
  
  返回一个包含字段信息的对象。
  
  <strong>mysql_fetch_field()</strong> 可以用来从某个查询结果中取得字段的信息。如果没有指定字段偏移量，则下一个尚未被
  <strong>mysql_fetch_field()</strong> 取得的字段被提取。
  
  对象的属性为：  name - 列名  table - 该列所在的表名，which is the alias name if one is defined
  max_length - 该列最大长度  not_null - 1，如果该列不能为 <info>null</info>  primary_key - 1，如果该列是 primary
  key  unique_key - 1，如果该列是 unique key  multiple_key - 1，如果该列是 non-unique key  numeric -
  1，如果该列是 numeric  blob - 1，如果该列是 BLOB  type - 该列的类型  unsigned - 1，如果该列是无符
  号数  zerofill - 1，如果该列是 zero-filled
  
  name - 列名
  
  table - 该列所在的表名，which is the alias name if one is defined
  
  max_length - 该列最大长度
  
  not_null - 1，如果该列不能为 <info>null</info>
  
  primary_key - 1，如果该列是 primary key
  
  unique_key - 1，如果该列是 unique key
  
  multiple_key - 1，如果该列是 non-unique key
  
  numeric - 1，如果该列是 numeric
  
  blob - 1，如果该列是 BLOB
  
  type - 该列的类型
  
  unsigned - 1，如果该列是无符号数
  
  zerofill - 1，如果该列是 zero-filled
  
  此函数返回的字段名大小写敏感。
  
  <strong>mysql_fetch_field()</strong>
  ]]>
  
  参见 <strong>mysql_field_seek()</strong>。

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        <info>resource</info>
                           型的结果集。此结果集来自对 <strong>mysql_query()</strong>
                           的调用。
  <info>int</info>       <strong>$field_offset</strong>  The numerical field offset. If the field offset is not specified, the
                           next field that was not yet retrieved by this function is retrieved.  The
                           <strong>$field_offset</strong> starts at <return>0</return>.

<comment>Return:</comment>
  <info>object</info>  Returns an <info>object</info> containing field information. The properties  of the object are:
          
           name - column name  table - name of the table the column belongs to  max_length - maximum
          length of the column  not_null - 1 if the column cannot be <info>null</info>  primary_key - 1 if the
          column is a primary key  unique_key - 1 if the column is a unique key  multiple_key - 1 if
          the column is a non-unique key  numeric - 1 if the column is numeric  blob - 1 if the
          column is a BLOB  type - the type of the column  unsigned - 1 if the column is unsigned
          zerofill - 1 if the column is zero-filled
          
          name - column name
          
          table - name of the table the column belongs to
          
          max_length - maximum length of the column
          
          not_null - 1 if the column cannot be <info>null</info>
          
          primary_key - 1 if the column is a primary key
          
          unique_key - 1 if the column is a unique key
          
          multiple_key - 1 if the column is a non-unique key
          
          numeric - 1 if the column is numeric
          
          blob - 1 if the column is a BLOB
          
          type - the type of the column
          
          unsigned - 1 if the column is unsigned
          
          zerofill - 1 if the column is zero-filled

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


id: mysql_fetch_lengths
type: function
doc:
<comment>Description:</comment>
  取得结果集中每个输出的长度
  
  返回数组，对应 MySQL 查询中获取的最后一行的每个字段的长度。
  
  <strong>mysql_fetch_lengths()</strong> 将上一次 <strong>mysql_fetch_row()</strong>、<strong>mysql_fetch_assoc()</strong>、<strong>mysql_fetch_array()</strong> 和
  <strong>mysql_fetch_object()</strong> 所返回的最后一行的每个字段的长度储存到一个数组中，偏移量从 0 开始。

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  <info>resource</info>
                     型的结果集。此结果集来自对 <strong>mysql_query()</strong>
                     的调用。

<comment>Return:</comment>
  <info>array|false</info>  An <info>array</info> of lengths on success 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>mysql_field_len()</strong>
   * <strong>mysql_fetch_row()</strong>
   * <strong>strlen()</strong>


id: mysql_fetch_object
type: function
doc:
<comment>Description:</comment>
  从结果集中取得一行作为对象返回
  
  返回一个对象，其属性与获取的行相对应，并将内部数据指针向前移动。

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>      <info>resource</info>
                         型的结果集。此结果集来自对 <strong>mysql_query()</strong>
                         的调用。
  <info>string</info>    <strong>$class_name</strong>  要实例化、设置属性并返回的类的名称，如果不指定，默认返回 <class>stdClass</class> 对象。
  <info>array</info>     <strong>$params</strong>      可选 <info>array</info> 数组参数，会传递给 <strong>$class_name</strong> 类的构造函数。

<comment>Return:</comment>
  <info>object</info>  返回根据所取得的行生成的对象 <info>object</info>，如果没有更多行则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mysql_fetch_array()</strong>
   * <strong>mysql_fetch_assoc()</strong>
   * <strong>mysql_fetch_row()</strong>
   * <strong>mysql_data_seek()</strong>
   * <strong>mysql_query()</strong>


id: mysql_fetch_row
type: function
doc:
<comment>Description:</comment>
  从结果集中取得一行作为枚举数组
  
  返回根据所取得的行生成的数组，如果没有更多行则返回 <info>false</info>。
  
  <strong>mysql_fetch_row()</strong> 从和指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一
  个数组的单元中，偏移量从 0 开始。
  
  依次调用 <strong>mysql_fetch_row()</strong> 将返回结果集中的下一行，如果没有更多行则返回 <info>false</info>。
  
  参见 <strong>mysql_fetch_array()</strong>，<strong>mysql_fetch_assoc()</strong>，<strong>mysql_fetch_object()</strong>，<strong>mysql_data_seek()</strong>，
  <strong>mysql_fetch_lengths()</strong> 和 <strong>mysql_result()</strong>。

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  <info>resource</info>
                     型的结果集。此结果集来自对 <strong>mysql_query()</strong>
                     的调用。

<comment>Return:</comment>
  <info>array</info>  Returns an numerical array of strings that corresponds to the fetched row, or <info>false</info> if
         there are no more rows.
         
         <strong>mysql_fetch_row()</strong> fetches one row of data from the result associated with the specified
         result identifier.  The row is returned as an array.  Each result column is stored in an
         array offset, starting at offset 0.

<comment>See Also:</comment>
   * <strong>mysql_fetch_array()</strong>
   * <strong>mysql_fetch_assoc()</strong>
   * <strong>mysql_fetch_object()</strong>
   * <strong>mysql_data_seek()</strong>
   * <strong>mysql_fetch_lengths()</strong>
   * <strong>mysql_result()</strong>


id: mysql_field_flags
type: function
doc:
<comment>Description:</comment>
  从结果中取得和指定字段关联的 flags
  
  <strong>mysql_field_flags()</strong> 返回指定字段的字段 flags。每个 flag 都用一个单词表示，之间用一个空格分开，因此
  可以用 <strong>explode()</strong> 将返回值分开。

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        <info>resource</info>
                           型的结果集。此结果集来自对 <strong>mysql_query()</strong>
                           的调用。
  <info>int</info>       <strong>$field_offset</strong>  数值型字段偏移量。
                           <strong>$field_offset</strong> 从 <return>0</return> 开始。如果
                           <strong>$field_offset</strong> 不存在，则会发出一个
                           <info>E_WARNING</info> 级别的错误

<comment>Return:</comment>
  <info>string|false</info>  Returns a string of flags associated with the result 或者在失败时返回 <info>false</info>.
                
                如果 MySQL 版本足够新，以便支持这些 flag，则会报告以下 flag：<return>"not_null"</return>、
                <return>"primary_key"</return>、<return>"unique_key"</return>、<return>"multiple_key"</return>、<return>"blob"</return>、<return>"unsigned"</return>、
                <return>"zerofill"</return>,<return>"binary"</return>、<return>"enum"</return>、<return>"auto_increment"</return> 和 <return>"timestamp"</return>。

<comment>See Also:</comment>
   * <strong>mysql_field_type()</strong>
   * <strong>mysql_field_len()</strong>


id: mysql_field_len
type: function
doc:
<comment>Description:</comment>
  返回指定字段的长度
  
  <strong>mysql_field_len()</strong> 返回指定字段的长度。

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        <info>resource</info>
                           型的结果集。此结果集来自对 <strong>mysql_query()</strong>
                           的调用。
  <info>int</info>       <strong>$field_offset</strong>  数值型字段偏移量。
                           <strong>$field_offset</strong> 从 <return>0</return> 开始。如果
                           <strong>$field_offset</strong> 不存在，则会发出一个
                           <info>E_WARNING</info> 级别的错误

<comment>Return:</comment>
  <info>int|false</info>  The length of the specified field index on success 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>mysql_fetch_lengths()</strong>
   * <strong>strlen()</strong>


id: mysql_field_name
type: function
doc:
<comment>Description:</comment>
  取得结果中指定字段的字段名
      
  
  <strong>mysql_field_name()</strong> 返回指定字段索引的字段名。<strong>$result</strong> 必须是一个合法的结果标识符，<strong>$field_index</strong> 是该
  字段的数字偏移量。
  
  <strong>$field_index</strong> 从 0 开始。
  
  例如，第三个字段的索引值其实是 2，第四个字段的索引值是 3，以此类推。
  
  此函数返回的字段名大小写敏感。
  
  <strong>mysql_field_name()</strong> 例子
  ]]> 以上例子将产生如下输出： 
  
  以上例子将产生如下输出：
  
  为向下兼容仍然可以使用 <strong>mysql_fieldname()</strong>，但反对这样做。

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        <info>resource</info>
                           型的结果集。此结果集来自对 <strong>mysql_query()</strong>
                           的调用。
  <info>int</info>       <strong>$field_offset</strong>  数值型字段偏移量。
                           <strong>$field_offset</strong> 从 <return>0</return> 开始。如果
                           <strong>$field_offset</strong> 不存在，则会发出一个
                           <info>E_WARNING</info> 级别的错误

<comment>Return:</comment>
  <info>string|false</info>  The name of the specified field index on success 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>mysql_field_type()</strong>
   * <strong>mysql_field_len()</strong>


id: mysql_field_seek
type: function
doc:
<comment>Description:</comment>
  将结果指针设置为指定的字段偏移量
  
  定位到指定字段偏移量。如果下次调用 <strong>mysql_fetch_field()</strong> 不包含字段偏移量，则会返回
  <strong>mysql_field_seek()</strong> 中指定字段的偏移量。

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        <info>resource</info>
                           型的结果集。此结果集来自对 <strong>mysql_query()</strong>
                           的调用。
  <info>int</info>       <strong>$field_offset</strong>  数值型字段偏移量。
                           <strong>$field_offset</strong> 从 <return>0</return> 开始。如果
                           <strong>$field_offset</strong> 不存在，则会发出一个
                           <info>E_WARNING</info> 级别的错误

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

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


id: mysql_field_table
type: function
doc:
<comment>Description:</comment>
  取得指定字段所在的表名
  
  返回指定字段所在的表名。

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        <info>resource</info>
                           型的结果集。此结果集来自对 <strong>mysql_query()</strong>
                           的调用。
  <info>int</info>       <strong>$field_offset</strong>  数值型字段偏移量。
                           <strong>$field_offset</strong> 从 <return>0</return> 开始。如果
                           <strong>$field_offset</strong> 不存在，则会发出一个
                           <info>E_WARNING</info> 级别的错误

<comment>Return:</comment>
  <info>string</info>  The name of the table on success.

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


id: mysql_field_type
type: function
doc:
<comment>Description:</comment>
  取得结果集中指定字段的类型
      
  
  <strong>mysql_field_type()</strong> 和 <strong>mysql_field_name()</strong> 函数相似。参数完全相同，但返回的是字段类型而不是字段名。
  字段类型有“int”，“real”，“string”，“blob”以及其它，详见 MySQL 手册。 <strong>mysql_field_type()</strong> 例子
  ]]> 以上例子将产生如下输出： 
  
  以上例子将产生如下输出：
  
  为向下兼容仍然可以使用 <strong>mysql_fieldtype()</strong>，但反对这样做。

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        <info>resource</info>
                           型的结果集。此结果集来自对 <strong>mysql_query()</strong>
                           的调用。
  <info>int</info>       <strong>$field_offset</strong>  数值型字段偏移量。
                           <strong>$field_offset</strong> 从 <return>0</return> 开始。如果
                           <strong>$field_offset</strong> 不存在，则会发出一个
                           <info>E_WARNING</info> 级别的错误

<comment>Return:</comment>
  <info>string</info>  The returned field type will be one of <return>"int"</return>, <return>"real"</return>,  <return>"string"</return>, <return>"blob"</return>, and others as
          detailed in the MySQL documentation.

<comment>See Also:</comment>
   * <strong>mysql_field_name()</strong>
   * <strong>mysql_field_len()</strong>


id: mysql_free_result
type: function
doc:
<comment>Description:</comment>
  释放结果内存
  
  <strong>mysql_free_result()</strong> 将释放所有与结果标识符 <strong>$result</strong> 所关联的内存。
  
  <strong>mysql_free_result()</strong> 仅需要在考虑到返回很大的结果集时会占用多少内存时调用。在脚本结束后所有关联的内
  存都会被自动释放。
  
  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。
  
  为向下兼容仍然可以使用 <strong>mysql_freeresult()</strong>，但反对这样做。

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  <info>resource</info>
                     型的结果集。此结果集来自对 <strong>mysql_query()</strong>
                     的调用。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。
        
        If a non-resource is used for the <strong>$result</strong>, an error of level E_WARNING will be emitted.
        It's worth noting that <strong>mysql_query()</strong> only returns a <info>resource</info> for SELECT, SHOW, EXPLAIN, and
        DESCRIBE queries.

<comment>See Also:</comment>
   * <strong>mysql_query()</strong>
   * <strong>is_resource()</strong>


id: mysql_get_client_info
type: function
doc:
<comment>Description:</comment>
  取得 MySQL 客户端信息
  
  <strong>mysql_get_client_info()</strong> 返回表示客户端库版本的字符串。

<comment>Return:</comment>
  <info>string</info>  MySQL 客户端版本。

<comment>See Also:</comment>
   * <strong>mysql_get_host_info()</strong>
   * <strong>mysql_get_proto_info()</strong>
   * <strong>mysql_get_server_info()</strong>


id: mysql_get_host_info
type: function
doc:
<comment>Description:</comment>
  取得 MySQL 主机信息
  
  描述 connection 中使用的连接类型，包括服务器主机名。

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

<comment>Return:</comment>
  <info>string|false</info>  Returns a string describing the type of MySQL connection in use for the connection
                或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>mysql_get_client_info()</strong>
   * <strong>mysql_get_proto_info()</strong>
   * <strong>mysql_get_server_info()</strong>


id: mysql_get_proto_info
type: function
doc:
<comment>Description:</comment>
  取得 MySQL 协议信息
  
  检索 MySQL 协议。

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

<comment>Return:</comment>
  <info>int|false</info>  Returns the MySQL protocol on success 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>mysql_get_client_info()</strong>
   * <strong>mysql_get_host_info()</strong>
   * <strong>mysql_get_server_info()</strong>


id: mysql_get_server_info
type: function
doc:
<comment>Description:</comment>
  取得 MySQL 服务器信息
  
  检索 MySQL 服务器版本。

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

<comment>Return:</comment>
  <info>string|false</info>  Returns the MySQL server version on success 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>mysql_get_client_info()</strong>
   * <strong>mysql_get_host_info()</strong>
   * <strong>mysql_get_proto_info()</strong>
   * <strong>phpversion()</strong>


id: mysql_info
type: function
doc:
<comment>Description:</comment>
  获取最近查询的有关信息
  
  返回最近一条查询的详细信息。

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

<comment>Return:</comment>
  <info>string</info>  在成功时返回语句信息，在失败时返回 <info>false</info>。请查看下面的示例，了解哪些语句提供信息，以及返回
          值可能是什么样子。未列出的语句将返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mysql_affected_rows()</strong>
   * <strong>mysql_insert_id()</strong>
   * <strong>mysql_stat()</strong>


id: mysql_insert_id
type: function
doc:
<comment>Description:</comment>
  取得上一条查询生成的 ID
  
  检索通过之前查询（通常是 INSERT）中 AUTO_INCREMENT 列生成的 ID。

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

<comment>Return:</comment>
  <info>int</info>  成功时返回通过之前查询中 AUTO_INCREMENT 列生成的 ID，如果之前查询没有生成 AUTO_INCREMENT 值，
       则为 <return>0</return>。如果没有建立 MySQL 连接，则为 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mysql_query()</strong>
   * <strong>mysql_info()</strong>


id: mysql_list_dbs
type: function
doc:
<comment>Description:</comment>
  列出 MySQL 服务器中可用的数据库
  
  返回结果指针，包含当前 MySQL 守护进程中可用的数据库。

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

<comment>Return:</comment>
  <info>resource</info>  Returns a result pointer <info>resource</info> on success, or <info>false</info> on failure. 使用
            <strong>mysql_tablename()</strong> 函数或任何使用结果表的函数（比如 <strong>mysql_fetch_array()</strong>）来遍历此结果指
            针。

<comment>See Also:</comment>
   * <strong>mysql_db_name()</strong>
   * <strong>mysql_select_db()</strong>


id: mysql_list_fields
type: function
doc:
<comment>Description:</comment>
  列出 MySQL 表字段
  
  检索指定表名的信息。
  
  此函数已弃用。最好使用 <strong>mysql_query()</strong> 发出 SQL <return>SHOW COLUMNS FROM  table [LIKE 'name']</return> 语句代替。

<comment>Param:</comment>
  <info>string</info>    <strong>$database_name</strong>    The name of the database that's being queried.
  <info>string</info>    <strong>$table_name</strong>       The name of the table that's being queried.
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

<comment>Return:</comment>
  <info>resource</info>  A result pointer <info>resource</info> on success, or <info>false</info> on failure.
            
            结果指针，可以用于 <strong>mysql_field_flags()</strong>、<strong>mysql_field_len()</strong>、<strong>mysql_field_name()</strong> 和
            <strong>mysql_field_type()</strong>。

<comment>See Also:</comment>
   * <strong>mysql_field_flags()</strong>
   * <strong>mysql_info()</strong>


id: mysql_list_processes
type: function
doc:
<comment>Description:</comment>
  列出 MySQL 进程
  
  检索当前 MySQL 服务器线程。

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

<comment>Return:</comment>
  <info>resource|false</info>  A result pointer <info>resource</info> on success 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>mysql_thread_id()</strong>
   * <strong>mysql_stat()</strong>


id: mysql_list_tables
type: function
doc:
<comment>Description:</comment>
  列出 MySQL 数据库中的表
  
  列出 MySQL 数据库中的表。
  
  此函数已废弃。推荐使用 <strong>mysql_query()</strong> 来执行 SQL <return>SHOW TABLES [FROM db_name] [LIKE 'pattern']</return> 来实现
  同样的操作。

<comment>Param:</comment>
  <info>string</info>    <strong>$database</strong>         数据库名称
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

<comment>Return:</comment>
  <info>resource|false</info>  成功时返回结果指针 <info>resource</info>  或者在失败时返回 <info>false</info>。
                  
                  可以使用 <strong>mysql_tablename()</strong> 函数来遍历该结果指针，或者使用任何针对表操作的函数，类
                  似 <strong>mysql_fetch_array()</strong>。

<comment>See Also:</comment>
   * <strong>mysql_list_dbs()</strong>
   * <strong>mysql_tablename()</strong>


id: mysql_num_fields
type: function
doc:
<comment>Description:</comment>
  取得结果中字段的数量
  
  从查询中检索字段的数量。

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  <info>resource</info>
                     型的结果集。此结果集来自对 <strong>mysql_query()</strong>
                     的调用。

<comment>Return:</comment>
  <info>int|false</info>  Returns the number of fields in the result set <info>resource</info> on success 或者在失败时返回
             <info>false</info>.

<comment>See Also:</comment>
   * <strong>mysql_select_db()</strong>
   * <strong>mysql_query()</strong>
   * <strong>mysql_fetch_field()</strong>
   * <strong>mysql_num_rows()</strong>


id: mysql_num_rows
type: function
doc:
<comment>Description:</comment>
  获取结果中行数
  
  检索结果集中的行数。此命令仅适用于返回实际结果集的 SELECT 或 SHOW 语句。要检索受 INSERT、UPDATE、
  REPLACE 或 DELETE 查询影响的行数，请使用 <strong>mysql_affected_rows()</strong> 函数。

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  <info>resource</info>
                     型的结果集。此结果集来自对 <strong>mysql_query()</strong>
                     的调用。

<comment>Return:</comment>
  <info>int|false</info>  The number of rows in a result set on success 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>mysql_affected_rows()</strong>
   * <strong>mysql_connect()</strong>
   * <strong>mysql_data_seek()</strong>
   * <strong>mysql_select_db()</strong>
   * <strong>mysql_query()</strong>


id: mysql_pconnect
type: function
doc:
<comment>Description:</comment>
  打开一个到 MySQL 服务器的持久连接
  
  打开一个到 MySQL 服务器的持久连接。
  
  <strong>mysql_pconnect()</strong> 和 <strong>mysql_connect()</strong> 非常相似，但有两个主要区别。
  
  首先，当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的（持久）连接，
  如果找到，则返回此连接标识而不打开新连接。
  
  其次，当脚本执行完毕后到 SQL 服务器的连接不会被关闭，此连接将保持打开以备以后使用（<strong>mysql_close()</strong>
  不会关闭由 <strong>mysql_pconnect()</strong> 建立的连接）。
  
  此种连接称为“持久的”。

<comment>Param:</comment>
  <info>string</info>  <strong>$server</strong>        MySQL 服务器地址，参数也可以包括端口号，例如 “hostname:port“ 或者是本机套接
                         字的的路径，例如 “:/path/to/socket“
                         
                         如果 PHP 配置文件中  mysql.default_host 的值未设置（默认情况下），则默认值
                         为 'localhost:3306'
  <info>string</info>  <strong>$username</strong>      数据库连接使用的用户名。默认为当前服务器进程的用户。
  <info>string</info>  <strong>$password</strong>      数据库连接使用的密码。默认为空密码。
  <info>int</info>     <strong>$client_flags</strong>  参数 <strong>$client_flags</strong> 可以为以下常量： 128 (enable <return>LOAD DATA LOCAL</return> handling),
                         <info>MYSQL_CLIENT_SSL</info>, <info>MYSQL_CLIENT_COMPRESS</info>, <info>MYSQL_CLIENT_IGNORE_SPACE</info> 或
                         <info>MYSQL_CLIENT_INTERACTIVE</info>。

<comment>Return:</comment>
  <info>resource</info>  如果成功则返回一个正的 MySQL 持久连接标识符，出错则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mysql_connect()</strong>
   * Persistent
    Database Connections


id: mysql_ping
type: function
doc:
<comment>Description:</comment>
  Ping 服务器连接的状态，如果没有连接则重新连接
  
  检查到服务器的连接是否正常。如果断开，则自动尝试连接。本函数可用于空闲很久的脚本来检查服务器是否关
  闭了连接，如果有必要则重新连接上。。
  
  从 MySQL 版本 5.0.3 开始，默认情况下不启用自动重新连接功能。

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

<comment>Return:</comment>
  <info>bool</info>  如果到服务器的连接可用则，返回 <info>true</info>，否则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mysql_thread_id()</strong>
   * <strong>mysql_list_processes()</strong>


id: mysql_query
type: function
doc:
<comment>Description:</comment>
  发送一条 MySQL 查询
  
  <strong>mysql_query()</strong> 向与指定的 <strong>$link_identifier</strong> 关联的服务器中的当前活动数据库发送一条查询（不支持多条查
  询）。

<comment>Param:</comment>
  <info>string</info>    <strong>$query</strong>            SQL 查询语句
                              
                              查询字符串不应以分号结束。 查询中被嵌入的数据应该正确地转义。
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

<comment>Return:</comment>
  <info>mixed</info>  <strong>mysql_query()</strong> 仅对 SELECT，SHOW，DESCRIBE, EXPLAIN 和其他语句 语句返回一个 <info>resource</info>，如果查
         询出现错误则返回 <info>false</info>。
         
         对于其它类型的 SQL 语句，比如INSERT, UPDATE, DELETE, DROP 之类， <strong>mysql_query()</strong> 在执行成功时
         返回 <info>true</info>，出错时返回 <info>false</info>。
         
         返回的结果资源应该传递给 <strong>mysql_fetch_array()</strong> 和其他函数来处理结果表,取出返回的数据。
         
         假定查询成功，可以调用 <strong>mysql_num_rows()</strong> 来查看对应于 SELECT 语句返回了多少行，或者调用
         <strong>mysql_affected_rows()</strong> 来查看对应于 DELETE，INSERT，REPLACE 或 UPDATE 语句影响到了多少行。
         
         如果没有权限访问查询语句中引用的表时，<strong>mysql_query()</strong> 也会返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mysql_connect()</strong>
   * <strong>mysql_error()</strong>
   * <strong>mysql_real_escape_string()</strong>
   * <strong>mysql_result()</strong>
   * <strong>mysql_fetch_assoc()</strong>
   * <strong>mysql_unbuffered_query()</strong>


id: mysql_real_escape_string
type: function
doc:
<comment>Description:</comment>
  将字符串中的特殊字符进行转义，以在 SQL 语句中使用
  
  考虑到连接的当前字符集，对 <strong>$unescaped_string</strong> 进行特殊字符转义，以便安全地将其放置在 <strong>mysql_query()</strong>
  中。如果要插入二进制数据，则必须使用此函数。
  
  <strong>mysql_real_escape_string()</strong> 调用 mysql 库的函数 mysql_real_escape_string, 在以下字符前添加反斜线：
  <return>\x00</return>、<return>\n</return>、<return>\r</return>、<return>\</return>、<return>'</return>、<return>"</return> 和 <return>\x1a</return>.
  
  在向 MySQL 发送查询之前，必须始终（有少数例外）使用此函数来确保数据的安全。
  
  The character set must be set either at the server level, or with the API function
  <strong>mysql_set_charset()</strong> for it to affect <strong>mysql_real_escape_string()</strong>. See the concepts section on
  character sets for more information.

<comment>Param:</comment>
  <info>string</info>    <strong>$unescaped_string</strong>  The string that is to be escaped.
  <info>resource</info>  <strong>$link_identifier</strong>   MySQL
                               连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                               最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                               <strong>mysql_connect()</strong>
                               来创建。如没有找到连接或无法建立连接，则会生成
                               <info>E_WARNING</info> 级别的错误。

<comment>Return:</comment>
  <info>string</info>  Returns the escaped string, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>mysql_set_charset()</strong>
   * <strong>mysql_client_encoding()</strong>


id: mysql_result
type: function
doc:
<comment>Description:</comment>
  取得结果数据
  
  Retrieves the contents of one cell from a MySQL result set.
  
  When working on large result sets, you should consider using one of the functions that fetch an
  entire row (specified below).  As these functions return the contents of multiple cells in one
  function call, they're MUCH quicker than <strong>mysql_result()</strong>.  Also, note that specifying a numeric
  offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname
  argument.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  <info>resource</info>
                     型的结果集。此结果集来自对 <strong>mysql_query()</strong>
                     的调用。
  <info>int</info>       <strong>$row</strong>     The row number from the result that's being retrieved. Row numbers  start at <return>0</return>.
  <info>mixed</info>     <strong>$field</strong>   The name or offset of the field being retrieved.
                     
                     It can be the field's offset, the field's name, or the field's table  dot field
                     name (tablename.fieldname). If the column name has been aliased ('select foo as
                     bar from...'), use the alias instead of the  column name. If undefined, the
                     first field is retrieved.

<comment>Return:</comment>
  <info>string</info>  The contents of one cell from a MySQL result set on success, or  <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mysql_fetch_row()</strong>
   * <strong>mysql_fetch_array()</strong>
   * <strong>mysql_fetch_assoc()</strong>
   * <strong>mysql_fetch_object()</strong>


id: mysql_select_db
type: function
doc:
<comment>Description:</comment>
  选择 MySQL 数据库
  
  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。
  
  <strong>mysql_select_db()</strong> 设定与指定的连接标识符所关联的服务器上的当前激活数据库。如果没有指定连接标识符，
  则使用上一个打开的连接。如果没有打开的连接，本函数将无参数调用 <strong>mysql_connect()</strong> 来尝试打开一个并使
  用之。
  
  每个其后的 <strong>mysql_query()</strong> 调用都会作用于活动数据库。
  
  <strong>mysql_select_db()</strong> 例子
  ]]>
  
  参见 <strong>mysql_connect()</strong>，<strong>mysql_pconnect()</strong> 和 <strong>mysql_query()</strong>。
  
  为向下兼容仍然可以使用 <strong>mysql_selectdb()</strong>，但反对这样做。

<comment>Param:</comment>
  <info>string</info>  <strong>$database_name</strong>    The name of the database that is to be selected.
  <info></info>        <strong>$link_identifier</strong>  MySQL
                            连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                            最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                            <strong>mysql_connect()</strong>
                            来创建。如没有找到连接或无法建立连接，则会生成
                            <info>E_WARNING</info> 级别的错误。

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

<comment>See Also:</comment>
   * <strong>mysql_connect()</strong>
   * <strong>mysql_pconnect()</strong>
   * <strong>mysql_query()</strong>


id: mysql_set_charset
type: function
doc:
<comment>Description:</comment>
  设置客户端的字符集
  
  设置当前连接的默认字符集。

<comment>Param:</comment>
  <info>string</info>    <strong>$charset</strong>          一个有效的字符集名称。
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

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

<comment>See Also:</comment>
   * Setting character sets in MySQL
   * List of character sets that MySQL supports
   * <strong>mysql_client_encoding()</strong>


id: mysql_tablename
type: function
doc:
<comment>Description:</comment>
  取得表名
  
  从 <strong>$result</strong> 中取得表名。
  
  此函数已废弃，推荐使用 <strong>mysql_query()</strong> 函数来执行 SQL <return>SHOW TABLES [FROM db_name] [LIKE 'pattern']</return> 替
  代。

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  接受 <strong>mysql_list_tables()</strong> 返回的结果指针以及一个整数索引作为参数并返回表名。
  <info>int</info>       <strong>$i</strong>       The integer index (row/table number)

<comment>Return:</comment>
  <info>string|false</info>  成功时返回表名 或者在失败时返回 <info>false</info>。
                
                Use the <strong>mysql_tablename()</strong> function to traverse this result pointer, or any function
                for result tables, such as <strong>mysql_fetch_array()</strong>.

<comment>See Also:</comment>
   * <strong>mysql_list_tables()</strong>
   * <strong>mysql_field_table()</strong>
   * <strong>mysql_db_name()</strong>


id: mysql_thread_id
type: function
doc:
<comment>Description:</comment>
  返回当前线程的 ID
  
  检索当前线程 ID。如果连接丢失并执行 <strong>mysql_ping()</strong> 重新连接，会改变线程 ID。这意味着仅能在需要的时候
  再去获取。

<comment>Param:</comment>
  <info>resource</info>  <strong>$link_identifier</strong>  MySQL
                              连接。如不指定连接标识，则使用由 <strong>mysql_connect()</strong>
                              最近打开的连接。如果没有找到该连接，会尝试不带参数调用
                              <strong>mysql_connect()</strong>
                              来创建。如没有找到连接或无法建立连接，则会生成
                              <info>E_WARNING</info> 级别的错误。

<comment>Return:</comment>
  <info>int|false</info>  The thread ID on success 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>mysql_ping()</strong>
   * <strong>mysql_list_processes()</strong>


id: mysql_xdevapi\Client::close
type: function
doc:
<comment>Description:</comment>
  Close client
  
  Close all client connections with the server.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if connections are closed.


id: mysql_xdevapi\Table
type: class
doc:
<comment>Description:</comment>
  Provides access to the table through INSERT/SELECT/UPDATE/DELETE statements.


id: mysqli::__construct
type: function
doc:
<comment>Description:</comment>
  Open a new connection to the MySQL server
  
  面向对象风格
  
  过程化风格
  
  Opens a connection to the MySQL Server.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$hostname</strong>  Can be either a host name or an IP address. When passing <info>null</info>, the value
                          is retrieved from mysqli.default_host. When possible, pipes will be used
                          instead of the TCP/IP protocol. The TCP/IP protocol is used if a host name
                          and port number are provided together e.g. <return>localhost:3308</return>.
                          
                          Prepending host by <return>p:</return> opens a persistent connection. <strong>mysqli_change_user()</strong>
                          is automatically called on connections opened from the connection pool.
  <info>string|null</info>  <strong>$username</strong>  The MySQL username or <info>null</info> to assume the username based on the
                          mysqli.default_user ini option.
  <info>string|null</info>  <strong>$password</strong>  The MySQL password or <info>null</info> to assume the password based on the
                          mysqli.default_pw ini option.
  <info>string|null</info>  <strong>$database</strong>  The default database to be used when performing queries or <info>null</info>.
  <info>int|null</info>     <strong>$port</strong>      The port number to attempt to connect to the MySQL server or <info>null</info> to
                          assume the port based on the mysqli.default_port ini option.
  <info>string|null</info>  <strong>$socket</strong>    The socket or named pipe that should be used or <info>null</info> to assume the socket
                          based on the mysqli.default_socket ini option.
                          
                          Specifying the <strong>$socket</strong> parameter will not explicitly determine the type of
                          connection to be used when connecting to the MySQL server. How the
                          connection is made to the MySQL database is determined by the <strong>$hostname</strong>
                          parameter.

<comment>Return:</comment>
  <info>bool</info>  <strong>mysqli_connect()</strong> returns an object which represents the connection to a MySQL Server, 或者在
        失败时返回 <info>false</info>.
        
        mysqli::connect returns <info>true</info> on success 或者在失败时返回 <info>false</info>. Prior to PHP 8.1.0, returns
        <info>null</info> on success.

<comment>See Also:</comment>
   * <strong>mysqli_real_connect()</strong>
   * <strong>mysqli_options()</strong>
   * <strong>mysqli_connect_errno()</strong>
   * <strong>mysqli_connect_error()</strong>
   * <strong>mysqli_close()</strong>


id: mysqli::autocommit
type: function
doc:
<comment>Description:</comment>
  打开或关闭本次数据库连接的自动命令提交事务模式
  
  面向对象风格
  
  过程化风格
  
  打开或关闭本次数据库连接的自动命令提交事务模式。
  
  如需要确认当前连接的自动事务提交状态，可执行这个 SQL 请求 <return>SELECT @@autocommit</return>。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>   仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                   <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>bool</info>    <strong>$enable</strong>  是否开启自动提交。

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

<comment>See Also:</comment>
   * <strong>mysqli_begin_transaction()</strong>
   * <strong>mysqli_commit()</strong>
   * <strong>mysqli_rollback()</strong>


id: mysqli::begin_transaction
type: function
doc:
<comment>Description:</comment>
  Starts a transaction
  
  面向对象风格
  
  过程化风格:
  
  Begins a transaction. Requires the InnoDB  engine (it is enabled by default). For additional
  details about how MySQL transactions work, see http://dev.mysql.com/doc/mysql/en/commit.html.

<comment>Param:</comment>
  <info>mysqli</info>       <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                       <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>int</info>          <strong>$flags</strong>  Valid flags are:
                       
                       <info>MYSQLI_TRANS_START_READ_ONLY</info>:  Start the transaction as "START TRANSACTION
                       READ ONLY". Requires MySQL 5.6 and above.
                       
                       <info>MYSQLI_TRANS_START_READ_WRITE</info>:  Start the transaction as "START TRANSACTION
                       READ WRITE". Requires MySQL 5.6 and above.
                       
                       <info>MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT</info>:  Start the transaction as "START
                       TRANSACTION WITH CONSISTENT SNAPSHOT".
  <info>string|null</info>  <strong>$name</strong>   Savepoint name for the transaction.

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

<comment>See Also:</comment>
   * <strong>mysqli_autocommit()</strong>
   * <strong>mysqli_commit()</strong>
   * <strong>mysqli_rollback()</strong>


id: mysqli::change_user
type: function
doc:
<comment>Description:</comment>
  Changes the user of the specified database connection
  
  面向对象风格
  
  过程化风格
  
  Changes the user of the specified database connection and sets the current database.
  
  In order to successfully change users a valid <strong>$username</strong> and <strong>$password</strong> parameters must be provided
  and that user must have sufficient permissions to access the desired database. If for any reason
  authorization fails, the current user authentication will remain.

<comment>Param:</comment>
  <info>mysqli</info>       <strong>$mysql</strong>     仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                          <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>string</info>       <strong>$username</strong>  The MySQL user name.
  <info>string</info>       <strong>$password</strong>  The MySQL password.
  <info>string|null</info>  <strong>$database</strong>  The database to change to.
                          
                          If desired, the <info>null</info> value may be passed resulting in only changing the
                          user and not selecting a database. To select a database in this case use
                          the <strong>mysqli_select_db()</strong> function.

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

<comment>See Also:</comment>
   * <strong>mysqli_connect()</strong>
   * <strong>mysqli_select_db()</strong>


id: mysqli::character_set_name
type: function
doc:
<comment>Description:</comment>
  返回当前数据库连接的字符编码
  
  面向对象风格
  
  过程化风格
  
  返回当前数据库连接的字符编码。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>string</info>  当前连接的字符编码

<comment>See Also:</comment>
   * <strong>mysqli_set_charset()</strong>
   * <strong>mysqli_real_escape_string()</strong>


id: mysqli::close
type: function
doc:
<comment>Description:</comment>
  关闭先前打开的数据库连接
  
  面向对象风格
  
  过程化风格
  
  关闭先前打开的数据库连接。
  
  当打开的非持久 MySQL 连接和结果集的对象销毁时会自动关闭。显式关闭打开的连接和释放结果集不是必需
  的。但是，如果脚本在获得结果后仍有大量工作要做，那么最好在脚本执行完所有数据库操作后立即关闭连接。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>true</info>  总是返回 <info>true</info>。

<comment>See Also:</comment>
   * mysqli::__construct
   * <strong>mysqli_init()</strong>
   * <strong>mysqli_real_connect()</strong>
   * <strong>mysqli_free_result()</strong>


id: mysqli::commit
type: function
doc:
<comment>Description:</comment>
  提交当前事务
  
  面向对象风格
  
  过程化风格
  
  提交当前数据库连接的事务。

<comment>Param:</comment>
  <info>mysqli</info>       <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                       <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>int</info>          <strong>$flags</strong>  <info>MYSQLI_TRANS_COR_*</info> 常量的位掩码。
  <info>string|null</info>  <strong>$name</strong>   如果提供，则执行 <return>COMMIT/*name*/</return>。

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

<comment>See Also:</comment>
   * <strong>mysqli_autocommit()</strong>
   * <strong>mysqli_begin_transaction()</strong>
   * <strong>mysqli_rollback()</strong>
   * <strong>mysqli_savepoint()</strong>


id: mysqli::debug
type: function
doc:
<comment>Description:</comment>
  Performs debugging operations
  
  面向对象风格
  
  过程化风格
  
  Performs debugging operations using the Fred Fish debugging library.

<comment>Param:</comment>
  <info>string</info>  <strong>$options</strong>  A string representing the debugging operation to perform
                    
                    The debug control string is a sequence of colon separated fields as follows:
                    <return>::]]></return> Each field consists of a mandatory flag character followed by an optional
                    <return>,</return> and comma separated list of modifiers: <return>flag[,modifier,modifier,...,modifier]</return>
                    
                    Recognized Flag Characters<strong>$options</strong>
                    characterDescriptionO<info>MYSQLND_DEBUG_FLUSH</info>A/a<info>MYSQLND_DEBUG_APPEND</info>F<info>MYSQLND_DEBUG_DUMP_FILE</info>i<info>MYSQLND_DEBUG_DUMP_PID</info>L<info>MYSQLND_DEBUG_DUMP_LINE</info>m<info>MYSQLND_DEBUG_TRACE_MEMORY_CALLS</info>n<info>MYSQLND_DEBUG_DUMP_LEVEL</info>ooutput
                    to
                    fileT<info>MYSQLND_DEBUG_DUMP_TIME</info>t<info>MYSQLND_DEBUG_DUMP_TRACE</info>x<info>MYSQLND_DEBUG_PROFILE_CALLS</info>

<comment>Return:</comment>
  <info>true</info>  总是返回 <info>true</info>。

<comment>See Also:</comment>
   * <strong>mysqli_dump_debug_info()</strong>
   * <strong>mysqli_report()</strong>


id: mysqli::dump_debug_info
type: function
doc:
<comment>Description:</comment>
  将调试信息输出到日志
  
  面向对象风格
  
  过程化风格
  
  这个函数设计用于超级权限用户执行将调试信息输出到连接相关的 MySQL Server 的日志中。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

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

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


id: mysqli::escape_string
type: function
doc:
<comment>Description:</comment>
  别名 mysqli_real_escape_string
  
  此函数是该函数的别名： <strong>mysqli_real_escape_string()</strong>.


id: mysqli::execute_query
type: function
doc:
<comment>Description:</comment>
  Prepares, binds parameters, and executes SQL statement
  
  面向对象风格
  
  过程化风格
  
  Prepares the SQL query, binds parameters, and executes it. The mysqli::execute_query method is a
  shortcut for mysqli::prepare, mysqli_stmt::bind_param, mysqli_stmt::execute, and
  mysqli_stmt::get_result.
  
  The statement template can contain zero or more question mark (<return>?</return>) parameter markers⁠—also called
  placeholders. The parameter values must be provided as an <info>array</info> using <strong>$params</strong> parameter.
  
  A prepared statement is created under the hood but it's never exposed outside of the function.
  It's impossible to access properties of the statement as one would do with the <class>mysqli_stmt</class> object.
  Due to this limitation, the status information is copied to the <class>mysqli</class> object and is available
  using its methods, e.g. <strong>mysqli_affected_rows()</strong> or <strong>mysqli_error()</strong>.
  
  In the case where a statement is passed to <strong>mysqli_execute_query()</strong> that is longer than
  <return>max_allowed_packet</return> of the server, the returned error codes are different depending on the
  operating system. The behavior is as follows:
  
  On Linux returns an error code of 1153. The error message means got a packet bigger than
  <return>max_allowed_packet</return> bytes.
  
  On Windows returns an error code 2006. This error message means server has gone away.

<comment>Param:</comment>
  <info>mysqli</info>      <strong>$mysql</strong>   仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                       <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>string</info>      <strong>$query</strong>   The query, as a string. It must consist of a single SQL statement.
                       
                       The SQL statement may contain zero or more parameter markers represented by
                       question mark (<return>?</return>) characters at the appropriate positions.
                       
                       The markers are legal only in certain places in SQL statements. For example,
                       they are permitted in the <return>VALUES()</return> list of an <return>INSERT</return> statement (to specify
                       column values for a row), or in a comparison with a column in a <return>WHERE</return> clause
                       to specify a comparison value. However, they are not permitted for
                       identifiers (such as table or column names).
  <info>array|null</info>  <strong>$params</strong>  An optional list <info>array</info> with as many elements as there are bound parameters in
                       the SQL statement being executed. Each value is treated as a <info>string</info>.

<comment>Return:</comment>
  <info>mysqli_result|bool</info>  Returns <info>false</info> on failure. For successful queries which produce a result set,
                      such as <return>SELECT, SHOW, DESCRIBE</return> or <return>EXPLAIN</return>, returns a <class>mysqli_result</class> object. For
                      other successful queries, returns <info>true</info>.

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_execute()</strong>
   * <strong>mysqli_stmt_bind_param()</strong>
   * <strong>mysqli_stmt_get_result()</strong>


id: mysqli::get_charset
type: function
doc:
<comment>Description:</comment>
  Returns a character set object
  
  面向对象风格
  
  过程化风格
  
  Returns a character set object providing several properties  of the current active character set.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>object|null</info>  The function returns a character set object with the following properties:
               <strong>$charset</strong>Character set name<strong>$collation</strong>Collation name<strong>$dir</strong>Directory the charset
               description was fetched from (?) or "" for built-in character sets<strong>$min_length</strong>Minimum
               character length in bytes<strong>$max_length</strong>Maximum character length in bytes<strong>$number</strong>Internal
               character set number<strong>$state</strong>Character set status (?)
               
               Character set name
               
               Collation name
               
               Directory the charset description was fetched from (?) or "" for built-in character
               sets
               
               Minimum character length in bytes
               
               Maximum character length in bytes
               
               Internal character set number
               
               Character set status (?)

<comment>See Also:</comment>
   * <strong>mysqli_character_set_name()</strong>
   * <strong>mysqli_set_charset()</strong>


id: mysqli::get_client_info
type: function
doc:
<comment>Description:</comment>
  获取 MySQL 客户端信息
  
  面向对象风格
  
  过程化风格
  
  返回表示 MySQL 客户端库的版本信息的字符串。

<comment>Return:</comment>
  <info>string</info>  表示 MySQL 客户端库的版本信息的字符串。

<comment>See Also:</comment>
   * <strong>mysqli_get_client_version()</strong>
   * <strong>mysqli_get_server_info()</strong>
   * <strong>mysqli_get_server_version()</strong>


id: mysqli::get_connection_stats
type: function
doc:
<comment>Description:</comment>
  返回客户端连接的统计数据
  
  面向对象风格
  
  过程化风格
  
  返回客户端连接的统计数据。
  
  仅可用于 mysqlnd。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>array</info>  返回数组，包含连接状态。

<comment>See Also:</comment>
   * 统计说明


id: mysqli::get_server_info
type: function
doc:
<comment>Description:</comment>
  返回 MySQL 服务器的版本号
  
  面向对象风格
  
  过程化风格
  
  返回字符串，表示 MySQLi 扩展连接的 MySQL 服务器的版本号。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>string</info>  表示服务器版本的字符串。

<comment>See Also:</comment>
   * <strong>mysqli_get_client_info()</strong>
   * <strong>mysqli_get_client_version()</strong>
   * <strong>mysqli_get_server_version()</strong>


id: mysqli::get_warnings
type: function
doc:
<comment>Description:</comment>
  Get result of SHOW WARNINGS
  
  面向对象风格
  
  过程化风格
  
  本函数还未编写文档，仅有参数列表。

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


id: mysqli::init
type: function
doc:
<comment>Description:</comment>
  初始化 MySQLi 并返回用于 mysqli_real_connect() 的对象
  
  面向对象风格
  
  过程化风格
  
  分配或者初始化适合 <strong>mysqli_options()</strong> 和 <strong>mysqli_real_connect()</strong> 的 MYSQL 对象。
  
  在调用 <strong>mysqli_real_connect()</strong> 之前，对其它 mysqli 函数（<strong>mysqli_options()</strong> 和 <strong>mysqli_ssl_set()</strong> 除外）
  的后续调用都会失败。

<comment>Return:</comment>
  <info>bool|null</info>  mysqli::init 成功时返回 <info>null</info>， 或者在失败时返回 <info>false</info>。<strong>mysqli_init()</strong> 成功时返回对象，
             或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mysqli_options()</strong>
   * <strong>mysqli_close()</strong>
   * <strong>mysqli_real_connect()</strong>
   * <strong>mysqli_connect()</strong>


id: mysqli::kill
type: function
doc:
<comment>Description:</comment>
  让服务器杀死一个 MySQL 线程
  
  面向对象风格
  
  过程化风格
  
  本函数可以用来让服务器杀掉 <strong>$process_id</strong> 参数指定的 MySQL 线程。必须通过调用 <strong>mysqli_thread_id()</strong> 函数
  来检索该值。
  
  要停止正在运行的查询，应该使用 SQL 命令 <return>KILL QUERY processid</return>。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

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

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


id: mysqli::more_results
type: function
doc:
<comment>Description:</comment>
  检查批量查询中是否还有查询结果
  
  面向对象风格
  
  过程化风格
  
  检查上一次调用 <strong>mysqli_multi_query()</strong> 函数之后，是否还有更多的查询结果集。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>bool</info>  如果上一次调用 <strong>mysqli_multi_query()</strong> 函数之后， 还有更多的结果集（包含错误）可以读取，返回
        <info>true</info>，否则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mysqli_multi_query()</strong>
   * <strong>mysqli_next_result()</strong>
   * <strong>mysqli_store_result()</strong>
   * <strong>mysqli_use_result()</strong>


id: mysqli::multi_query
type: function
doc:
<comment>Description:</comment>
  在数据库上执行一个或多个查询
  
  面向对象风格
  
  过程化风格
  
  执行一个或多个由分号分隔的查询。
  
  If the query contains any variable
  input then parameterized
  prepared statements should be used instead. Alternatively, the
  data must be properly formatted and all strings must be escaped using
  the <strong>mysqli_real_escape_string()</strong>
  function.
  
  对数据库的单个调用中，查询是异步发送，但数据库会按顺序处理。
   mysqli_multi_query 在将控制返回给 PHP 之前等待第一个查询完成。MySQL 服务器将会按照顺序处理下一个
  查询。一旦下一个结果就绪，MySQL 将等待 PHP 的下一次 <strong>mysqli_next_result()</strong> 执行。
  
  推荐使用 do-while 处理多个查询。在所有查询完成并将结果返回给 PHP 之前，连接一直处于繁忙状态。在处
  理完成所有查询之前，不能在同一连接上发出其它语句。要继续处理顺序中的下一个查询，请使用
  <strong>mysqli_next_result()</strong>。如果下一个结果还没准备好，mysqli 就会等待 MySQL 服务器的响应。要检查是否有更
  多结果，使用 <strong>mysqli_more_results()</strong>。
  
  对于产生查询结果集的查询，比如 <return>SELECT, SHOW, DESCRIBE</return> 或 <return>EXPLAIN</return>，<strong>mysqli_use_result()</strong> 或
  <strong>mysqli_store_result()</strong> 可用于检索结果集。对于不产生结果集的查询（比如受影响的行数），可以使用相同函
  数查询。
  
  为存储过程执行 <return>CALL</return> 语句可以产生多个结果集。如果存储过程包含 <return>SELECT</return> 语句，结果集将按照执行过程中的
  顺序返回。通常，调用者不会知道过程将返回多少个结果集，必须准备好检索多个结果。该过程的最终结果是不
  包含结果集的 status 结果。status 表示过程是成功还是发生错误。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>string</info>  <strong>$query</strong>  包含要执行查询的字符串。多个查询必须用分号分隔。

<comment>Return:</comment>
  <info>bool</info>  如果第一个 SQL 语句就失败了，返回 <info>false</info>。要从其它语句中检索后续错误，必须先调用
        <strong>mysqli_next_result()</strong>。

<comment>See Also:</comment>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_use_result()</strong>
   * <strong>mysqli_store_result()</strong>
   * <strong>mysqli_next_result()</strong>
   * <strong>mysqli_more_results()</strong>


id: mysqli::next_result
type: function
doc:
<comment>Description:</comment>
  为读取 multi_query 执行之后的下一个结果集做准备
  
  面向对象风格
  
  过程化风格
  
  <strong>mysqli_multi_query()</strong> 函数执行之后，为读取下一个结果集做准备，然后可以使用 <strong>mysqli_store_result()</strong> 或
  <strong>mysqli_use_result()</strong> 检索。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。如果下一条语句导致错误，也返回 <info>false</info>，这跟
        mysqli_more_results 不同。

<comment>See Also:</comment>
   * <strong>mysqli_multi_query()</strong>
   * <strong>mysqli_more_results()</strong>
   * <strong>mysqli_store_result()</strong>
   * <strong>mysqli_use_result()</strong>


id: mysqli::options
type: function
doc:
<comment>Description:</comment>
  设置选项
  
  面向对象风格
  
  过程化风格
  
  用于设置连接的扩展选项，这些选项可以改变这个连接的行为。
  
  如果要对多个选项进行设置，可以多次调用此函数来。
  
  <strong>mysqli_options()</strong> 需要在 <strong>mysqli_init()</strong> 函数之后、 <strong>mysqli_real_connect()</strong> 函数之前调用。

<comment>Param:</comment>
  <info>mysqli</info>      <strong>$mysql</strong>   仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                       <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>int</info>         <strong>$option</strong>  要进行设置的选项，可以是下列值中的某一项： 有效的选项名称描述
                       <info>MYSQLI_OPT_CONNECT_TIMEOUT</info>连接超时设置，以秒为单位<info>MYSQLI_OPT_READ_TIMEOUT</info>命令
                       执行超时秒数，自 PHP 7.2.0 起可用。<info>MYSQLI_OPT_LOCAL_INFILE</info>启用或禁用 <return>LOAD
                       LOCAL INFILE</return><info>MYSQLI_INIT_COMMAND</info>连接到 MySQL 服务器后要执行的命令
                       <info>MYSQLI_SET_CHARSET_NAME</info>设置的默认字符集<info>MYSQLI_READ_DEFAULT_FILE</info> 从指定的文件
                       中读取选项，而不是使用 my.cnf 中的选项。mysqlnd 不支持。
                       <info>MYSQLI_READ_DEFAULT_GROUP</info> 从 my.cnf 或者 <info>MYSQL_READ_DEFAULT_FILE</info> 指定的文件中
                       读取指定的组中的选项。mysqlnd 不支持。 <info>MYSQLI_SERVER_PUBLIC_KEY</info> SHA-256 认证
                       模式下，要使用的 RSA 公钥文件。 <info>MYSQLI_OPT_NET_CMD_BUFFER_SIZE</info> 内部命令/网络
                       缓冲大小， 仅在 mysqlnd 驱动下有效。 <info>MYSQLI_OPT_NET_READ_BUFFER_SIZE</info> 以字节为
                       单位，读取 MySQL 命令报文时候的块大小， 仅在 mysqlnd 驱动下有效。
                       <info>MYSQLI_OPT_INT_AND_FLOAT_NATIVE</info> 将整数和浮点数类型的列转换成 PHP 的数值类型，
                       仅在 mysqlnd 驱动下有效。 <info>MYSQLI_OPT_SSL_VERIFY_SERVER_CERT</info> 是否验证服务器证
                       书。
  <info>string|int</info>  <strong>$value</strong>   选项值。

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

<comment>See Also:</comment>
   * <strong>mysqli_init()</strong>
   * <strong>mysqli_real_connect()</strong>


id: mysqli::ping
type: function
doc:
<comment>Description:</comment>
  ping 一个连接，或者如果连接处于断开状态，重新连接
  
  面向对象风格
  
  过程化风格
  
  检查到服务器的连接是否还正常。在启用 mysqli.reconnect  选项的前提下，如果连接已经断开，ping 操作会
  尝试重新建立连接。
  
  mysqlnd 驱动会忽略 php.ini 中的 mysqli.reconnect 选项，所以它不会自动重连。
  
  客户端建立连接之后，长时间处于闲置状态，可以用此函数来检查服务器是否关闭了这个连接，如有必要，将会
  自动重新建立到服务器的连接。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

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


id: mysqli::poll
type: function
doc:
<comment>Description:</comment>
  轮询连接
  
  面向对象风格
  
  过程化风格
  
  轮询连接。此方法是 static 的。
  
  仅可用于 mysqlnd。

<comment>Param:</comment>
  <info>array|null</info>  <strong>$read</strong>          要检测是否存在可以读取的结果集的连接的数组。
  <info>array|null</info>  <strong>$error</strong>         发生错误的，例如：SQL 语句执行失败或者已经断开的 连接的数组。
  <info>array</info>       <strong>$reject</strong>        没有可以读取的结果集的连接 的数组。
  <info>int</info>         <strong>$seconds</strong>       秒为单位的最大等待时间，不可以为负数。
  <info>int</info>         <strong>$microseconds</strong>  微秒为单位的最大等待时间，不可以为负数。

<comment>Return:</comment>
  <info>int|false</info>  成功执行则返回存在可以读取结果集的连接数量， 否则 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_reap_async_query()</strong>


id: mysqli::prepare
type: function
doc:
<comment>Description:</comment>
  预处理执行 SQL
  
  面向对象风格
  
  过程化风格
  
  预处理 SQL 查询并返回 statement 句柄，用于对语句进行后续操作。查询仅仅支持单条 SQL 语句。
  
  语句模板可以包含零或多个问号（<return>?</return>）参数标记，也称作占位符。在执行语句之前，必须使用
  <strong>mysqli_stmt_bind_param()</strong> 将参数标记绑定到应用程序变量。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>string</info>  <strong>$query</strong>  string 格式的语句。必须由单个 SQL 语句组成。
                  
                  SQL 语句可能在适当的位置包含零个或多个由问号（<return>?</return>）字符表示的参数标记。
                  
                  SQL 语句中，仅允许在特定的位置出现问号参数占位符。例如，允许在 <return>INSERT</return> 语句中的
                  <return>VALUES()</return> 列表中使用，表示对应列的值，也可以在 <return>WHERE</return> 子句中使用参数来表示要进行比较
                  的值。但不允许用于标识符（例如表名或列名）。

<comment>Return:</comment>
  <info>mysqli_stmt|false</info>  <strong>mysqli_prepare()</strong> 返回一个 statement 对象，如果发生错误则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mysqli_stmt_execute()</strong>
   * <strong>mysqli_stmt_fetch()</strong>
   * <strong>mysqli_stmt_bind_param()</strong>
   * <strong>mysqli_stmt_bind_result()</strong>
   * <strong>mysqli_stmt_get_result()</strong>
   * <strong>mysqli_stmt_close()</strong>


id: mysqli::query
type: function
doc:
<comment>Description:</comment>
  对数据库执行查询
  
  面向对象风格
  
  过程化风格
  
  对数据库执行 <strong>$query</strong>。
  
  If the query contains any variable
  input then parameterized
  prepared statements should be used instead. Alternatively, the
  data must be properly formatted and all strings must be escaped using
  the <strong>mysqli_real_escape_string()</strong>
  function.
  
  对非 DML 查询（不是 INSERT、UPDATE 或 DELETE），此函数类似于调用 <strong>mysqli_real_query()</strong> 然后调用
  <strong>mysqli_use_result()</strong> 或 <strong>mysqli_store_result()</strong>。
  
  传递给 <strong>mysqli_query()</strong> 的语句长度比服务器的 <return>max_allowed_packet</return> 长的情况下，返回的错误码不同，具体取
  决于使用的是 MySQL Native Driver（<return>mysqlnd</return>）还是 MySQL Client Library（<return>libmysqlclient</return>）。行为如下：
  
  Linux 上 <return>mysqlnd</return> 返回错误码 1153。错误消息表示为 got a packet bigger than <return>max_allowed_packet</return>
  bytes。
  
  Windows 上 <return>mysqlnd</return> 返回错误码 2006。错误消息表示为 server has gone away。
  
  <return>libmysqlclient</return> 在所有平台返回错误码 2006。错误消息表示为 server has gone away。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>        仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                        <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>string</info>  <strong>$query</strong>        查询字符串。
  <info>int</info>     <strong>$result_mode</strong>  The result mode can be one of 3 constants indicating how the result will be
                        returned from the MySQL server.
                        
                        <info>MYSQLI_STORE_RESULT</info>（默认）——返回带有缓冲结果集的 <class>mysqli_result</class> 对象。
                        
                        <info>MYSQLI_USE_RESULT</info> - returns a <class>mysqli_result</class> object with unbuffered result
                        set.  As long as there are pending records waiting to be fetched, the
                        connection line will be busy and all subsequent calls will return error
                        <return>Commands out of sync</return>. To avoid the error all records  must be fetched from
                        the server or the result set must be discarded by calling
                        <strong>mysqli_free_result()</strong>.
                        
                        <info>MYSQLI_ASYNC</info>（适用于 mysqlnd）——执行异步查询且并不立即返回结果。然后使用
                        <strong>mysqli_poll()</strong> 从此类查询中获取结果。与 <info>MYSQLI_STORE_RESULT</info> 或
                        <info>MYSQLI_USE_RESULT</info> 常量结合使用。

<comment>Return:</comment>
  <info>mysqli_result|bool</info>  失败时返回 <info>false</info>。对于生成结果集的成功查询，比如 <return>SELECT, SHOW, DESCRIBE</return> 或
                      <return>EXPLAIN</return>，<strong>mysqli_query()</strong> 将返回 <class>mysqli_result</class> 对象。对其它成功查询，
                      <strong>mysqli_query()</strong> 将返回 <info>true</info>。

<comment>See Also:</comment>
   * <strong>mysqli_execute_query()</strong>
   * <strong>mysqli_real_query()</strong>
   * <strong>mysqli_multi_query()</strong>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_free_result()</strong>


id: mysqli::real_connect
type: function
doc:
<comment>Description:</comment>
  建立一个 MySQL 服务器连接
  
  面向对象风格
  
  过程化风格
  
  建立一个到 MySQL 服务器的链接。
  
  与 <strong>mysqli_connect()</strong> 的不同点：
  
  <strong>mysqli_real_connect()</strong> 需要一个 <class>mysqli</class> 对象的实例。 这可以通过调用无参数的 mysqli::__construct 或
  <strong>mysqli_connect()</strong> 获得。
  
  可以使用 <strong>mysqli_options()</strong> 设置各种连接设置。
  
  提供 <strong>$flags</strong> 参数。

<comment>Param:</comment>
  <info>mysqli</info>       <strong>$mysql</strong>     仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                          <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>string|null</info>  <strong>$hostname</strong>  可以使用域名、IP 地址。如果传递 <info>null</info>，值将从 mysqli.default_host 中检索。
                          如果可能，将使用管道代替 TCP/IP 协议。如果同时提供主机名和端口号，则使用
                          TCP/IP 协议，例如 <return>localhost:3308</return>。
  <info>string|null</info>  <strong>$username</strong>  MySQL 登录用户名，为 <info>null</info> 时则假设是基于 mysqli.default_user ini 选项的用
                          户名。
  <info>string|null</info>  <strong>$password</strong>  MySQL 密码，为 <info>null</info> 时则假设是基于 mysqli.default_pw ini 选项的密码。
  <info>string|null</info>  <strong>$database</strong>  执行查询语句的默认数据库或为 <info>null</info>。
  <info>int|null</info>     <strong>$port</strong>      MySQL 服务器的端口，为 <info>null</info> 时则假设是基于 mysqli.default_port ini 选项的
                          端口。
  <info>string|null</info>  <strong>$socket</strong>    指定使用的 socket 或者命名通道，为 <info>null</info> 时则假设是基于
                          mysqli.default_socket ini 选项的套接字。
                          
                          指定 <strong>$socket</strong> 参数并不能说明要采用何种方式连接数据库。 连接数据的方式由
                          <strong>$hostname</strong> 设定。
  <info>int</info>          <strong>$flags</strong>     这里可以设置连接参数：
                          
                          从安全角度考虑，在 PHP 中不可以使用 <info>MULTI_STATEMENT</info>， 若要执行多查询语句，
                          请使用 <strong>mysqli_multi_query()</strong>。

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

<comment>See Also:</comment>
   * <strong>mysqli_connect()</strong>
   * <strong>mysqli_options()</strong>
   * <strong>mysqli_ssl_set()</strong>
   * <strong>mysqli_close()</strong>


id: mysqli::real_escape_string
type: function
doc:
<comment>Description:</comment>
  根据当前连接的字符集，对于 SQL 语句中的特殊字符进行转义
  
  面向对象风格
  
  过程化风格
  
  此函数用于创建可在 SQL 语句中使用的合法 SQL 字符串。考虑到连接的当前字符集，对指定的字符串进行编码
  以生成转义的 SQL 字符串。
  
  字符集必须在服务器级别设置，或者使用 API 函数 <strong>mysqli_set_charset()</strong> 影响
  <strong>mysqli_real_escape_string()</strong>。参阅字符集的概念（concepts）部分。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>   仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                   <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>string</info>  <strong>$string</strong>  需要进行转义的字符串。
                   
                   会被进行转义的字符包括：<return>NUL (ASCII 0)</return>、 <return>\n</return>、<return>\r</return>、<return>\</return>、 <return>'</return>、<return>"</return> 和 CTRLZ。

<comment>Return:</comment>
  <info>string</info>  返回转义后的字符串。

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


id: mysqli::real_query
type: function
doc:
<comment>Description:</comment>
  执行一个mysql查询
  
  面向对象风格
  
  过程化风格
  
  对数据库执行单条查询，其结果可以使用 <strong>mysqli_store_result()</strong> 或 <strong>mysqli_use_result()</strong> 检索或存储。
  
  If the query contains any variable
  input then parameterized
  prepared statements should be used instead. Alternatively, the
  data must be properly formatted and all strings must be escaped using
  the <strong>mysqli_real_escape_string()</strong>
  function.
  
  为了确定给定的查询是否应返回结果集，参阅 <strong>mysqli_field_count()</strong>。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>string</info>  <strong>$query</strong>  查询字符串。

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

<comment>See Also:</comment>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_store_result()</strong>
   * <strong>mysqli_use_result()</strong>


id: mysqli::reap_async_query
type: function
doc:
<comment>Description:</comment>
  获取异步查询的结果
  
  面向对象风格
  
  过程化风格
  
  获取异步查询的结果，
  
  仅可用于 mysqlnd。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>mysqli_result|bool</info>  失败时返回 <info>false</info>。对于生成结果集的成功查询，比如 <return>SELECT, SHOW, DESCRIBE</return> 或
                      <return>EXPLAIN</return>，<strong>mysqli_reap_async_query()</strong> 将返回 <class>mysqli_result</class> 对象。对其它成功查询，
                      <strong>mysqli_reap_async_query()</strong> 将返回 <info>true</info>。

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


id: mysqli::refresh
type: function
doc:
<comment>Description:</comment>
  刷新
  
  面向对象风格
  
  过程化风格
  
  刷新表或者缓存，或者重置复制服务器信息。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>int</info>     <strong>$flags</strong>  使用 MySQLi 常量文档记录的 MYSQLI_REFRESH_* 常量作为刷新选项。
                  
                  参见 MySQL 官方文档：MySQL Refresh

<comment>Return:</comment>
  <info>bool</info>  刷新成功返回 <info>true</info>，否则返回 <info>false</info>。

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


id: mysqli::release_savepoint
type: function
doc:
<comment>Description:</comment>
  从当前事务的保存点中移除一个命名保存点
  
  面向对象风格
  
  过程化风格:
  
  此函数等同于执行 $mysqli-&gt;query("RELEASE SAVEPOINT `$name`");。此函数不会触发 commit 或者
  rollback。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>string</info>  <strong>$name</strong>   保存点的标识符。

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

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


id: mysqli::rollback
type: function
doc:
<comment>Description:</comment>
  回滚当前事务
  
  面向对象风格
  
  过程化风格
  
  回滚数据库的当前事务。

<comment>Param:</comment>
  <info>mysqli</info>       <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                       <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>int</info>          <strong>$flags</strong>  <info>MYSQLI_TRANS_COR_*</info> 常量的位掩码。
  <info>string|null</info>  <strong>$name</strong>   如果提供，则执行 <return>ROLLBACK/*name*/</return>。

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

<comment>See Also:</comment>
   * <strong>mysqli_begin_transaction()</strong>
   * <strong>mysqli_commit()</strong>
   * <strong>mysqli_autocommit()</strong>
   * <strong>mysqli_release_savepoint()</strong>


id: mysqli::savepoint
type: function
doc:
<comment>Description:</comment>
  在当前事务中设置命名保存点
  
  面向对象风格
  
  过程化风格:
  
  此函数等同于执行 $mysqli-&gt;query("SAVEPOINT `$name`");

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>string</info>  <strong>$name</strong>   保存点的标识符。

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

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


id: mysqli::select_db
type: function
doc:
<comment>Description:</comment>
  选择用于数据库查询的默认数据库
  
  面向对象风格
  
  过程化风格
  
  选择默认数据库，用于在已连接的数据库中执行查询。
  
  此函数只能用于更改连接的默认数据库。可以在 <strong>mysqli_connect()</strong> 中使用第 4 个参数选择默认数据库。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>     仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                     <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>string</info>  <strong>$database</strong>  数据库名称

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

<comment>See Also:</comment>
   * <strong>mysqli_connect()</strong>
   * <strong>mysqli_real_connect()</strong>


id: mysqli::set_charset
type: function
doc:
<comment>Description:</comment>
  设置客户端字符集
  
  面向对象风格
  
  过程化风格
  
  设置客户端与数据库间传输数据时所用的字符集。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>    仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                    <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>string</info>  <strong>$charset</strong>  所需的字符集。

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

<comment>See Also:</comment>
   * <strong>mysqli_character_set_name()</strong>
   * <strong>mysqli_real_escape_string()</strong>
   * MySQL 字符集概念
   * MySQL 支持的字符集列表


id: mysqli::set_opt
type: function
doc:
<comment>Description:</comment>
  别名 mysqli_options
  
  此函数是该函数的别名： 这个函数是 <strong>mysqli_options()</strong> 的一个别名。


id: mysqli::ssl_set
type: function
doc:
<comment>Description:</comment>
  用于使用 SSL 建立安全连接
  
  面向对象风格
  
  过程化风格
  
  用于使用 SSL 建立安全连接。必须在 <strong>mysqli_real_connect()</strong> 之前调用。除非启用 OpenSSL 支持，否则此函
  数不执行任何操作。

<comment>Param:</comment>
  <info>mysqli</info>       <strong>$mysql</strong>           仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                                <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>string|null</info>  <strong>$key</strong>             密钥文件的路径
  <info>string|null</info>  <strong>$certificate</strong>     证书文件的路径
  <info>string|null</info>  <strong>$ca_certificate</strong>  签发机构的证书文件路径
  <info>string|null</info>  <strong>$ca_path</strong>         指向一个目录的路径， 该目录下存放的是受信任的 CA 机构证书 PEM 格式的
                                文件。
  <info>string|null</info>  <strong>$cipher_algos</strong>    SSL 加密允许使用的算法清单

<comment>Return:</comment>
  <info>true</info>  总是返回 <info>true</info>。如果 SSL 的设置有误，那么当尝试连接时，<strong>mysqli_real_connect()</strong> 将会返回错误。

<comment>See Also:</comment>
   * <strong>mysqli_options()</strong>
   * <strong>mysqli_real_connect()</strong>


id: mysqli::stat
type: function
doc:
<comment>Description:</comment>
  获取当前系统状态信息
  
  面向对象风格
  
  过程化风格
  
  <strong>mysqli_stat()</strong> 返回字符串，其中包含类似于“mysqladmin status”命令提供的信息。包含以秒为单位的正常运
  行时间、运行中的线程数、问题数、重新加载数以及打开的表数量。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>string|false</info>  描述服务器状态的字符串，发生错误则为 <info>false</info>。

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


id: mysqli::stmt_init
type: function
doc:
<comment>Description:</comment>
  初始化语句并返回用于 mysqli_stmt_prepare（调用）的对象
  
  面向对象风格
  
  过程化风格
  
  分配并初始化适合 <strong>mysqli_stmt_prepare()</strong> 的语句对象。
  
  在调用 <strong>mysqli_stmt_prepare()</strong> 之前，对其它 mysqli_stmt 函数的后续调用都会失败。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>mysqli_stmt|false</info>  返回对象。

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


id: mysqli::store_result
type: function
doc:
<comment>Description:</comment>
  传输上次查询的结果集
  
  面向对象风格
  
  过程化风格
  
  传输由 <strong>$mysql</strong> 参数表示的连接上的上一次查询的结果集，可在 <strong>mysqli_data_seek()</strong> 函数中使用。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>int</info>     <strong>$mode</strong>   想要设置的选项。自 PHP 8.1 起，此参数无效。可以是下列中的某一值： 有效选项名称说明
                  <info>MYSQLI_STORE_RESULT_COPY_DATA</info>将结果从内部 mysqlnd 缓冲区复制到 PHP 变量中。默认
                  mysqlnd 采取引用策略来避免在内容中复制多份同样的结果集。例如，对于包含了很多小行的
                  结果集，复制方法可以减少整体内存使用，因为保存结果的 PHP 变量可能会更早释放。（此
                  选项适用于 mysqlnd 驱动）。

<comment>Return:</comment>
  <info>mysqli_result|false</info>  返回缓冲的结果对象，如果发生错误则返回 <info>false</info>。
                       
                       如果查询没有返回结果集（例如，执行 INSERT 语句查询），<strong>mysqli_store_result()</strong>
                       会返回 <info>false</info>。如果读取结果集失败，也会返回 <info>false</info>。如果通过检查 <strong>mysqli_error()</strong>
                       是否返回非空字符串、<strong>mysqli_error()</strong> 或 <strong>mysqli_field_count()</strong> 是否返回了非零值来
                       检查是否有错误。此函数在成功调用 <strong>mysqli_query()</strong> 后返回 <info>false</info> 的一个可能原因是
                       结果集太大（无法分配内存）。如果 <strong>mysqli_field_count()</strong> 返回非零值，语句应该产
                       生非空结果集。

<comment>See Also:</comment>
   * <strong>mysqli_real_query()</strong>
   * <strong>mysqli_use_result()</strong>


id: mysqli::thread_safe
type: function
doc:
<comment>Description:</comment>
  返回是否线程安全
  
  面向对象风格
  
  过程化风格
  
  告知本数据库客户端库是否编译为线程安全的。

<comment>Return:</comment>
  <info>bool</info>  如果客户端线程安全为 <info>true</info>，否则为 <info>false</info>。


id: mysqli::use_result
type: function
doc:
<comment>Description:</comment>
  Initiate a result set retrieval
  
  面向对象风格
  
  过程化风格
  
  Used to initiate the retrieval of a result set from the last query executed using the
  <strong>mysqli_real_query()</strong> function on the database connection.
  
  Either this or the <strong>mysqli_store_result()</strong> function must be called before the results of a query can
  be retrieved, and one or the other must be called to prevent the next query on that database
  connection from failing.
  
  The <strong>mysqli_use_result()</strong> function does not transfer the entire result set from the database and
  hence cannot be used functions such as <strong>mysqli_data_seek()</strong> to move to a particular row within the
  set. To use this functionality, the result set must be stored using <strong>mysqli_store_result()</strong>. One
  should not use <strong>mysqli_use_result()</strong> if a lot of processing on the client side is performed, since
  this will tie up the server and prevent other threads from updating any tables from which the data
  is being fetched.

<comment>Return:</comment>
  <info>mysqli_result|false</info>  Returns an unbuffered result object or <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * <strong>mysqli_real_query()</strong>
   * <strong>mysqli_store_result()</strong>


id: mysqli_affected_rows
type: function
doc:
<comment>Description:</comment>
  Gets the number of affected rows in a previous MySQL operation
  
  面向对象风格
  
  过程化风格
  
  Returns the number of rows affected by the last <return>INSERT</return>, <return>UPDATE</return>, <return>REPLACE</return> or  <return>DELETE</return> query. Works
  like <strong>mysqli_num_rows()</strong> for <return>SELECT</return> statements.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>int|string</info>  An integer greater than zero indicates the number of rows affected or retrieved. Zero
              indicates that no records were updated for an  <return>UPDATE</return> statement, no rows matched the
              <return>WHERE</return> clause in the query or that no query has yet been executed. <return>-1</return> indicates that
              the query returned an error or that <strong>mysqli_affected_rows()</strong> was called for an
              unbuffered <return>SELECT</return> query.
              
              If the number of affected rows is greater than the maximum int value (<info>PHP_INT_MAX</info>),
              the number of affected rows will be returned as a string.

<comment>See Also:</comment>
   * <strong>mysqli_num_rows()</strong>
   * <strong>mysqli_info()</strong>


id: mysqli_connect
type: function
doc:
<comment>Description:</comment>
  别名 mysqli::__construct
  
  此函数是该函数的别名： mysqli::__construct
  
  如果未启用 mysqli 异常模式，并且连接失败，则 <strong>mysqli_connect()</strong> 返回 <info>false</info> 而不是对象。
  <strong>mysqli_connect_error()</strong> 函数可用于获取连接错误。


id: mysqli_connect_errno
type: function
doc:
<comment>Description:</comment>
  Returns the error code from last connect call
  
  面向对象风格
  
  过程化风格
  
  Returns the error code from the last connection attempt.

<comment>Return:</comment>
  <info>int</info>  An error code for the last connection attempt, if it failed. Zero means no error occurred.

<comment>See Also:</comment>
   * <strong>mysqli_connect()</strong>
   * <strong>mysqli_connect_error()</strong>
   * <strong>mysqli_errno()</strong>
   * <strong>mysqli_error()</strong>
   * <strong>mysqli_sqlstate()</strong>


id: mysqli_connect_error
type: function
doc:
<comment>Description:</comment>
  Returns a description of the last connection error
  
  面向对象风格
  
  过程化风格
  
  Returns the error message from the last connection attempt.

<comment>Return:</comment>
  <info>string|null</info>  A string that describes the error. <info>null</info> is returned if no error occurred.

<comment>See Also:</comment>
   * <strong>mysqli_connect()</strong>
   * <strong>mysqli_connect_errno()</strong>
   * <strong>mysqli_errno()</strong>
   * <strong>mysqli_error()</strong>
   * <strong>mysqli_sqlstate()</strong>


id: mysqli_data_seek
type: function
doc:
<comment>Description:</comment>
  Adjusts the result pointer to an arbitrary row in the result
  
  面向对象风格
  
  过程化风格
  
  The <strong>mysqli_data_seek()</strong> function seeks to an arbitrary result pointer specified by the <strong>$offset</strong> in
  the result set.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  仅以过程化样式：由
                          <strong>mysqli_query()</strong>、<strong>mysqli_store_result()</strong>、
                          <strong>mysqli_use_result()</strong>、<strong>mysqli_stmt_get_result()</strong> 返回的 <class>mysqli_result</class> 对象。
  <info>int</info>            <strong>$offset</strong>  The row offset. Must be between zero and the total number of rows minus
                          one (0..<strong>mysqli_num_rows()</strong> - 1).

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

<comment>See Also:</comment>
   * <strong>mysqli_store_result()</strong>
   * <strong>mysqli_fetch_row()</strong>
   * <strong>mysqli_fetch_array()</strong>
   * <strong>mysqli_fetch_assoc()</strong>
   * <strong>mysqli_fetch_object()</strong>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_num_rows()</strong>


id: mysqli_driver
type: class
doc:
<comment>Description:</comment>
  <class>mysqli_driver</class> 类是单例模式的实例，即任意数量的 <class>mysqli_driver</class> 实例只访问一个驱动。


id: mysqli_driver::embedded_server_end
type: function
doc:
<comment>Description:</comment>
  Stop embedded server
  
  面向对象风格
  
  过程化风格
  
  本函数还未编写文档，仅有参数列表。

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


id: mysqli_driver::embedded_server_start
type: function
doc:
<comment>Description:</comment>
  Initialize and start embedded server
  
  面向对象风格
  
  过程化风格
  
  本函数还未编写文档，仅有参数列表。

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


id: mysqli_errno
type: function
doc:
<comment>Description:</comment>
  返回最近函数调用的错误代码
  
  面向对象风格
  
  过程化风格
  
  返回最近一次 mysqli 函数调用成功或者失败产生的错误代码。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>int</info>  上次调用产生的错误代码（如果失败）, 0 代表没有错误发生。

<comment>See Also:</comment>
   * <strong>mysqli_connect_errno()</strong>
   * <strong>mysqli_connect_error()</strong>
   * <strong>mysqli_error()</strong>
   * <strong>mysqli_sqlstate()</strong>


id: mysqli_error
type: function
doc:
<comment>Description:</comment>
  Returns a string description of the last error
  
  面向对象风格
  
  过程化风格
  
  Returns the last error message for the most recent MySQLi function call that can succeed or fail.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>string</info>  A string that describes the error. An empty string if no error occurred.

<comment>See Also:</comment>
   * <strong>mysqli_connect_errno()</strong>
   * <strong>mysqli_connect_error()</strong>
   * <strong>mysqli_errno()</strong>
   * <strong>mysqli_sqlstate()</strong>


id: mysqli_error_list
type: function
doc:
<comment>Description:</comment>
  Returns a list of errors from the last command executed
  
  面向对象风格
  
  过程化风格
  
  Returns a array of errors for the most recent MySQLi function call that can succeed or fail.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>array</info>  A list of errors, each as an associative <info>array</info> containing the errno, error, and sqlstate.

<comment>See Also:</comment>
   * <strong>mysqli_connect_errno()</strong>
   * <strong>mysqli_connect_error()</strong>
   * <strong>mysqli_error()</strong>
   * <strong>mysqli_sqlstate()</strong>


id: mysqli_execute
type: function
doc:
<comment>Description:</comment>
  别名 mysqli_stmt_execute
  
  此函数是该函数的别名： 这个函数是 <strong>mysqli_stmt_execute()</strong> 的一个别名。

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


id: mysqli_fetch_all
type: function
doc:
<comment>Description:</comment>
  Fetch all result rows as an associative array, a numeric array, or both
  
  面向对象风格
  
  过程化风格
  
  Returns a two-dimensional array of all result rows  as an associative array, a numeric array, or
  both.
  
  Prior to PHP 8.1.0, available only with mysqlnd.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  仅以过程化样式：由
                          <strong>mysqli_query()</strong>、<strong>mysqli_store_result()</strong>、
                          <strong>mysqli_use_result()</strong>、<strong>mysqli_stmt_get_result()</strong> 返回的 <class>mysqli_result</class> 对象。
  <info>int</info>            <strong>$mode</strong>    This optional parameter is a constant indicating what type of array should
                          be produced from the current row data. The possible values for this
                          parameter are the constants <info>MYSQLI_ASSOC</info>, <info>MYSQLI_NUM</info>, or <info>MYSQLI_BOTH</info>.

<comment>Return:</comment>
  <info>array</info>  Returns an array of associative or numeric arrays holding result rows.

<comment>See Also:</comment>
   * <strong>mysqli_fetch_array()</strong>
   * <strong>mysqli_fetch_column()</strong>
   * <strong>mysqli_query()</strong>


id: mysqli_fetch_array
type: function
doc:
<comment>Description:</comment>
  Fetch the next row of a result set as an associative, a numeric array, or both
  
  面向对象风格
  
  过程化风格
  
  Fetches one row of data from the result set and returns it as an array. Each subsequent call to
  this function will return the next row within the result set, or <info>null</info> if there are no more rows.
  
  In addition to storing the data in the numeric indices of the result array,  this function can
  also store the data in associative indices  by using the field names of the result set as keys.
  
  If two or more columns of the result have the same name, the last column will take precedence and
  overwrite any previous data. To access multiple columns with the same name, the numerically
  indexed version of the row must be used.
  
  此函数返回的字段名大小写敏感。
  
  此函数将 NULL 字段设置为 PHP <info>null</info> 值。

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  仅以过程化样式：由
                          <strong>mysqli_query()</strong>、<strong>mysqli_store_result()</strong>、
                          <strong>mysqli_use_result()</strong>、<strong>mysqli_stmt_get_result()</strong> 返回的 <class>mysqli_result</class> 对象。
  <info>int</info>            <strong>$mode</strong>    This optional parameter is a constant indicating what type of array should
                          be produced from the current row data. The possible values for this
                          parameter are the constants <info>MYSQLI_ASSOC</info>, <info>MYSQLI_NUM</info>, or <info>MYSQLI_BOTH</info>.
                          
                          By using the <info>MYSQLI_ASSOC</info> constant this function will behave identically
                          to the <strong>mysqli_fetch_assoc()</strong>, while <info>MYSQLI_NUM</info> will behave identically to
                          the <strong>mysqli_fetch_row()</strong> function. The final option  <info>MYSQLI_BOTH</info> will create
                          a single array with the attributes of both.

<comment>Return:</comment>
  <info>array|null|false</info>  Returns an array representing the fetched row, <info>null</info> if there are no more rows in
                    the result set,  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>mysqli_fetch_assoc()</strong>
   * <strong>mysqli_fetch_column()</strong>
   * <strong>mysqli_fetch_row()</strong>
   * <strong>mysqli_fetch_object()</strong>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_data_seek()</strong>


id: mysqli_fetch_assoc
type: function
doc:
<comment>Description:</comment>
  Fetch the next row of a result set as an associative array
  
  面向对象风格
  
  过程化风格
  
  Fetches one row of data from the result set and returns it as an associative array. Each
  subsequent call to this function will return the next row within the result set, or <info>null</info> if there
  are no more rows.
  
  If two or more columns of the result have the same name, the last column will take precedence and
  overwrite any previous data. To access multiple columns with the same name, <strong>mysqli_fetch_row()</strong> may
  be used to fetch the numerically indexed array, or aliases may be used in the SQL query select
  list to give columns different names.
  
  此函数返回的字段名大小写敏感。
  
  此函数将 NULL 字段设置为 PHP <info>null</info> 值。

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  仅以过程化样式：由
                          <strong>mysqli_query()</strong>、<strong>mysqli_store_result()</strong>、
                          <strong>mysqli_use_result()</strong>、<strong>mysqli_stmt_get_result()</strong> 返回的 <class>mysqli_result</class> 对象。

<comment>Return:</comment>
  <info>array|null|false</info>  Returns an associative array representing the fetched row, where each key in the
                    array represents the name of one of the result set's columns, <info>null</info> if there are
                    no more rows in the result set,  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>mysqli_fetch_array()</strong>
   * <strong>mysqli_fetch_column()</strong>
   * <strong>mysqli_fetch_row()</strong>
   * <strong>mysqli_fetch_object()</strong>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_data_seek()</strong>


id: mysqli_fetch_column
type: function
doc:
<comment>Description:</comment>
  Fetch a single column from the next row of a result set
  
  面向对象风格
  
  过程化风格
  
  Fetches one row of data from the result set and returns the 0-indexed column. Each subsequent call
  to this function will return the value from the next row within the result set, or <info>false</info> if there
  are no more rows.
  
  此函数将 NULL 字段设置为 PHP <info>null</info> 值。

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  仅以过程化样式：由
                          <strong>mysqli_query()</strong>、<strong>mysqli_store_result()</strong>、
                          <strong>mysqli_use_result()</strong>、<strong>mysqli_stmt_get_result()</strong> 返回的 <class>mysqli_result</class> 对象。
  <info>int</info>            <strong>$column</strong>  0-indexed number of the column you wish to retrieve from the row. If no
                          value is supplied, the first column will be returned.

<comment>Return:</comment>
  <info>null|int|float|string|false</info>  Returns a single column from the next row of a result set or <info>false</info> if
                               there are no more rows.
                               
                               There is no way to return another column from the same row if you use
                               this function to retrieve data.

<comment>See Also:</comment>
   * <strong>mysqli_fetch_all()</strong>
   * <strong>mysqli_fetch_array()</strong>
   * <strong>mysqli_fetch_assoc()</strong>
   * <strong>mysqli_fetch_object()</strong>
   * <strong>mysqli_fetch_row()</strong>
   * <strong>mysqli_data_seek()</strong>


id: mysqli_fetch_field
type: function
doc:
<comment>Description:</comment>
  Returns the next field in the result set
  
  面向对象风格
  
  过程化风格
  
  Returns the definition of one column of a result set as an object. Call this function repeatedly
  to retrieve information about all columns in the result set.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  仅以过程化样式：由
                          <strong>mysqli_query()</strong>、<strong>mysqli_store_result()</strong>、
                          <strong>mysqli_use_result()</strong>、<strong>mysqli_stmt_get_result()</strong> 返回的 <class>mysqli_result</class> 对象。

<comment>Return:</comment>
  <info>object|false</info>  Returns an object which contains field definition information or <info>false</info> if no field
                information is available.
                
                Object propertiesPropertyDescriptionnameThe name of the columnorgnameOriginal column
                name if an alias was specifiedtableThe name of the table this field belongs to (if
                not calculated)orgtableOriginal table name if an alias was specifieddefReserved for
                default value, currently always ""dbThe name of the databasecatalogThe catalog name,
                always "def"max_lengthThe maximum width of the field for the result set.lengthThe
                width of the field, as specified in the table definition.charsetnrThe character set
                number for the field.flagsAn integer representing the bit-flags for the
                field.typeThe data type used for this fielddecimalsThe number of decimals used (for
                integer fields)

<comment>See Also:</comment>
   * <strong>mysqli_num_fields()</strong>
   * <strong>mysqli_fetch_field_direct()</strong>
   * <strong>mysqli_fetch_fields()</strong>
   * <strong>mysqli_field_seek()</strong>


id: mysqli_fetch_field_direct
type: function
doc:
<comment>Description:</comment>
  Fetch meta-data for a single field
  
  面向对象风格
  
  过程化风格
  
  Returns an object which contains field definition information from the specified result set.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  仅以过程化样式：由
                          <strong>mysqli_query()</strong>、<strong>mysqli_store_result()</strong>、
                          <strong>mysqli_use_result()</strong>、<strong>mysqli_stmt_get_result()</strong> 返回的 <class>mysqli_result</class> 对象。
  <info>int</info>            <strong>$index</strong>   The field number. This value must be in the range from <return>0</return> to <return>number of
                          fields - 1</return>.

<comment>Return:</comment>
  <info>object|false</info>  Returns an object which contains field definition information or <info>false</info> if no field
                information for specified <strong>$index</strong> is available.
                
                Object attributesAttributeDescriptionnameThe name of the columnorgnameOriginal
                column name if an alias was specifiedtableThe name of the table this field belongs
                to (if not calculated)orgtableOriginal table name if an alias was specifieddefThe
                default value for this field, represented as a stringmax_lengthThe maximum width of
                the field for the result set. As of PHP 8.1, this value is always <return>0</return>.lengthThe width
                of the field, as specified in the table definition.charsetnrThe character set number
                for the field.flagsAn integer representing the bit-flags for the field.typeThe data
                type used for this fielddecimalsThe number of decimals used (for numeric fields)

<comment>See Also:</comment>
   * <strong>mysqli_num_fields()</strong>
   * <strong>mysqli_fetch_field()</strong>
   * <strong>mysqli_fetch_fields()</strong>


id: mysqli_fetch_fields
type: function
doc:
<comment>Description:</comment>
  Returns an array of objects representing the fields in a result set
  
  面向对象风格
  
  过程化风格
  
  This function serves an identical purpose to the  <strong>mysqli_fetch_field()</strong> function with the single
  difference that, instead of returning one object at a time for each field, the columns are
  returned as an array of objects.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  仅以过程化样式：由
                          <strong>mysqli_query()</strong>、<strong>mysqli_store_result()</strong>、
                          <strong>mysqli_use_result()</strong>、<strong>mysqli_stmt_get_result()</strong> 返回的 <class>mysqli_result</class> 对象。

<comment>Return:</comment>
  <info>array</info>  Returns an array of objects containing field definition information.
         
         Object propertiesPropertyDescriptionnameThe name of the columnorgnameOriginal column name
         if an alias was specifiedtableThe name of the table this field belongs to (if not
         calculated)orgtableOriginal table name if an alias was specifiedmax_lengthThe maximum width
         of the field for the result set. As of PHP 8.1, this value is always <return>0</return>.length The width of
         the field, in bytes, as specified in the table definition. Note that  this number (bytes)
         might differ from your table definition value (characters), depending on the character set
         you use. For example, the character set utf8 has 3 bytes per character,  so varchar(10)
         will return a length of 30 for utf8 (10*3), but return 10 for latin1 (10*1). charsetnrThe
         character set number (id) for the field.flagsAn integer representing the bit-flags for the
         field.typeThe data type used for this fielddecimalsThe number of decimals used (for integer
         fields)

<comment>See Also:</comment>
   * <strong>mysqli_num_fields()</strong>
   * <strong>mysqli_fetch_field_direct()</strong>
   * <strong>mysqli_fetch_field()</strong>


id: mysqli_fetch_lengths
type: function
doc:
<comment>Description:</comment>
  Returns the lengths of the columns of the current row in the result set
  
  面向对象风格
  
  过程化风格
  
  The <strong>mysqli_fetch_lengths()</strong> function returns an array containing the lengths of every column of the
  current row within the result set.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  仅以过程化样式：由
                          <strong>mysqli_query()</strong>、<strong>mysqli_store_result()</strong>、
                          <strong>mysqli_use_result()</strong>、<strong>mysqli_stmt_get_result()</strong> 返回的 <class>mysqli_result</class> 对象。

<comment>Return:</comment>
  <info>array|false</info>  An array of integers representing the size of each column (not including any
               terminating null characters). <info>false</info> if an error occurred.
               
               <strong>mysqli_fetch_lengths()</strong> is valid only for the current row of the result set. It
               returns <info>false</info> if you call it before calling mysqli_fetch_row/array/object or after
               retrieving all rows in the result.


id: mysqli_fetch_object
type: function
doc:
<comment>Description:</comment>
  Fetch the next row of a result set as an object
  
  面向对象风格
  
  过程化风格
  
  Fetches one row of data from the result set and returns it as an object, where each property
  represents the name of the result set's column. Each subsequent call to this function will return
  the next row within the result set, or <info>null</info> if there are no more rows.
  
  If two or more columns of the result have the same name, the last column will take precedence and
  overwrite any previous data. To access multiple columns with the same name, <strong>mysqli_fetch_row()</strong> may
  be used to fetch the numerically indexed array, or aliases may be used in the SQL query select
  list to give columns different names.
  
  This function sets the properties of the object before calling the object constructor.
  
  此函数返回的字段名大小写敏感。
  
  此函数将 NULL 字段设置为 PHP <info>null</info> 值。

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>            仅以过程化样式：由
                                    <strong>mysqli_query()</strong>、<strong>mysqli_store_result()</strong>、
                                    <strong>mysqli_use_result()</strong>、<strong>mysqli_stmt_get_result()</strong> 返回的
                                    <class>mysqli_result</class> 对象。
  <info>string</info>         <strong>$class</strong>             The name of the class to instantiate, set the properties of and
                                    return. If not specified, a <class>stdClass</class> object is returned.
  <info>array</info>          <strong>$constructor_args</strong>  An optional <info>array</info> of parameters to pass to the constructor for
                                    <strong>$class</strong> objects.

<comment>Return:</comment>
  <info>object|null|false</info>  Returns an object representing the fetched row, where each property represents
                     the name of the result set's column, <info>null</info> if there are no more rows in the
                     result set,  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>mysqli_fetch_array()</strong>
   * <strong>mysqli_fetch_assoc()</strong>
   * <strong>mysqli_fetch_column()</strong>
   * <strong>mysqli_fetch_row()</strong>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_data_seek()</strong>


id: mysqli_fetch_row
type: function
doc:
<comment>Description:</comment>
  Fetch the next row of a result set as an enumerated array
  
  面向对象风格
  
  过程化风格
  
  Fetches one row of data from the result set and returns it as an enumerated array, where each
  column is stored in an array offset starting from 0 (zero). Each subsequent call to this function
  will return the next row within the result set, or <info>null</info> if there are no more rows.
  
  此函数将 NULL 字段设置为 PHP <info>null</info> 值。

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  仅以过程化样式：由
                          <strong>mysqli_query()</strong>、<strong>mysqli_store_result()</strong>、
                          <strong>mysqli_use_result()</strong>、<strong>mysqli_stmt_get_result()</strong> 返回的 <class>mysqli_result</class> 对象。

<comment>Return:</comment>
  <info>array|null|false</info>  Returns an enumerated array representing the fetched row, <info>null</info> if there are no
                    more rows in the result set,  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>mysqli_fetch_array()</strong>
   * <strong>mysqli_fetch_assoc()</strong>
   * <strong>mysqli_fetch_column()</strong>
   * <strong>mysqli_fetch_object()</strong>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_data_seek()</strong>


id: mysqli_field_count
type: function
doc:
<comment>Description:</comment>
  Returns the number of columns for the most recent query
  
  面向对象风格
  
  过程化风格
  
  Returns the number of columns for the most recent query on the connection represented by the
  <strong>$mysql</strong> parameter. This function can be useful when using the <strong>mysqli_store_result()</strong> function to
  determine if the query should have produced a non-empty result set or not without knowing the
  nature of the query.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>int</info>  An integer representing the number of fields in a result set.


id: mysqli_field_seek
type: function
doc:
<comment>Description:</comment>
  Set result pointer to a specified field offset
  
  面向对象风格
  
  过程化风格
  
  Sets the field cursor to the given offset. The next call to  <strong>mysqli_fetch_field()</strong> will retrieve
  the field definition of the column associated with that offset.
  
  To seek to the beginning of a row, pass an offset value of zero.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  仅以过程化样式：由
                          <strong>mysqli_query()</strong>、<strong>mysqli_store_result()</strong>、
                          <strong>mysqli_use_result()</strong>、<strong>mysqli_stmt_get_result()</strong> 返回的 <class>mysqli_result</class> 对象。
  <info>int</info>            <strong>$index</strong>   The field number. This value must be in the range from  <return>0</return> to <return>number of
                          fields - 1</return>.

<comment>Return:</comment>
  <info>bool</info>  总是返回 <info>true</info>。

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


id: mysqli_field_tell
type: function
doc:
<comment>Description:</comment>
  Get current field offset of a result pointer
  
  面向对象风格
  
  过程化风格
  
  Returns the position of the field cursor used for the last <strong>mysqli_fetch_field()</strong> call. This value
  can be used as an argument to <strong>mysqli_field_seek()</strong>.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  仅以过程化样式：由
                          <strong>mysqli_query()</strong>、<strong>mysqli_store_result()</strong>、
                          <strong>mysqli_use_result()</strong>、<strong>mysqli_stmt_get_result()</strong> 返回的 <class>mysqli_result</class> 对象。

<comment>Return:</comment>
  <info>int</info>  Returns current offset of field cursor.

<comment>See Also:</comment>
   * <strong>mysqli_fetch_field()</strong>
   * <strong>mysqli_field_seek()</strong>


id: mysqli_free_result
type: function
doc:
<comment>Description:</comment>
  Frees the memory associated with a result
  
  面向对象风格
  
  过程化风格
  
  Frees the memory associated with the result.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  仅以过程化样式：由
                          <strong>mysqli_query()</strong>、<strong>mysqli_store_result()</strong>、
                          <strong>mysqli_use_result()</strong>、<strong>mysqli_stmt_get_result()</strong> 返回的 <class>mysqli_result</class> 对象。

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

<comment>See Also:</comment>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_stmt_get_result()</strong>
   * <strong>mysqli_store_result()</strong>
   * <strong>mysqli_use_result()</strong>


id: mysqli_get_client_stats
type: function
doc:
<comment>Description:</comment>
  返回客户端进程统计信息
  
  返回客户端每个进程的统计信息。
  
  仅可用于 mysqlnd。

<comment>Return:</comment>
  <info>array</info>  返回包含客户端状态的数组。

<comment>See Also:</comment>
   * 统计信息描述


id: mysqli_get_client_version
type: function
doc:
<comment>Description:</comment>
  作为整数返回 MySQL 客户端的版本
  
  面向对象风格
  
  过程化风格
  
  作为整数返回客户端版本号。

<comment>Return:</comment>
  <info>int</info>  表示 MySQL 客户端库版本的数字，格式为 <return>main_version*10000 + minor_version *100 + sub_version</return>。
       例如：4.1.0 返回 40100。
       
       这有助于快速确定客户端库的版本来辨别是否有某些特性存在。

<comment>See Also:</comment>
   * <strong>mysqli_get_client_info()</strong>
   * <strong>mysqli_get_server_info()</strong>
   * <strong>mysqli_get_server_version()</strong>


id: mysqli_get_host_info
type: function
doc:
<comment>Description:</comment>
  返回表述使用的连接类型的字符串
  
  面向对象风格
  
  过程化风格
  
  返回由 <strong>$mysql</strong> 参数表示连接的字符串描述（包括服务器主机名）。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>string</info>  表示服务器主机名和连接类型的字符串。

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


id: mysqli_get_links_stats
type: function
doc:
<comment>Description:</comment>
  返回打开和缓存的链接相关信息
  
  <strong>mysqli_get_links_stats()</strong> 返回已经打开和缓存的MySQL链接的相关信息。

<comment>Return:</comment>
  <info>array</info>  <strong>mysqli_get_links_stats()</strong> 返回一个有三个元素的关联数组, 键如下: <strong>$total</strong> 类型 <info>int</info> 所有状态链接
         的总数 <strong>$active_plinks</strong> 类型 <info>int</info> 不活跃的持久链接数 <strong>$cached_plinks</strong> 类型 <info>int</info> 不活跃的持久链接
         数
         
         类型 <info>int</info> 所有状态链接的总数
         
         类型 <info>int</info> 不活跃的持久链接数
         
         类型 <info>int</info> 不活跃的持久链接数


id: mysqli_get_proto_info
type: function
doc:
<comment>Description:</comment>
  返回 MySQL 协议使用的版本号
  
  面向对象风格
  
  过程化风格
  
  返回整数，表示由 <strong>$mysql</strong> 参数表示的连接所使用的 MySQL 协议的版本号。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>int</info>  返回表示协议版本号的整数。

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


id: mysqli_get_server_version
type: function
doc:
<comment>Description:</comment>
  作为一个整数返回MySQL服务器的版本
  
  面向对象风格
  
  过程化风格
  
  <strong>mysqli_get_server_version()</strong> 函数以整数的形式返回连接的 <strong>$mysql</strong> 参数所表述的服务器的版本。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>int</info>  一个整数表述的服务器版本。
       
       版本号的格式是 <return>main_version * 10000 + minor_version * 100 + sub_version</return>（例如版本 4.1.0 是
       40100）。

<comment>See Also:</comment>
   * <strong>mysqli_get_client_info()</strong>
   * <strong>mysqli_get_client_version()</strong>
   * <strong>mysqli_get_server_info()</strong>


id: mysqli_info
type: function
doc:
<comment>Description:</comment>
  返回最近执行的 SQL 语句的信息
  
  面向对象风格
  
  过程化风格
  
  <strong>mysqli_info()</strong> 函数返回一个包含 最近执行的 SQL 语句信息的字符串。 下面有一些参考样例：
  
  mysqli_info 可能的返回值SQL 语句类型返回结果字符串示例INSERT INTO...SELECT...Records: 100
  Duplicates: 0 Warnings: 0INSERT INTO...VALUES (...),(...),(...)Records: 3 Duplicates: 0 Warnings:
  0LOAD DATA INFILE ...Records: 1 Deleted: 0 Skipped: 0 Warnings: 0ALTER TABLE ...Records: 3
  Duplicates: 0 Warnings: 0UPDATE ...Rows matched: 40 Changed: 40 Warnings: 0
  
  如果所执行的 SQL 语句不是上面列出来的这几种类型的， <strong>mysqli_info()</strong> 函数会返回一个空字符串。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>string|null</info>  最近执行的 SQL 语句的相关信息。

<comment>See Also:</comment>
   * <strong>mysqli_affected_rows()</strong>
   * <strong>mysqli_warning_count()</strong>
   * <strong>mysqli_num_rows()</strong>


id: mysqli_insert_id
type: function
doc:
<comment>Description:</comment>
  返回上次查询为 AUTO_INCREMENT 列生成的值
  
  面向对象风格
  
  过程化风格
  
  返回有 <return>AUTO_INCREMENT</return> 属性的表执行 <return>INSERT</return> 或 <return>UPDATE</return> 查询生成的 ID。对于多行 <return>INSERT</return> 语句，返回成功
  插入的第一个自动生成的值。
  
  使用 <return>LAST_INSERT_ID()</return> MySQL 函数执行 <return>INSERT</return> 或 <return>UPDATE</return> 语句也会修改 <strong>mysqli_insert_id()</strong> 返回的值。如
  果使用 <return>LAST_INSERT_ID(expr)</return> 生成 <return>AUTO_INCREMENT</return> 的值，将返回最后 <return>expr</return> 的值而不是生成的
  <return>AUTO_INCREMENT</return> 值。
  
  如果之前的语句没有修改 <return>AUTO_INCREMENT</return> 的值，则返回 <return>0</return>。<strong>mysqli_insert_id()</strong> 必须在生成值的语句之后立
  即调用。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>int|string</info>  上一个查询更新的 <return>AUTO_INCREMENT</return> 字段的值。如果连接上没有之前的查询或者查询没有更新
              <return>AUTO_INCREMENT</return> 值。则返回 0。
              
              只有使用当前连接发出的语句才会影响返回值。该值不受使用其它连接或客户端发出的语句的影
              响。
              
              如果数字大于最大 int 值，将以字符串返回该值。


id: mysqli_num_fields
type: function
doc:
<comment>Description:</comment>
  Gets the number of fields in the result set
  
  面向对象风格
  
  过程化风格
  
  Returns the number of fields in the result set.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  仅以过程化样式：由
                          <strong>mysqli_query()</strong>、<strong>mysqli_store_result()</strong>、
                          <strong>mysqli_use_result()</strong>、<strong>mysqli_stmt_get_result()</strong> 返回的 <class>mysqli_result</class> 对象。

<comment>Return:</comment>
  <info>int</info>  An <info>int</info> representing the number of fields.

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


id: mysqli_num_rows
type: function
doc:
<comment>Description:</comment>
  Gets the number of rows in the result set
  
  面向对象风格
  
  过程化风格
  
  Returns the number of rows in the result set.
  
  The behaviour of <strong>mysqli_num_rows()</strong> depends on whether buffered or unbuffered result sets are being
  used. This function returns <return>0</return> for unbuffered result sets unless all rows have been fetched from
  the server.

<comment>Param:</comment>
  <info>mysqli_result</info>  <strong>$result</strong>  仅以过程化样式：由
                          <strong>mysqli_query()</strong>、<strong>mysqli_store_result()</strong>、
                          <strong>mysqli_use_result()</strong>、<strong>mysqli_stmt_get_result()</strong> 返回的 <class>mysqli_result</class> 对象。

<comment>Return:</comment>
  <info>int|string</info>  An <info>int</info> representing the number of fetched rows. Returns <return>0</return> in unbuffered mode unless
              all rows have been fetched from the server.
              
              If the number of rows is greater than <info>PHP_INT_MAX</info>,
              the number will be returned as a <info>string</info>.

<comment>See Also:</comment>
   * <strong>mysqli_affected_rows()</strong>
   * <strong>mysqli_store_result()</strong>
   * <strong>mysqli_use_result()</strong>
   * <strong>mysqli_query()</strong>
   * <strong>mysqli_stmt_num_rows()</strong>


id: mysqli_report
type: function
doc:
<comment>Description:</comment>
  别名 mysqli_driver->report_mode
  
  此函数是该函数的别名： mysqli_driver-&gt;report_mode


id: mysqli_result::__construct
type: function
doc:
<comment>Description:</comment>
  Constructs a mysqli_result object
  
  This method constructs a new <class>mysqli_result</class> object.
  
  It can be used to create the <class>mysqli_result</class> object after calling the <strong>mysqli_real_query()</strong> or
  <strong>mysqli_multi_query()</strong> function. Constructing the object manually is equivalent to calling the
  <strong>mysqli_store_result()</strong> or <strong>mysqli_use_result()</strong> function.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>        仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                        <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。
  <info>int</info>     <strong>$result_mode</strong>  The result mode can be one of 2 constants indicating how the result will be
                        returned from the MySQL server.
                        
                        <info>MYSQLI_STORE_RESULT</info> (default) - creates a <class>mysqli_result</class> object with buffered
                        result set.
                        
                        <info>MYSQLI_USE_RESULT</info> - creates a <class>mysqli_result</class> object with unbuffered result
                        set.  As long as there are pending records waiting to be fetched, the
                        connection line will be busy and all subsequent calls will return error
                        <return>Commands out of sync</return>. To avoid the error all records  must be fetched from
                        the server or the result set must be discarded by calling
                        <strong>mysqli_free_result()</strong>. The connection must remain open for the rows to be
                        fetched.

<comment>See Also:</comment>
   * <strong>mysqli_multi_query()</strong>
   * <strong>mysqli_real_query()</strong>
   * <strong>mysqli_store_result()</strong>
   * <strong>mysqli_use_result()</strong>


id: mysqli_result::getIterator
type: function
doc:
<comment>Description:</comment>
  Retrieve an external iterator
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>Iterator</info>  


id: mysqli_sql_exception::getSqlState
type: function
doc:
<comment>Description:</comment>
  Returns the SQLSTATE error code
  
  Returns a string containing the SQLSTATE error code for the last error. The error code consists of
  five characters. The values are specified by ANSI SQL and ODBC. For a list of possible values, see
  http://dev.mysql.com/doc/mysql/en/error-handling.html.
  
  Note that not all MySQL errors are yet mapped to SQLSTATE's. The value <return>HY000</return> (general error) is
  used for unmapped errors.

<comment>Return:</comment>
  <info>string</info>  Returns a string containing the SQLSTATE error code for the last error. The error code
          consists of five characters.


id: mysqli_sqlstate
type: function
doc:
<comment>Description:</comment>
  返回上一次 MySQL 操作的 SQLSTATE 错误
  
  面向对象风格
  
  过程化风格
  
  返回包含 SQLSTATE 错误码的字符串，表示上次的错误。错误码由 5 个字符构成。<return>'00000'</return> 表示没有发生错
  误。错误码由 ANSI SQL 和 ODBC 定义。对可能的值列表，参见
  http://dev.mysql.com/doc/mysql/en/error-handling.html。
  
  需要注意的是，并不是所有的 MySQL 错误都映射到了 SQLSTATE，未映射的错误消息使用 <return>HY000</return>（常规错误）表
  示。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>string</info>  返回包含 SQLSTATE 错误码的字符串，表示上次的错误。 错误码由 5 个字符构成。<return>'00000'</return> 表示没有
          错误。

<comment>See Also:</comment>
   * <strong>mysqli_errno()</strong>
   * <strong>mysqli_error()</strong>


id: mysqli_stmt::__construct
type: function
doc:
<comment>Description:</comment>
  Constructs a new mysqli_stmt object
  
  This method constructs a new <class>mysqli_stmt</class> object.

<comment>Param:</comment>
  <info></info>             <strong>$link</strong>   A valid <class>mysqli</class> object.
  <info>string|null</info>  <strong>$query</strong>  The query, as a string. If this parameter is <info>null</info>, then the constructor
                       behaves identically to <strong>mysqli_stmt_init()</strong>, otherwise it behaves as per
                       <strong>mysqli_prepare()</strong>.

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_init()</strong>


id: mysqli_stmt::attr_get
type: function
doc:
<comment>Description:</comment>
  Used to get the current value of a statement attribute
  
  面向对象风格
  
  过程化风格
  
  Gets the current value of a statement attribute.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。
  <info>int</info>          <strong>$attribute</strong>  The attribute that you want to get.

<comment>Return:</comment>
  <info>int</info>  Returns the value of the attribute.


id: mysqli_stmt::attr_set
type: function
doc:
<comment>Description:</comment>
  Used to modify the behavior of a prepared statement
  
  面向对象风格
  
  过程化风格
  
  Used to modify the behavior of a prepared statement. This function may be called multiple times to
  set several attributes.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。
  <info>int</info>          <strong>$attribute</strong>  The attribute that you want to set. It can have one of the following
                           values: Attribute
                           valuesCharacterDescriptionMYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH Setting to
                           <info>true</info> causes <strong>mysqli_stmt_store_result()</strong> to update the metadata
                           <return>MYSQL_FIELD-&gt;max_length</return> value. MYSQLI_STMT_ATTR_CURSOR_TYPE Type of
                           cursor to open for statement when <strong>mysqli_stmt_execute()</strong> is invoked.
                           <strong>$value</strong> can be <return>MYSQLI_CURSOR_TYPE_NO_CURSOR</return> (the default) or
                           <return>MYSQLI_CURSOR_TYPE_READ_ONLY</return>. MYSQLI_STMT_ATTR_PREFETCH_ROWS Number of
                           rows to fetch from server at a time when using a cursor. <strong>$value</strong> can be in
                           the range from 1 to the maximum value of unsigned long. The default is 1.
                           
                           If you use the <return>MYSQLI_STMT_ATTR_CURSOR_TYPE</return> option with
                           <return>MYSQLI_CURSOR_TYPE_READ_ONLY</return>, a cursor is opened for the statement when
                           you invoke <strong>mysqli_stmt_execute()</strong>. If there is already an open cursor from
                           a previous <strong>mysqli_stmt_execute()</strong> call, it closes the cursor before
                           opening a new one. <strong>mysqli_stmt_reset()</strong> also closes any open cursor before
                           preparing the statement for re-execution. <strong>mysqli_stmt_free_result()</strong>
                           closes any open cursor.
                           
                           If you open a cursor for a prepared statement, <strong>mysqli_stmt_store_result()</strong>
                           is unnecessary.
  <info>int</info>          <strong>$value</strong>      The value to assign to the attribute.

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

<comment>See Also:</comment>
   * Connector/MySQL mysql_stmt_attr_set()


id: mysqli_stmt::bind_param
type: function
doc:
<comment>Description:</comment>
  Binds variables to a prepared statement as parameters
  
  面向对象风格
  
  过程化风格
  
  Bind variables for the parameter markers in the SQL statement prepared by <strong>mysqli_prepare()</strong> or
  <strong>mysqli_stmt_prepare()</strong>.
  
  If data size of a variable exceeds max. allowed packet size (max_allowed_packet), you have to
  specify <return>b</return> in <strong>$types</strong> and use <strong>mysqli_stmt_send_long_data()</strong> to send the data in packets.
  
  Care must be taken when using <strong>mysqli_stmt_bind_param()</strong> in conjunction with <strong>call_user_func_array()</strong>.
  Note that <strong>mysqli_stmt_bind_param()</strong> requires parameters to be passed by reference, whereas
  <strong>call_user_func_array()</strong> can accept as a parameter a list of variables that can represent references
  or values.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。
  <info>string</info>       <strong>$types</strong>      A string that contains one or more characters which specify the types for
                           the corresponding bind variables: Type specification
                           charsCharacterDescriptionicorresponding variable has type
                           <info>int</info>dcorresponding variable has type <info>float</info>scorresponding variable has type
                           <info>string</info>bcorresponding variable is a blob and will be sent in packets
  <info>mixed</info>        <strong>$var</strong>        The number of variables and length of string  <strong>$types</strong> must match the
                           parameters in the statement.

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

<comment>See Also:</comment>
   * <strong>mysqli_stmt_bind_result()</strong>
   * <strong>mysqli_stmt_execute()</strong>
   * <strong>mysqli_stmt_fetch()</strong>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_send_long_data()</strong>
   * <strong>mysqli_stmt_errno()</strong>
   * <strong>mysqli_stmt_error()</strong>


id: mysqli_stmt::bind_result
type: function
doc:
<comment>Description:</comment>
  Binds variables to a prepared statement for result storage
  
  面向对象风格
  
  过程化风格
  
  Binds columns in the result set to variables.
  
  When <strong>mysqli_stmt_fetch()</strong> is called to fetch data, the MySQL client/server protocol places the data
  for the bound columns into the specified variables <strong>$var</strong>/<strong>$vars</strong>.
  
  A column can be bound or rebound at any time, even after a result set has been partially
  retrieved. The new binding takes effect the next time  <strong>mysqli_stmt_fetch()</strong> is called.
  
  All columns must be bound after  <strong>mysqli_stmt_execute()</strong> and prior to calling <strong>mysqli_stmt_fetch()</strong>.
  
  Depending on column types bound variables can silently change to the corresponding PHP type.
  
  This function is useful for simple results. To retrieve iterable result set, or fetch each row as
  an array or object, use <strong>mysqli_stmt_get_result()</strong>.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。
  <info>mixed</info>        <strong>$var</strong>        The first variable to be bound.
  <info>mixed</info>        <strong>$vars</strong>       Further variables to be bound.

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

<comment>See Also:</comment>
   * <strong>mysqli_stmt_get_result()</strong>
   * <strong>mysqli_stmt_bind_param()</strong>
   * <strong>mysqli_stmt_execute()</strong>
   * <strong>mysqli_stmt_fetch()</strong>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_prepare()</strong>


id: mysqli_stmt::close
type: function
doc:
<comment>Description:</comment>
  Closes a prepared statement
  
  面向对象风格
  
  过程化风格
  
  Closes a prepared statement. <strong>mysqli_stmt_close()</strong> also deallocates the statement handle. If the
  current statement has pending or unread results, this function cancels them so that the next query
  can be executed.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。

<comment>Return:</comment>
  <info>true</info>  总是返回 <info>true</info>。

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


id: mysqli_stmt::data_seek
type: function
doc:
<comment>Description:</comment>
  Adjusts the result pointer to an arbitrary row in the buffered result
  
  面向对象风格
  
  过程化风格
  
  This function moves the result set pointer of the buffered result set to an arbitrary row
  specified by the <strong>$offset</strong> parameter.
  
  This function works only on the buffered internal result set. <strong>mysqli_stmt_store_result()</strong> must be
  called prior to <strong>mysqli_stmt_data_seek()</strong>.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。
  <info>int</info>          <strong>$offset</strong>     Must be between zero and the total number of rows minus one (0..
                           <strong>mysqli_stmt_num_rows()</strong> - 1).

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

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_store_result()</strong>
   * <strong>mysqli_stmt_num_rows()</strong>
   * <strong>mysqli_data_seek()</strong>


id: mysqli_stmt::execute
type: function
doc:
<comment>Description:</comment>
  Executes a prepared statement
  
  面向对象风格
  
  过程化风格
  
  Executes previously prepared statement. The statement must be successfully  prepared prior to
  execution, using either the <strong>mysqli_prepare()</strong> or <strong>mysqli_stmt_prepare()</strong> function, or by passing the
  second argument to mysqli_stmt::__construct.
  
  If the statement is <return>UPDATE</return>, <return>DELETE</return>, or <return>INSERT</return>, the total number of affected rows can be determined
  by using the <strong>mysqli_stmt_affected_rows()</strong> function. If the query yields a result set, it can be
  fetched using <strong>mysqli_stmt_get_result()</strong> function or by fetching it row by row directly from the
  statement using <strong>mysqli_stmt_fetch()</strong> function.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。
  <info>array|null</info>   <strong>$params</strong>     An optional list <info>array</info> with as many elements as there are bound
                           parameters in the SQL statement being executed. Each value is treated as
                           a <info>string</info>.

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

<comment>See Also:</comment>
   * <strong>mysqli_execute_query()</strong>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_bind_param()</strong>
   * <strong>mysqli_stmt_get_result()</strong>


id: mysqli_stmt::fetch
type: function
doc:
<comment>Description:</comment>
  Fetch results from a prepared statement into the bound variables
  
  面向对象风格
  
  过程化风格
  
  Fetch the result from a prepared statement into the variables bound by <strong>mysqli_stmt_bind_result()</strong>.
  
  Note that all columns must be bound by the application before calling <strong>mysqli_stmt_fetch()</strong>.
  
  Data are transferred unbuffered without calling <strong>mysqli_stmt_store_result()</strong> which can decrease
  performance (but reduces memory cost).

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。

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

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_errno()</strong>
   * <strong>mysqli_stmt_error()</strong>
   * <strong>mysqli_stmt_bind_result()</strong>


id: mysqli_stmt::free_result
type: function
doc:
<comment>Description:</comment>
  Frees stored result memory for the given statement handle
  
  面向对象风格
  
  过程化风格
  
  Frees the result memory associated with the statement, which was allocated by
  <strong>mysqli_stmt_store_result()</strong>.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。

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

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


id: mysqli_stmt::get_result
type: function
doc:
<comment>Description:</comment>
  Gets a result set from a prepared statement as a mysqli_result object
  
  面向对象风格
  
  过程化风格
  
  Retrieves a result set from a prepared statement as a <class>mysqli_result</class> object. The data will be
  fetched from the MySQL server to PHP. This method should be called only for queries which produce
  a result set.
  
  仅可用于 mysqlnd。
  
  This function cannot be used together with <strong>mysqli_stmt_store_result()</strong>. Both of these functions
  retrieve the full result set from the MySQL server.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。

<comment>Return:</comment>
  <info>mysqli_result|false</info>  Returns <info>false</info> on failure. For successful queries which produce a result set,
                       such as <return>SELECT, SHOW, DESCRIBE</return> or <return>EXPLAIN</return>, <strong>mysqli_stmt_get_result()</strong> will
                       return a <class>mysqli_result</class> object. For other successful queries,
                       <strong>mysqli_stmt_get_result()</strong> will return <info>false</info>. The <strong>mysqli_stmt_errno()</strong> function
                       can be used to distinguish between the two reasons for <info>false</info>; due to a bug,
                       prior to PHP 7.4.13, <strong>mysqli_errno()</strong> had to be used for this purpose.

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_result_metadata()</strong>
   * <strong>mysqli_stmt_fetch()</strong>
   * <strong>mysqli_fetch_array()</strong>
   * <strong>mysqli_stmt_store_result()</strong>


id: mysqli_stmt::more_results
type: function
doc:
<comment>Description:</comment>
  Check if there are more query results from a multiple query
  
  面向对象风格
  
  过程化风格:
  
  Checks if there are more query results from a multiple query.
  
  仅可用于 mysqlnd。

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if more results exist, otherwise <info>false</info>.

<comment>See Also:</comment>
   * mysqli_stmt::next_result
   * mysqli::multi_query


id: mysqli_stmt::next_result
type: function
doc:
<comment>Description:</comment>
  Reads the next result from a multiple query
  
  面向对象风格
  
  过程化风格:
  
  Reads the next result from a multiple query.
  
  Prior to PHP 8.1.0, available only with mysqlnd.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。

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

<comment>See Also:</comment>
   * mysqli_stmt::more_results
   * mysqli::multi_query


id: mysqli_stmt::num_rows
type: function
doc:
<comment>Description:</comment>
  Returns the number of rows fetched from the server
  
  面向对象风格
  
  过程化风格
  
  Returns the number of rows buffered in the statement. This function will only work after
  <strong>mysqli_stmt_store_result()</strong> is called to buffer the entire result set in the statement handle.
  
  This function returns <return>0</return> unless all rows have been fetched from the server.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。

<comment>Return:</comment>
  <info>int|string</info>  An <info>int</info> representing the number of buffered rows. Returns <return>0</return> in unbuffered mode unless
              all rows have been fetched from the server.
              
              If the number of rows is greater than <info>PHP_INT_MAX</info>,
              the number will be returned as a <info>string</info>.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_store_result()</strong>
   * <strong>mysqli_stmt_affected_rows()</strong>
   * <strong>mysqli_prepare()</strong>


id: mysqli_stmt::prepare
type: function
doc:
<comment>Description:</comment>
  Prepares an SQL statement for execution
  
  面向对象风格
  
  过程化风格
  
  Prepares a statement for execution. The query must consist of a single SQL statement.
  
  The statement template can contain zero or more question mark (<return>?</return>) parameter markers⁠—also called
  placeholders. The parameter markers must be bound to application variables using
  <strong>mysqli_stmt_bind_param()</strong> before executing the statement.
  
  In the case where a statement is passed to <strong>mysqli_stmt_prepare()</strong> that is longer than
  <return>max_allowed_packet</return> of the server, the returned error codes are different depending on whether you
  are using MySQL Native Driver (<return>mysqlnd</return>) or MySQL Client Library (<return>libmysqlclient</return>). The behavior is
  as follows:
  
  <return>mysqlnd</return> on Linux returns an error code of 1153. The error message means got a packet bigger than
  <return>max_allowed_packet</return> bytes.
  
  <return>mysqlnd</return> on Windows returns an error code 2006. This error message means server has gone away.
  
  <return>libmysqlclient</return> on all platforms returns an error code 2006. This error message means server has
  gone away.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。
  <info>string</info>       <strong>$query</strong>      The query, as a string. It must consist of a single SQL statement.
                           
                           The SQL statement may contain zero or more parameter markers represented
                           by question mark (<return>?</return>) characters at the appropriate positions.
                           
                           The markers are legal only in certain places in SQL statements. For
                           example, they are permitted in the <return>VALUES()</return> list of an <return>INSERT</return> statement
                           (to specify column values for a row), or in a comparison with a column in
                           a <return>WHERE</return> clause to specify a comparison value. However, they are not
                           permitted for identifiers (such as table or column names).

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

<comment>See Also:</comment>
   * <strong>mysqli_stmt_init()</strong>
   * <strong>mysqli_stmt_execute()</strong>
   * <strong>mysqli_stmt_fetch()</strong>
   * <strong>mysqli_stmt_bind_param()</strong>
   * <strong>mysqli_stmt_bind_result()</strong>
   * <strong>mysqli_stmt_get_result()</strong>
   * <strong>mysqli_stmt_close()</strong>


