# php_manual

id: MongoDB\Driver\Manager::addSubscriber
type: function
doc:
<comment>Description:</comment>
  Registers a monitoring event subscriber with this Manager
  
  Registers a monitoring event subscriber with this Manager. The subscriber will be notified of all
  events for this Manager.
  
  If <strong>$subscriber</strong> is already registered with this Manager, this function is a no-op. If <strong>$subscriber</strong>
  is also registered globally, it will still only be notified once of each event for this Manager.

<comment>Param:</comment>
  <info>MongoDB\Driver\Monitoring\Subscriber</info>  <strong>$subscriber</strong>  A monitoring event subscriber to register with
                                                     this Manager.

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

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Manager::removeSubscriber()</strong>
   * MongoDB\Driver\Monitoring\Subscriber
   * MongoDB\Driver\Monitoring\CommandSubscriber
   * <strong>MongoDB\Driver\Monitoring\addSubscriber()</strong>
   * 


id: MongoDB\Driver\Manager::createClientEncryption
type: function
doc:
<comment>Description:</comment>
  Create a new ClientEncryption object
  
  Constructs a new <class>MongoDB\Driver\ClientEncryption</class> object with the specified options.

<comment>Param:</comment>
  <info>array</info>  <strong>$options</strong>  optionsOptionTypeDescriptionkeyVaultClient<class>MongoDB\Driver\Manager</class>The Manager used
                   to route data key queries to a separate MongoDB cluster. By default, the current
                   Manager and cluster is used.keyVaultNamespace<info>string</info>A fully qualified namespace
                   (e.g. <return>"databaseName.collectionName"</return>) denoting the collection that contains all
                   data keys used for encryption and decryption. This option is
                   required.kmsProviders<info>array</info> A document containing the configuration for one or
                   more KMS providers, which are used to encrypt data keys. Supported providers
                   include <return>"aws"</return>, <return>"azure"</return>, <return>"gcp"</return>, <return>"kmip"</return>, and <return>"local"</return> and at least one must be
                   specified.  If an empty document is specified for <return>"aws"</return>, <return>"azure"</return>, or <return>"gcp"</return>, the
                   driver will attempt to configure the provider using Automatic Credentials.  The
                   format for <return>"aws"</return> is as follows: , secretAccessKey: , sessionToken:
                   }
                   ]]> The format for <return>"azure"</return> is as follows: , clientId: , clientSecret: ,
                   identityPlatformEndpoint:  // Defaults to "login.microsoftonline.com"
                   }
                   ]]> The format for <return>"gcp"</return> is as follows: , privateKey: |, endpoint:  // Defaults
                   to "oauth2.googleapis.com"
                   }
                   ]]> The format for <return>"kmip"</return> is as follows: 
                   }
                   ]]> The format for <return>"local"</return> is as follows: |
                   }
                   ]]>tlsOptions<info>array</info> A document containing the TLS configuration for one or more
                   KMS providers. Supported providers include <return>"aws"</return>, <return>"azure"</return>, <return>"gcp"</return>, and <return>"kmip"</return>. All
                   providers support the following options: : { tlsCaFile: , tlsCertificateKeyFile:
                   , tlsCertificateKeyFilePassword: , tlsDisableOCSPEndpointCheck:
                   }
                   ]]>
                   
                   A document containing the configuration for one or more KMS providers, which are
                   used to encrypt data keys. Supported providers include <return>"aws"</return>, <return>"azure"</return>, <return>"gcp"</return>,
                   <return>"kmip"</return>, and <return>"local"</return> and at least one must be specified.
                   
                   If an empty document is specified for <return>"aws"</return>, <return>"azure"</return>, or <return>"gcp"</return>, the driver will
                   attempt to configure the provider using Automatic Credentials.
                   
                   The format for <return>"aws"</return> is as follows:
                   
                   The format for <return>"azure"</return> is as follows:
                   
                   The format for <return>"gcp"</return> is as follows:
                   
                   The format for <return>"kmip"</return> is as follows:
                   
                   The format for <return>"local"</return> is as follows:
                   
                   A document containing the TLS configuration for one or more KMS providers.
                   Supported providers include <return>"aws"</return>, <return>"azure"</return>, <return>"gcp"</return>, and <return>"kmip"</return>. All providers
                   support the following options:

<comment>Return:</comment>
  <info>MongoDB\Driver\ClientEncryption</info>  Returns a new <class>MongoDB\Driver\ClientEncryption</class> instance.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\ClientEncryption::__construct()</strong>
   * Explicit (Manual) Client-Side Field Level Encryption in the MongoDB manual


id: MongoDB\Driver\Manager::executeBulkWrite
type: function
doc:
<comment>Description:</comment>
  Execute one or more write operations
  
  Executes one or more write operations on the primary server.
  
  A <class>MongoDB\Driver\BulkWrite</class> can be constructed with one or more write operations of varying types
  (e.g. updates, deletes, and inserts). The driver will attempt to send operations of the same type
  to the server in as few requests as possible to optimize round trips.

<comment>Param:</comment>
  <info>string</info>                                  <strong>$namespace</strong>  A fully qualified namespace (e.g.
                                                      <return>"databaseName.collectionName"</return>).
  <info>MongoDB\Driver\BulkWrite</info>                <strong>$bulk</strong>       The write(s) to execute.
  <info>array|MongoDB\Driver\WriteConcern|null</info>  <strong>$options</strong>    
                                                      optionsOptionTypeDescriptionsession<class>MongoDB\Driver\Session</class>
                                                      A session to associate with the operation.
                                                      writeConcern<class>MongoDB\Driver\WriteConcern</class> A
                                                      write concern to apply to the operation.
                                                      
                                                      A session to associate with the operation.
                                                      
                                                      A write concern to apply to the operation.

<comment>Return:</comment>
  <info>MongoDB\Driver\WriteResult</info>  Returns <class>MongoDB\Driver\WriteResult</class> on success.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\BulkWrite</class>
   * <class>MongoDB\Driver\WriteResult</class>
   * <class>MongoDB\Driver\WriteConcern</class>
   * <strong>MongoDB\Driver\Server::executeBulkWrite()</strong>


id: MongoDB\Driver\Manager::executeCommand
type: function
doc:
<comment>Description:</comment>
  Execute a database command
  
  Selects a server according to the <return>"readPreference"</return> option and executes the command on that server.
  By default, the primary server will be selected.
  
  This method applies no special logic to the command. Although this method accepts <return>"readConcern"</return>
  and <return>"writeConcern"</return> options, which will be incorporated into the command document, those options
  will not default to corresponding values from the MongoDB Connection URI nor will the MongoDB
  server version be taken into account. Users are therefore encouraged to use specific read and/or
  write command methods if possible.

<comment>Param:</comment>
  <info>string</info>                                    <strong>$db</strong>       The name of the database on which to execute
                                                      the command.
  <info>MongoDB\Driver\Command</info>                    <strong>$command</strong>  The command to execute.
  <info>array|MongoDB\Driver\ReadPreference|null</info>  <strong>$options</strong>  
                                                      optionsOptionTypeDescriptionreadConcern<class>MongoDB\Driver\ReadConcern</class>
                                                      A read concern to apply to the operation.
                                                      This option is available in MongoDB 3.2+ and
                                                      will result in an exception at execution time
                                                      if specified for an older server version.
                                                      readPreference<class>MongoDB\Driver\ReadPreference</class> A
                                                      read preference to use for selecting a server
                                                      for the operation.
                                                      session<class>MongoDB\Driver\Session</class> A session to
                                                      associate with the operation.
                                                      writeConcern<class>MongoDB\Driver\WriteConcern</class> A
                                                      write concern to apply to the operation.
                                                      
                                                      A read concern to apply to the operation.
                                                      
                                                      This option is available in MongoDB 3.2+ and
                                                      will result in an exception at execution time
                                                      if specified for an older server version.
                                                      
                                                      A read preference to use for selecting a
                                                      server for the operation.
                                                      
                                                      A session to associate with the operation.
                                                      
                                                      A write concern to apply to the operation.
                                                      
                                                      If you are using a <return>"session"</return> which has a
                                                      transaction in progress, you cannot specify a
                                                      <return>"readConcern"</return> or <return>"writeConcern"</return> option. This
                                                      will result in an
                                                      <class>MongoDB\Driver\Exception\InvalidArgumentException</class>
                                                      being thrown. Instead, you should set these
                                                      two options when you create the transaction
                                                      with MongoDB\Driver\Session::startTransaction.

<comment>Return:</comment>
  <info>MongoDB\Driver\Cursor</info>  Returns <class>MongoDB\Driver\Cursor</class> on success.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Command</class>
   * <class>MongoDB\Driver\Cursor</class>
   * <strong>MongoDB\Driver\Manager::executeReadCommand()</strong>
   * <strong>MongoDB\Driver\Manager::executeReadWriteCommand()</strong>
   * <strong>MongoDB\Driver\Manager::executeWriteCommand()</strong>
   * <strong>MongoDB\Driver\Server::executeCommand()</strong>


id: MongoDB\Driver\Manager::executeQuery
type: function
doc:
<comment>Description:</comment>
  Execute a database query
  
  Selects a server according to the <return>"readPreference"</return> option and executes the query on that server.
  By default, the read preference from the MongoDB Connection URI will be used.

<comment>Param:</comment>
  <info>string</info>                                    <strong>$namespace</strong>  A fully qualified namespace (e.g.
                                                        <return>"databaseName.collectionName"</return>).
  <info>MongoDB\Driver\Query</info>                      <strong>$query</strong>      The query to execute.
  <info>array|MongoDB\Driver\ReadPreference|null</info>  <strong>$options</strong>    
                                                        optionsOptionTypeDescriptionreadPreference<class>MongoDB\Driver\ReadPreference</class>
                                                        A read preference to use for selecting a
                                                        server for the operation.
                                                        session<class>MongoDB\Driver\Session</class> A session to
                                                        associate with the operation.
                                                        
                                                        A read preference to use for selecting a
                                                        server for the operation.
                                                        
                                                        A session to associate with the operation.

<comment>Return:</comment>
  <info>MongoDB\Driver\Cursor</info>  Returns <class>MongoDB\Driver\Cursor</class> on success.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Cursor</class>
   * <class>MongoDB\Driver\Query</class>
   * <class>MongoDB\Driver\ReadPreference</class>
   * <strong>MongoDB\Driver\Server::executeQuery()</strong>


id: MongoDB\Driver\Manager::executeReadCommand
type: function
doc:
<comment>Description:</comment>
  Execute a database command that reads
  
  Selects a server according to the <return>"readPreference"</return> option and executes the command on that server.
  By default, the read preference from the MongoDB Connection URI will be used.
  
  This method will apply logic that is specific to commands that read (e.g. count) and take the
  MongoDB server version into account. The <return>"readConcern"</return> option will default to the corresponding
  value from the MongoDB Connection URI.

<comment>Param:</comment>
  <info>string</info>                  <strong>$db</strong>       The name of the database on which to execute the command.
  <info>MongoDB\Driver\Command</info>  <strong>$command</strong>  The command to execute.
  <info>array|null</info>              <strong>$options</strong>  
                                    optionsOptionTypeDescriptionreadConcern<class>MongoDB\Driver\ReadConcern</class>
                                    A read concern to apply to the operation.  This option is
                                    available in MongoDB 3.2+ and will result in an exception at
                                    execution time if specified for an older server version.
                                    readPreference<class>MongoDB\Driver\ReadPreference</class> A read preference to
                                    use for selecting a server for the operation.
                                    session<class>MongoDB\Driver\Session</class> A session to associate with the
                                    operation.
                                    
                                    A read concern to apply to the operation.
                                    
                                    This option is available in MongoDB 3.2+ and will result in an
                                    exception at execution time if specified for an older server
                                    version.
                                    
                                    A read preference to use for selecting a server for the
                                    operation.
                                    
                                    A session to associate with the operation.
                                    
                                    If you are using a <return>"session"</return> which has a transaction in
                                    progress, you cannot specify a <return>"readConcern"</return> or <return>"writeConcern"</return>
                                    option. This will result in an
                                    <class>MongoDB\Driver\Exception\InvalidArgumentException</class> being thrown.
                                    Instead, you should set these two options when you create the
                                    transaction with MongoDB\Driver\Session::startTransaction.

<comment>Return:</comment>
  <info>MongoDB\Driver\Cursor</info>  Returns <class>MongoDB\Driver\Cursor</class> on success.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Command</class>
   * <class>MongoDB\Driver\Cursor</class>
   * <strong>MongoDB\Driver\Manager::executeCommand()</strong>
   * <strong>MongoDB\Driver\Manager::executeReadWriteCommand()</strong>
   * <strong>MongoDB\Driver\Manager::executeWriteCommand()</strong>
   * <strong>MongoDB\Driver\Server::executeReadCommand()</strong>


id: MongoDB\Driver\Manager::executeReadWriteCommand
type: function
doc:
<comment>Description:</comment>
  Execute a database command that reads and writes
  
  Executes the command on the primary server.
  
  This method will apply logic that is specific to commands that read and write (e.g. aggregate) and
  take the MongoDB server version into account. The <return>"readConcern"</return> and <return>"writeConcern"</return> options will
  default to the corresponding values from the MongoDB Connection URI.

<comment>Param:</comment>
  <info>string</info>                  <strong>$db</strong>       The name of the database on which to execute the command.
  <info>MongoDB\Driver\Command</info>  <strong>$command</strong>  The command to execute.
  <info>array|null</info>              <strong>$options</strong>  
                                    optionsOptionTypeDescriptionreadConcern<class>MongoDB\Driver\ReadConcern</class>
                                    A read concern to apply to the operation.  This option is
                                    available in MongoDB 3.2+ and will result in an exception at
                                    execution time if specified for an older server version.
                                    session<class>MongoDB\Driver\Session</class> A session to associate with the
                                    operation. writeConcern<class>MongoDB\Driver\WriteConcern</class> A write
                                    concern to apply to the operation.
                                    
                                    A read concern to apply to the operation.
                                    
                                    This option is available in MongoDB 3.2+ and will result in an
                                    exception at execution time if specified for an older server
                                    version.
                                    
                                    A session to associate with the operation.
                                    
                                    A write concern to apply to the operation.
                                    
                                    If you are using a <return>"session"</return> which has a transaction in
                                    progress, you cannot specify a <return>"readConcern"</return> or <return>"writeConcern"</return>
                                    option. This will result in an
                                    <class>MongoDB\Driver\Exception\InvalidArgumentException</class> being thrown.
                                    Instead, you should set these two options when you create the
                                    transaction with MongoDB\Driver\Session::startTransaction.

<comment>Return:</comment>
  <info>MongoDB\Driver\Cursor</info>  Returns <class>MongoDB\Driver\Cursor</class> on success.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Command</class>
   * <class>MongoDB\Driver\Cursor</class>
   * <strong>MongoDB\Driver\Manager::executeCommand()</strong>
   * <strong>MongoDB\Driver\Manager::executeReadCommand()</strong>
   * <strong>MongoDB\Driver\Manager::executeWriteCommand()</strong>
   * <strong>MongoDB\Driver\Server::executeReadWriteCommand()</strong>


id: MongoDB\Driver\Manager::executeWriteCommand
type: function
doc:
<comment>Description:</comment>
  Execute a database command that writes
  
  Executes the command on the primary server.
  
  This method will apply logic that is specific to commands that write (e.g. drop) and take the
  MongoDB server version into account. The <return>"writeConcern"</return> option will default to the corresponding
  value from the MongoDB Connection URI.
  
  This method is not intended to be used to execute insert, update, or delete commands. Users are
  encouraged to use <strong>MongoDB\Driver\Manager::executeBulkWrite()</strong> for those commands.

<comment>Param:</comment>
  <info>string</info>                  <strong>$db</strong>       The name of the database on which to execute the command.
  <info>MongoDB\Driver\Command</info>  <strong>$command</strong>  The command to execute.
  <info>array|null</info>              <strong>$options</strong>  optionsOptionTypeDescriptionsession<class>MongoDB\Driver\Session</class> A
                                    session to associate with the operation.
                                    writeConcern<class>MongoDB\Driver\WriteConcern</class> A write concern to apply
                                    to the operation.
                                    
                                    A session to associate with the operation.
                                    
                                    A write concern to apply to the operation.
                                    
                                    If you are using a <return>"session"</return> which has a transaction in
                                    progress, you cannot specify a <return>"readConcern"</return> or <return>"writeConcern"</return>
                                    option. This will result in an
                                    <class>MongoDB\Driver\Exception\InvalidArgumentException</class> being thrown.
                                    Instead, you should set these two options when you create the
                                    transaction with MongoDB\Driver\Session::startTransaction.

<comment>Return:</comment>
  <info>MongoDB\Driver\Cursor</info>  Returns <class>MongoDB\Driver\Cursor</class> on success.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Command</class>
   * <class>MongoDB\Driver\Cursor</class>
   * <strong>MongoDB\Driver\Manager::executeCommand()</strong>
   * <strong>MongoDB\Driver\Manager::executeReadCommand()</strong>
   * <strong>MongoDB\Driver\Manager::executeReadWriteCommand()</strong>
   * <strong>MongoDB\Driver\Server::executeWriteCommand()</strong>


id: MongoDB\Driver\Manager::getEncryptedFieldsMap
type: function
doc:
<comment>Description:</comment>
  Return the encryptedFieldsMap auto encryption option for the Manager
  
  Returns the <return>encryptedFieldsMap</return> auto encryption option for the Manager, if specified.

<comment>Return:</comment>
  <info>array|object|null</info>  The <return>encryptedFieldsMap</return> auto encryption option for the Manager, or <info>null</info> if it
                     was not specified.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Manager::__construct()</strong>


id: MongoDB\Driver\Manager::getReadConcern
type: function
doc:
<comment>Description:</comment>
  Return the ReadConcern for the Manager
  
  Returns the <class>MongoDB\Driver\ReadConcern</class> for the Manager, which is derived from its URI options.
  This is the default read concern for queries and commands executed on the Manager.

<comment>Return:</comment>
  <info>MongoDB\Driver\ReadConcern</info>  The <class>MongoDB\Driver\ReadConcern</class> for the Manager.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\ReadConcern</class>
   * <strong>MongoDB\Driver\Manager::__construct()</strong>


id: MongoDB\Driver\Manager::getReadPreference
type: function
doc:
<comment>Description:</comment>
  Return the ReadPreference for the Manager
  
  Returns the <class>MongoDB\Driver\ReadPreference</class> for the Manager, which is derived from its URI options.
  This is the default read preference for queries and commands executed on the Manager.

<comment>Return:</comment>
  <info>MongoDB\Driver\ReadPreference</info>  The <class>MongoDB\Driver\ReadPreference</class> for the Manager.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\ReadPreference</class>
   * <strong>MongoDB\Driver\Manager::__construct()</strong>


id: MongoDB\Driver\Manager::getServers
type: function
doc:
<comment>Description:</comment>
  Return the servers to which this manager is connected
  
  Returns an <info>array</info> of <class>MongoDB\Driver\Server</class> instances to which this manager is connected.
  
  Since the driver connects to the database lazily, this method may return an empty <info>array</info> if called
  before executing an operation on the <class>MongoDB\Driver\Manager</class>.

<comment>Return:</comment>
  <info>array</info>  Returns an <info>array</info> of <class>MongoDB\Driver\Server</class> instances to which this manager is connected.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Server</class>
   * <strong>MongoDB\Driver\Manager::selectServer()</strong>


id: MongoDB\Driver\Manager::getWriteConcern
type: function
doc:
<comment>Description:</comment>
  Return the WriteConcern for the Manager
  
  Returns the <class>MongoDB\Driver\WriteConcern</class> for the Manager, which is derived from its URI options.
  This is the default write concern for writes and commands executed on the Manager.

<comment>Return:</comment>
  <info>MongoDB\Driver\WriteConcern</info>  The <class>MongoDB\Driver\WriteConcern</class> for the Manager.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\WriteConcern</class>
   * <strong>MongoDB\Driver\Manager::__construct()</strong>


id: MongoDB\Driver\Manager::removeSubscriber
type: function
doc:
<comment>Description:</comment>
  Unregisters a monitoring event subscriber with this Manager
  
  Unregisters a monitoring event subscriber with this Manager.
  
  If <strong>$subscriber</strong> is not already registered with this Manager, this function is a no-op.

<comment>Param:</comment>
  <info>MongoDB\Driver\Monitoring\Subscriber</info>  <strong>$subscriber</strong>  A monitoring event subscriber to unregister
                                                     with this Manager.

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

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Manager::addSubscriber()</strong>
   * MongoDB\Driver\Monitoring\Subscriber
   * MongoDB\Driver\Monitoring\CommandSubscriber
   * <strong>MongoDB\Driver\Monitoring\removeSubscriber()</strong>
   * 


id: MongoDB\Driver\Manager::selectServer
type: function
doc:
<comment>Description:</comment>
  Select a server matching a read preference
  
  Selects a <class>MongoDB\Driver\Server</class> matching <strong>$readPreference</strong>. If <strong>$readPreference</strong> is <info>null</info> or omitted,
  the primary server will be selected by default. This may be used to preselect a server in order to
  perform version checking before executing an operation.
  
  Unlike <strong>MongoDB\Driver\Manager::getServers()</strong>, this method will initialize database connections and
  perform server discovery if necessary. See the Server Selection Specification for additional
  information.

<comment>Param:</comment>
  <info>MongoDB\Driver\ReadPreference|null</info>  <strong>$readPreference</strong>  The read preference to use for selecting a
                                                       server. If <info>null</info> or omitted, the primary
                                                       server will be selected by default.

<comment>Return:</comment>
  <info>MongoDB\Driver\Server</info>  Returns a <class>MongoDB\Driver\Server</class> matching the read preference.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Server</class>
   * <strong>MongoDB\Driver\Manager::getServers()</strong>
   * Server Selection Specification


id: MongoDB\Driver\Manager::startSession
type: function
doc:
<comment>Description:</comment>
  Start a new client session for use with this client
  
  Creates a <class>MongoDB\Driver\Session</class> for the given options. The session may then be specified when
  executing commands, queries, and write operations.
  
  A <class>MongoDB\Driver\Session</class> can only be used with the <class>MongoDB\Driver\Manager</class> from which it was
  created.

<comment>Param:</comment>
  <info>array|null</info>  <strong>$options</strong>  optionsOptionTypeDescriptionDefaultcausalConsistency<info>bool</info> Configure causal
                        consistency in a session. If <info>true</info>, each operation in the session will be
                        causally ordered after the previous read or write operation. Set to <info>false</info> to
                        disable causal consistency.  See Casual Consistency in the MongoDB manual
                        for more information. <info>true</info>defaultTransactionOptions<info>array</info> Default options to
                        apply to newly created transactions. These options are used unless they are
                        overridden when a transaction is started with different value for each
                        option. optionsOptionTypeDescriptionmaxCommitTimeMSinteger The maximum
                        amount of time in milliseconds to allow a single <return>commitTransaction</return> command
                        to run.  If specified, <return>maxCommitTimeMS</return> must be a signed 32-bit integer
                        greater than or equal to zero. readConcern<class>MongoDB\Driver\ReadConcern</class> A read
                        concern to apply to the operation.  This option is available in MongoDB 3.2+
                        and will result in an exception at execution time if specified for an older
                        server version. readPreference<class>MongoDB\Driver\ReadPreference</class> A read
                        preference to use for selecting a server for the operation.
                        writeConcern<class>MongoDB\Driver\WriteConcern</class> A write concern to apply to the
                        operation.  This option is available in MongoDB 4.0+. <return>[]</return>snapshot<info>bool</info>
                        Configure snapshot reads in a session. If <info>true</info>, a timestamp will be obtained
                        from the first supported read operation in the session (i.e. <return>find</return>,
                        <return>aggregate</return>, or unsharded <return>distinct</return>). Subsequent read operations within the
                        session will then utilize a <return>"snapshot"</return> read concern level to read
                        majority-committed data from that timestamp. Set to <info>false</info> to disable
                        snapshot reads.  Snapshot reads require MongoDB 5.0+ and cannot be used with
                        causal consistency, transactions, or write operations. If <return>"snapshot"</return> is
                        <info>true</info>, <return>"causalConsistency"</return> will default to <info>false</info>.  See Read Concern
                        "snapshot" in the MongoDB manual for more information. <info>false</info>
                        
                        Configure causal consistency in a session. If <info>true</info>, each operation in the
                        session will be causally ordered after the previous read or write operation.
                        Set to <info>false</info> to disable causal consistency.
                        
                        See Casual Consistency in the MongoDB manual for more information.
                        
                        Default options to apply to newly created transactions. These options are
                        used unless they are overridden when a transaction is started with different
                        value for each option.
                        
                        optionsOptionTypeDescriptionmaxCommitTimeMSinteger The maximum amount of
                        time in milliseconds to allow a single <return>commitTransaction</return> command to run.  If
                        specified, <return>maxCommitTimeMS</return> must be a signed 32-bit integer greater than or
                        equal to zero. readConcern<class>MongoDB\Driver\ReadConcern</class> A read concern to apply
                        to the operation.  This option is available in MongoDB 3.2+ and will result
                        in an exception at execution time if specified for an older server version.
                        readPreference<class>MongoDB\Driver\ReadPreference</class> A read preference to use for
                        selecting a server for the operation.
                        writeConcern<class>MongoDB\Driver\WriteConcern</class> A write concern to apply to the
                        operation.
                        
                        The maximum amount of time in milliseconds to allow a single
                        <return>commitTransaction</return> command to run.
                        
                        If specified, <return>maxCommitTimeMS</return> must be a signed 32-bit integer greater than
                        or equal to zero.
                        
                        A read concern to apply to the operation.
                        
                        This option is available in MongoDB 3.2+ and will result in an exception at
                        execution time if specified for an older server version.
                        
                        A read preference to use for selecting a server for the operation.
                        
                        A write concern to apply to the operation.
                        
                        This option is available in MongoDB 4.0+.
                        
                        Configure snapshot reads in a session. If <info>true</info>, a timestamp will be obtained
                        from the first supported read operation in the session (i.e. <return>find</return>,
                        <return>aggregate</return>, or unsharded <return>distinct</return>). Subsequent read operations within the
                        session will then utilize a <return>"snapshot"</return> read concern level to read
                        majority-committed data from that timestamp. Set to <info>false</info> to disable
                        snapshot reads.
                        
                        Snapshot reads require MongoDB 5.0+ and cannot be used with causal
                        consistency, transactions, or write operations. If <return>"snapshot"</return> is <info>true</info>,
                        <return>"causalConsistency"</return> will default to <info>false</info>.
                        
                        See Read Concern "snapshot" in the MongoDB manual for more information.

<comment>Return:</comment>
  <info>MongoDB\Driver\Session</info>  Returns a <class>MongoDB\Driver\Session</class>.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Session</class>
   * Casual Consistency in the MongoDB manual


id: MongoDB\Driver\Monitoring\CommandFailedEvent
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\Monitoring\CommandFailedEvent</class> class encapsulates information about a failed
  command.


id: MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName
type: function
doc:
<comment>Description:</comment>
  Returns the command name
  
  Returns the command name (e.g. <return>"find"</return>, <return>"aggregate"</return>).

<comment>Return:</comment>
  <info>string</info>  Returns the command name.

<comment>See Also:</comment>
   * 


id: MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros
type: function
doc:
<comment>Description:</comment>
  Returns the command's duration in microseconds
  
  The command's duration is a calculated value that includes the time to send the message and
  receive the reply from the server.

<comment>Return:</comment>
  <info>int</info>  Returns the command's duration in microseconds.

<comment>See Also:</comment>
   * 


id: MongoDB\Driver\Monitoring\CommandFailedEvent::getError
type: function
doc:
<comment>Description:</comment>
  Returns the Exception associated with the failed command

<comment>Return:</comment>
  <info>Exception</info>  Returns the <class>Exception</class> associated with the failed command.

<comment>See Also:</comment>
   * 


id: MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId
type: function
doc:
<comment>Description:</comment>
  Returns the command's operation ID
  
  The operation ID is generated by the driver and may be used to link events together such as bulk
  write operations, which may have been split across several commands at the protocol level.
  
  Since multiple commands may share the same operation ID, it is not reliable to use this value to
  associate event objects with each other. The request ID returned by
  MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId should be used instead.

<comment>Return:</comment>
  <info>string</info>  Returns the command's operation ID.

<comment>See Also:</comment>
   * MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId
   * MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId
   * 


id: MongoDB\Driver\Monitoring\CommandFailedEvent::getReply
type: function
doc:
<comment>Description:</comment>
  Returns the command reply document
  
  The reply document will be converted from BSON to PHP using the default deserialization rules
  (e.g. BSON documents will be converted to <info>stdClass</info>).

<comment>Return:</comment>
  <info>object</info>  Returns the command reply document as a <class>stdClass</class> object.

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


id: MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId
type: function
doc:
<comment>Description:</comment>
  Returns the command's request ID
  
  The request ID is generated by the driver and may be used to associate this
  <class>MongoDB\Driver\Monitoring\CommandFailedEvent</class> with a previous
  <class>MongoDB\Driver\Monitoring\CommandStartedEvent</class>.

<comment>Return:</comment>
  <info>string</info>  Returns the command's request ID.

<comment>See Also:</comment>
   * MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId
   * 


id: MongoDB\Driver\Monitoring\CommandFailedEvent::getServer
type: function
doc:
<comment>Description:</comment>
  Returns the Server on which the command was executed
  
  Returns the <class>MongoDB\Driver\Server</class> on which the command was executed.

<comment>Return:</comment>
  <info>MongoDB\Driver\Server</info>  Returns the <class>MongoDB\Driver\Server</class> on which the command was executed.

<comment>See Also:</comment>
   * MongoDB\Driver\Monitoring\CommandStartedEvent::getServer
   * 


id: MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId
type: function
doc:
<comment>Description:</comment>
  Returns the server connection ID for the command
  
  Returns the server connection ID for the command. The server connection ID is distinct from server
  (i.e. <strong>MongoDB\Driver\Monitoring\CommandFailedEvent::getServer()</strong>) and is returned in the
  "connectionId" field of a <return>hello</return> command response MongoDB 4.2+.

<comment>Return:</comment>
  <info>int|null</info>  Returns the server connection ID, or <info>null</info> if it is not available.


id: MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId
type: function
doc:
<comment>Description:</comment>
  Returns the load balancer service ID for the command
  
  When the driver is connected to a MongoDB cluster through a load balancer, the service ID
  corresponds to the <return>serviceId</return> field in the <return>hello</return> command response.

<comment>Return:</comment>
  <info>MongoDB\BSON\ObjectId|null</info>  Returns the load balancer service ID, or <info>null</info> if the driver is not
                              connected to a load balancer.


id: MongoDB\Driver\Monitoring\CommandStartedEvent
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\Monitoring\CommandStartedEvent</class> class encapsulates information about a started
  command.


id: MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand
type: function
doc:
<comment>Description:</comment>
  Returns the command document
  
  The reply document will be converted from BSON to PHP using the default deserialization rules
  (e.g. BSON documents will be converted to <info>stdClass</info>).

<comment>Return:</comment>
  <info>object</info>  Returns the command document as a <class>stdClass</class> object.

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


id: MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName
type: function
doc:
<comment>Description:</comment>
  Returns the database on which the command was executed

<comment>Return:</comment>
  <info>string</info>  Returns the database on which the command was executed.

<comment>See Also:</comment>
   * 


id: MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId
type: function
doc:
<comment>Description:</comment>
  Returns the command's operation ID
  
  The operation ID is generated by the driver and may be used to link events together such as bulk
  write operations, which may have been split across several commands at the protocol level.
  
  Since multiple commands may share the same operation ID, it is not reliable to use this value to
  associate event objects with each other. The request ID returned by
  MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId should be used instead.

<comment>Return:</comment>
  <info>string</info>  Returns the command's operation ID.

<comment>See Also:</comment>
   * MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId
   * MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId
   * MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId
   * 


id: MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId
type: function
doc:
<comment>Description:</comment>
  Returns the command's request ID
  
  The request ID is generated by the driver and may be used to associate this
  <class>MongoDB\Driver\Monitoring\CommandStartedEvent</class> with a later
  <class>MongoDB\Driver\Monitoring\CommandFailedEvent</class> or <class>MongoDB\Driver\Monitoring\CommandSucceededEvent</class>.

<comment>Return:</comment>
  <info>string</info>  Returns the command's request ID.

<comment>See Also:</comment>
   * MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId
   * MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId
   * 


id: MongoDB\Driver\Monitoring\CommandStartedEvent::getServer
type: function
doc:
<comment>Description:</comment>
  Returns the Server on which the command was executed
  
  Returns the <class>MongoDB\Driver\Server</class> on which the command was executed.

<comment>Return:</comment>
  <info>MongoDB\Driver\Server</info>  Returns the <class>MongoDB\Driver\Server</class> on which the command was executed.

<comment>See Also:</comment>
   * MongoDB\Driver\Monitoring\CommandFailedEvent::getServer
   * MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer
   * 


id: MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId
type: function
doc:
<comment>Description:</comment>
  Returns the server connection ID for the command
  
  Returns the server connection ID for the command. The server connection ID is distinct from server
  (i.e. <strong>MongoDB\Driver\Monitoring\CommandStartedEvent::getServer()</strong>) and is returned in the
  "connectionId" field of a <return>hello</return> command response MongoDB 4.2+.

<comment>Return:</comment>
  <info>int|null</info>  Returns the server connection ID, or <info>null</info> if it is not available.


id: MongoDB\Driver\Monitoring\CommandSubscriber
type: class
doc:
<comment>Description:</comment>
  Classes may implement this interface to register an event subscriber that is notified for each
  started, successful, and failed command event. See  for additional information.


id: MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed
type: function
doc:
<comment>Description:</comment>
  Notification method for a failed command
  
  If the subscriber has been registered, the driver will call this method when a command has failed.

<comment>Param:</comment>
  <info>MongoDB\Driver\Monitoring\CommandFailedEvent</info>  <strong>$event</strong>  An event object encapsulating information
                                                        about the failed command.

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

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Monitoring\CommandFailedEvent</class>
   * <strong>MongoDB\Driver\Monitoring\addSubscriber()</strong>
   * <strong>MongoDB\Driver\Manager::addSubscriber()</strong>
   * 


id: MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted
type: function
doc:
<comment>Description:</comment>
  Notification method for a started command
  
  If the subscriber has been registered, the driver will call this method when a command has
  started.

<comment>Param:</comment>
  <info>MongoDB\Driver\Monitoring\CommandStartedEvent</info>  <strong>$event</strong>  An event object encapsulating information
                                                         about the started command.

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

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Monitoring\CommandStartedEvent</class>
   * <strong>MongoDB\Driver\Monitoring\addSubscriber()</strong>
   * <strong>MongoDB\Driver\Manager::addSubscriber()</strong>
   * 


id: MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded
type: function
doc:
<comment>Description:</comment>
  Notification method for a successful command
  
  If the subscriber has been registered, the driver will call this method when a command has
  succeeded.

<comment>Param:</comment>
  <info>MongoDB\Driver\Monitoring\CommandSucceededEvent</info>  <strong>$event</strong>  An event object encapsulating information
                                                           about the successful command.

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

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Monitoring\CommandSucceededEvent</class>
   * <strong>MongoDB\Driver\Monitoring\addSubscriber()</strong>
   * <strong>MongoDB\Driver\Manager::addSubscriber()</strong>
   * 


id: MongoDB\Driver\Monitoring\CommandSucceededEvent
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\Monitoring\CommandSucceededEvent</class> class encapsulates information about a
  successful command.


id: MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId
type: function
doc:
<comment>Description:</comment>
  Returns the command's operation ID
  
  The operation ID is generated by the driver and may be used to link events together such as bulk
  write operations, which may have been split across several commands at the protocol level.
  
  Since multiple commands may share the same operation ID, it is not reliable to use this value to
  associate event objects with each other. The request ID returned by
  MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId should be used instead.

<comment>Return:</comment>
  <info>string</info>  Returns the command's operation ID.

<comment>See Also:</comment>
   * MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId
   * MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId
   * 


id: MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId
type: function
doc:
<comment>Description:</comment>
  Returns the command's request ID
  
  The request ID is generated by the driver and may be used to associate this
  <class>MongoDB\Driver\Monitoring\CommandSucceededEvent</class> with a previous
  <class>MongoDB\Driver\Monitoring\CommandStartedEvent</class>.

<comment>Return:</comment>
  <info>string</info>  Returns the command's request ID.

<comment>See Also:</comment>
   * MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId
   * 


id: MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer
type: function
doc:
<comment>Description:</comment>
  Returns the Server on which the command was executed
  
  Returns the <class>MongoDB\Driver\Server</class> on which the command was executed.

<comment>Return:</comment>
  <info>MongoDB\Driver\Server</info>  Returns the <class>MongoDB\Driver\Server</class> on which the command was executed.

<comment>See Also:</comment>
   * MongoDB\Driver\Monitoring\CommandStartedEvent::getServer
   * MongoDB\Driver\Cursor::getServer
   * MongoDB\Driver\WriteResult::getServer
   * 


id: MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId
type: function
doc:
<comment>Description:</comment>
  Returns the server connection ID for the command
  
  Returns the server connection ID for the command. The server connection ID is distinct from server
  (i.e. <strong>MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer()</strong>) and is returned in the
  "connectionId" field of a <return>hello</return> command response MongoDB 4.2+.

<comment>Return:</comment>
  <info>int|null</info>  Returns the server connection ID, or <info>null</info> if it is not available.


id: MongoDB\Driver\Monitoring\LogSubscriber
type: class
doc:
<comment>Description:</comment>
  Classes implementing this interface may be registered as a subscriber and receive log messages
  from the driver. This is similar to stream-based debug logging (i.e. mongodb.debug) except that
  trace-level log messages are not received.
  
  As with stream-based logging, it is only possible to register a logger globally using
  <strong>MongoDB\Driver\Monitoring\addSubscriber()</strong>. The driver is not able to distinguish log messages for
  individual <class>MongoDB\Driver\Manager</class> objects.


id: MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_CRITICAL
type: constant
doc:
<comment>Description:</comment>
  Critical log level. An error condition with slightly less severity. This constant exists for
  consistency with libmongoc; however, the driver is unlikely to use it in practice.


id: MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_DEBUG
type: constant
doc:
<comment>Description:</comment>
  Debug log level. Detailed information that may be helpful when debugging an application.


id: MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_ERROR
type: constant
doc:
<comment>Description:</comment>
  Error log level. An error condition that the driver is unable to report through its API. This is
  the most severe log level in the driver.


id: MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_INFO
type: constant
doc:
<comment>Description:</comment>
  Info log level. High-level information about normal driver behavior.


id: MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_MESSAGE
type: constant
doc:
<comment>Description:</comment>
  Message or notice log level. Indicates an event that is unusual but not problematic.


id: MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_WARNING
type: constant
doc:
<comment>Description:</comment>
  Warning log level. Indicates a situation where undesirable application behavior may occur.


id: MongoDB\Driver\Monitoring\LogSubscriber::log
type: function
doc:
<comment>Description:</comment>
  Notification method for a log message
  
  If the subscriber has been registered, the driver will call this method for each logged message.

<comment>Param:</comment>
  <info>int</info>     <strong>$level</strong>    The severity level. This will be one of the interface constants.
  <info>string</info>  <strong>$domain</strong>   The name of the driver component that emitted the log message.
  <info>string</info>  <strong>$message</strong>  The log message.

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

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Monitoring\addSubscriber()</strong>


id: MongoDB\Driver\Monitoring\SDAMSubscriber
type: class
doc:
<comment>Description:</comment>
  Classes may implement this interface to register an event subscriber that is notified for various
  SDAM events. See the Server Discovery and Monitoring and SDAM Monitoring specifications for
  additional information.


id: MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged
type: function
doc:
<comment>Description:</comment>
  Notification method for a server description change
  
  If the subscriber has been registered, the driver will call this method when a server's
  description has changed.

<comment>Param:</comment>
  <info>MongoDB\Driver\Monitoring\ServerChangedEvent</info>  <strong>$event</strong>  An event object encapsulating information
                                                        about the changed server description.

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

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Monitoring\ServerChangedEvent</class>
   * <strong>MongoDB\Driver\Monitoring\addSubscriber()</strong>
   * <strong>MongoDB\Driver\Manager::addSubscriber()</strong>


id: MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed
type: function
doc:
<comment>Description:</comment>
  Notification method for closing a server
  
  If the subscriber has been registered, the driver will call this method when a server is closed.

<comment>Param:</comment>
  <info>MongoDB\Driver\Monitoring\ServerClosedEvent</info>  <strong>$event</strong>  An event object encapsulating information
                                                       about the closed server.

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

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Monitoring\ServerClosedEvent</class>
   * <strong>MongoDB\Driver\Monitoring\addSubscriber()</strong>
   * <strong>MongoDB\Driver\Manager::addSubscriber()</strong>


id: MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed
type: function
doc:
<comment>Description:</comment>
  Notification method for a failed server heartbeat
  
  If the subscriber has been registered, the driver will call this method when a server heartbeat
  (i.e. hello command issued through server monitoring) has failed.

<comment>Param:</comment>
  <info>MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent</info>  <strong>$event</strong>  An event object encapsulating
                                                                information about the failed server
                                                                heartbeat.

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

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent</class>
   * <strong>MongoDB\Driver\Monitoring\addSubscriber()</strong>
   * <strong>MongoDB\Driver\Manager::addSubscriber()</strong>


id: MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted
type: function
doc:
<comment>Description:</comment>
  Notification method for a started server heartbeat
  
  If the subscriber has been registered, the driver will call this method when a server heartbeat
  (i.e. hello command issued through server monitoring) has started.

<comment>Param:</comment>
  <info>MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent</info>  <strong>$event</strong>  An event object encapsulating
                                                                 information about the started
                                                                 server heartbeat.

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

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent</class>
   * <strong>MongoDB\Driver\Monitoring\addSubscriber()</strong>
   * <strong>MongoDB\Driver\Manager::addSubscriber()</strong>


id: MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded
type: function
doc:
<comment>Description:</comment>
  Notification method for a successful server heartbeat
  
  If the subscriber has been registered, the driver will call this method when a server heartbeat
  (i.e. hello command issued through server monitoring) has succeeded.

<comment>Param:</comment>
  <info>MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent</info>  <strong>$event</strong>  An event object encapsulating
                                                                   information about the successful
                                                                   server heartbeat.

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

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent</class>
   * <strong>MongoDB\Driver\Monitoring\addSubscriber()</strong>
   * <strong>MongoDB\Driver\Manager::addSubscriber()</strong>


id: MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening
type: function
doc:
<comment>Description:</comment>
  Notification method for opening a server
  
  If the subscriber has been registered, the driver will call this method when a server is opened.

<comment>Param:</comment>
  <info>MongoDB\Driver\Monitoring\ServerOpeningEvent</info>  <strong>$event</strong>  An event object encapsulating information
                                                        about the opened server.

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

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Monitoring\ServerOpeningEvent</class>
   * <strong>MongoDB\Driver\Monitoring\addSubscriber()</strong>
   * <strong>MongoDB\Driver\Manager::addSubscriber()</strong>


id: MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged
type: function
doc:
<comment>Description:</comment>
  Notification method for a topology description change
  
  If the subscriber has been registered, the driver will call this method when the topology's
  description has changed.

<comment>Param:</comment>
  <info>MongoDB\Driver\Monitoring\TopologyChangedEvent</info>  <strong>$event</strong>  An event object encapsulating information
                                                          about the changed topology description.

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

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Monitoring\TopologyChangedEvent</class>
   * <strong>MongoDB\Driver\Monitoring\addSubscriber()</strong>
   * <strong>MongoDB\Driver\Manager::addSubscriber()</strong>


id: MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed
type: function
doc:
<comment>Description:</comment>
  Notification method for closing the topology
  
  If the subscriber has been registered, the driver will call this method when the topology is
  closed.

<comment>Param:</comment>
  <info>MongoDB\Driver\Monitoring\TopologyClosedEvent</info>  <strong>$event</strong>  An event object encapsulating information
                                                         about the closed topology.

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

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Monitoring\TopologyClosedEvent</class>
   * <strong>MongoDB\Driver\Monitoring\addSubscriber()</strong>
   * <strong>MongoDB\Driver\Manager::addSubscriber()</strong>


id: MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening
type: function
doc:
<comment>Description:</comment>
  Notification method for opening the topology
  
  If the subscriber has been registered, the driver will call this method when the topology is
  opened.

<comment>Param:</comment>
  <info>MongoDB\Driver\Monitoring\TopologyOpeningEvent</info>  <strong>$event</strong>  An event object encapsulating information
                                                          about the opened topology.

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

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Monitoring\TopologyOpeningEvent</class>
   * <strong>MongoDB\Driver\Monitoring\addSubscriber()</strong>
   * <strong>MongoDB\Driver\Manager::addSubscriber()</strong>


id: MongoDB\Driver\Monitoring\ServerChangedEvent
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\Monitoring\ServerChangedEvent</class> class encapsulates information about a changed
  server description.


id: MongoDB\Driver\Monitoring\ServerChangedEvent::getHost
type: function
doc:
<comment>Description:</comment>
  Returns the hostname of the server

<comment>Return:</comment>
  <info>string</info>  Returns the hostname of the server.


id: MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription
type: function
doc:
<comment>Description:</comment>
  Returns the new description for the server

<comment>Return:</comment>
  <info>MongoDB\Driver\ServerDescription</info>  Returns the new <class>MongoDB\Driver\ServerDescription</class> for the server.


id: MongoDB\Driver\Monitoring\ServerChangedEvent::getPort
type: function
doc:
<comment>Description:</comment>
  Returns the port on which this server is listening

<comment>Return:</comment>
  <info>int</info>  Returns the port on which this server is listening.


id: MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription
type: function
doc:
<comment>Description:</comment>
  Returns the previous description for the server

<comment>Return:</comment>
  <info>MongoDB\Driver\ServerDescription</info>  Returns the previous <class>MongoDB\Driver\ServerDescription</class> for the
                                    server.


id: MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId
type: function
doc:
<comment>Description:</comment>
  Returns the topology ID associated with this server

<comment>Return:</comment>
  <info>MongoDB\BSON\ObjectId</info>  Returns the topology ID.


id: MongoDB\Driver\Monitoring\ServerClosedEvent
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\Monitoring\ServerClosedEvent</class> class encapsulates information about a closed
  server.


id: MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent</class> class encapsulates information about a
  failed server heartbeat.


id: MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros
type: function
doc:
<comment>Description:</comment>
  Returns the heartbeat's duration in microseconds
  
  The heartbeat's duration is a calculated value that includes the time to send the message and
  receive the reply from the server.

<comment>Return:</comment>
  <info>int</info>  Returns the heartbeat's duration in microseconds.


id: MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError
type: function
doc:
<comment>Description:</comment>
  Returns the Exception associated with the failed heartbeat

<comment>Return:</comment>
  <info>Exception</info>  Returns the <class>Exception</class> associated with the failed heartbeat.


id: MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited
type: function
doc:
<comment>Description:</comment>
  Returns whether the heartbeat used a streaming protocol
  
  Returns whether the heartbeat used a streaming protocol. The PHP driver does not use the streaming
  protocol for monitoring, so this method will always return <info>false</info>.

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


id: MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent</class> class encapsulates information about a
  started server heartbeat.


id: MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent</class> class encapsulates information about a
  successful server heartbeat.


id: MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply
type: function
doc:
<comment>Description:</comment>
  Returns the heartbeat reply document
  
  The reply document will be converted from BSON to PHP using the default deserialization rules
  (e.g. BSON documents will be converted to <info>stdClass</info>).

<comment>Return:</comment>
  <info>object</info>  Returns the heartbeat reply document as a <class>stdClass</class> object.

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


id: MongoDB\Driver\Monitoring\ServerOpeningEvent
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\Monitoring\ServerOpeningEvent</class> class encapsulates information about an opened
  server.


id: MongoDB\Driver\Monitoring\Subscriber
type: class
doc:
<comment>Description:</comment>
  Base interface for event subscribers. This is used as a parameter type in the functions
  <strong>MongoDB\Driver\Monitoring\addSubscriber()</strong> and <strong>MongoDB\Driver\Monitoring\removeSubscriber()</strong> and
  should not be implemented directly.


id: MongoDB\Driver\Monitoring\TopologyChangedEvent
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\Monitoring\TopologyChangedEvent</class> class encapsulates information about a changed
  topology description.


id: MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription
type: function
doc:
<comment>Description:</comment>
  Returns the new description for the topology

<comment>Return:</comment>
  <info>MongoDB\Driver\TopologyDescription</info>  Returns the new <class>MongoDB\Driver\TopologyDescription</class> for the
                                      topology.


id: MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription
type: function
doc:
<comment>Description:</comment>
  Returns the previous description for the topology

<comment>Return:</comment>
  <info>MongoDB\Driver\TopologyDescription</info>  Returns the previous <class>MongoDB\Driver\TopologyDescription</class> for
                                      the topology.


id: MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId
type: function
doc:
<comment>Description:</comment>
  Returns the topology ID

<comment>Return:</comment>
  <info>MongoDB\BSON\ObjectId</info>  Returns the topology ID.


id: MongoDB\Driver\Monitoring\TopologyClosedEvent
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\Monitoring\TopologyClosedEvent</class> class encapsulates information about a closed
  topology.


id: MongoDB\Driver\Monitoring\TopologyOpeningEvent
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\Monitoring\TopologyOpeningEvent</class> class encapsulates information about an opened
  topology.


id: MongoDB\Driver\Monitoring\addSubscriber
type: function
doc:
<comment>Description:</comment>
  Registers a monitoring event subscriber globally
  
  Registers a monitoring event subscriber globally. The subscriber will be notified of all events in
  the driver for any Manager.
  
  If <strong>$subscriber</strong> is already registered globally, this function is a no-op. If <strong>$subscriber</strong> is also
  registered with one or more Managers, it will still only be notified once of each event for each
  Manager.

<comment>Param:</comment>
  <info>MongoDB\Driver\Monitoring\Subscriber</info>  <strong>$subscriber</strong>  A monitoring event subscriber to register
                                                     globally.

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

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Monitoring\removeSubscriber()</strong>
   * MongoDB\Driver\Monitoring\Subscriber
   * MongoDB\Driver\Monitoring\CommandSubscriber
   * <strong>MongoDB\Driver\Manager::addSubscriber()</strong>
   * 


id: MongoDB\Driver\Monitoring\removeSubscriber
type: function
doc:
<comment>Description:</comment>
  Unregisters a monitoring event subscriber globally
  
  Unregisters a monitoring event subscriber globally.
  
  If <strong>$subscriber</strong> is not already registered globally, this function is a no-op.

<comment>Param:</comment>
  <info>MongoDB\Driver\Monitoring\Subscriber</info>  <strong>$subscriber</strong>  A monitoring event subscriber to unregister
                                                     globally.

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

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Monitoring\addSubscriber()</strong>
   * MongoDB\Driver\Monitoring\Subscriber
   * MongoDB\Driver\Monitoring\CommandSubscriber
   * <strong>MongoDB\Driver\Manager::removeSubscriber()</strong>
   * 


id: MongoDB\Driver\Query
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\Query</class> class is a value object that represents a database query.


id: MongoDB\Driver\Query::__construct
type: function
doc:
<comment>Description:</comment>
  Create a new Query
  
  Constructs a new <class>MongoDB\Driver\Query</class>, which is an immutable value object that represents a
  database query. The query may then be executed with MongoDB\Driver\Manager::executeQuery.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$filter</strong>        The query predicate. An empty predicate will match all documents in
                               the collection.
                               
                               When evaluating query criteria, MongoDB compares types and values
                               according to its own comparison rules for BSON types, which differs
                               from PHP's comparison and type juggling rules. When matching a
                               special BSON type the query criteria should use the respective BSON
                               class (e.g. use <class>MongoDB\BSON\ObjectId</class> to match an ObjectId).
  <info>array|null</info>    <strong>$queryOptions</strong>  queryOptionsOptionTypeDescriptionallowDiskUse<info>bool</info> Allows MongoDB to
                               use temporary disk files to store data exceeding the 100 megabyte
                               system memory limit while processing a blocking sort operation.
                               allowPartialResults<info>bool</info> For queries against a sharded collection,
                               returns partial results from the mongos if some shards are
                               unavailable instead of throwing an error.  Falls back to the
                               deprecated <return>"partial"</return> option if not specified. awaitData<info>bool</info> Use in
                               conjunction with the <return>"tailable"</return> option to block a getMore operation
                               on the cursor temporarily if at the end of data rather than returning
                               no data. After a timeout period, the query returns as normal.
                               batchSize<info>int</info> The number of documents to return in the first batch.
                               Defaults to 101. A batch size of 0 means that the cursor will be
                               established, but no documents will be returned in the first batch.
                               In versions of MongoDB before 3.2, where queries use the legacy wire
                               protocol OP_QUERY, a batch size of 1 will close the cursor
                               irrespective of the number of matched documents.
                               collation<info>array</info><info>object</info></info>Collation allows users to specify
                               language-specific rules for string comparison, such as rules for
                               lettercase and accent marks. When specifying collation, the <return>"locale"</return>
                               field is mandatory; all other collation fields are optional. For
                               descriptions of the fields, see Collation Document.  If the collation
                               is unspecified but the collection has a default collation, the
                               operation uses the collation specified for the collection. If no
                               collation is specified for the collection or for the operation,
                               MongoDB uses the simple binary comparison used in prior versions for
                               string comparisons.  This option is available in MongoDB 3.4+ and
                               will result in an exception at execution time if specified for an
                               older server version. comment<info>mixed</info> An arbitrary comment to help trace
                               the operation through the database profiler, currentOp output, and
                               logs.  The comment can be any valid BSON type for MongoDB 4.4+.
                               Earlier server versions only support string values.  Falls back to
                               the deprecated <return>"$comment"</return> modifier if not specified. exhaust<info>bool</info>
                               Stream the data down full blast in multiple "more" packages, on the
                               assumption that the client will fully read all data queried. Faster
                               when you are pulling a lot of data and know you want to pull it all
                               down. Note: the client is not allowed to not read all the data unless
                               it closes the connection.  This option is not supported by the find
                               command in MongoDB 3.2+ and will force the driver to use the legacy
                               wire protocol version (i.e. OP_QUERY). explain<info>bool</info> If <info>true</info>, the
                               returned <class>MongoDB\Driver\Cursor</class> will contain a single document that
                               describes the process and indexes used to return the query.  Falls
                               back to the deprecated <return>"$explain"</return> modifier if not specified.  This
                               option is not supported by the find command in MongoDB 3.2+ and will
                               only be respected when using the legacy wire protocol version (i.e.
                               OP_QUERY). The explain command should be used on MongoDB 3.0+.
                               hint<info>string</info><info>array</info><info>object</info></info> Index specification. Specify either the index
                               name as a string or the index key pattern. If specified, then the
                               query system will only consider plans using the hinted index.  Falls
                               back to the deprecated <return>"hint"</return> option if not specified. let<info>array</info><info>object</info></info>
                               Map of parameter names and values. Values must be constant or closed
                               expressions that do not reference document fields. Parameters can
                               then be accessed as variables in an aggregate expression context
                               (e.g. <return>$$var</return>).  This option is available in MongoDB 5.0+ and will
                               result in an exception at execution time if specified for an older
                               server version. limit<info>int</info> The maximum number of documents to return.
                               If unspecified, then defaults to no limit. A limit of 0 is equivalent
                               to setting no limit.  A negative limit is will be interpreted as a
                               positive limit with the <return>"singleBatch"</return> option set to <info>true</info>. This
                               behavior is supported for backwards compatibility, but should be
                               considered deprecated. max<info>array</info><info>object</info></info> The exclusive upper bound for a
                               specific index.  Falls back to the deprecated <return>"$max"</return> modifier if not
                               specified. maxAwaitTimeMS<info>int</info> Positive integer denoting the time limit
                               in milliseconds for the server to block a getMore operation if no
                               data is available. This option should only be used in conjunction
                               with the <return>"tailable"</return> and <return>"awaitData"</return> options. maxScan<info>int</info> This option
                               is deprecated and should not be used.  Positive integer denoting the
                               maximum number of documents or index keys to scan when executing the
                               query.  Falls back to the deprecated <return>"$maxScan"</return> modifier if not
                               specified. maxTimeMS<info>int</info> The cumulative time limit in milliseconds for
                               processing operations on the cursor. MongoDB aborts the operation at
                               the earliest following interrupt point.  Falls back to the deprecated
                               <return>"$maxTimeMS"</return> modifier if not specified. min<info>array</info><info>object</info></info> The inclusive
                               lower bound for a specific index.  Falls back to the deprecated
                               <return>"$min"</return> modifier if not specified. modifiers<info>array</info>Meta operators
                               modifying the output or behavior of a query. Use of these operators
                               is deprecated in favor of named options. noCursorTimeout<info>bool</info> Prevents
                               the server from timing out idle cursors after an inactivity period
                               (10 minutes). oplogReplay<info>bool</info> Internal use for replica sets. To use
                               oplogReplay, you must include the following condition in the filter:
                               [ '$gte' =>  ] ]
                               ]]>This option is deprecated as of the 1.8.0
                               release.projection<info>array</info><info>object</info></info> The projection specification to
                               determine which fields to include in the returned documents.  If you
                               are using the ODM functionality to deserialise documents as their
                               original PHP class, make sure that you include the __pclass field in
                               the projection. This is required for the deserialization to work and
                               without it, the driver will return (by default) a <class>stdClass</class> object
                               instead. readConcern<class>MongoDB\Driver\ReadConcern</class> A read concern to
                               apply to the operation. By default, the read concern from the MongoDB
                               Connection URI will be used.  This option is available in MongoDB
                               3.2+ and will result in an exception at execution time if specified
                               for an older server version. returnKey<info>bool</info> If <info>true</info>, returns only the
                               index keys in the resulting documents. Default value is <info>false</info>. If
                               <info>true</info> and the find command does not use an index, the returned
                               documents will be empty.  Falls back to the deprecated <return>"$returnKey"</return>
                               modifier if not specified. showRecordId<info>bool</info> Determines whether to
                               return the record identifier for each document. If <info>true</info>, adds a
                               top-level <return>"$recordId"</return> field to the returned documents.  Falls back to
                               the deprecated <return>"$showDiskLoc"</return> modifier if not specified.
                               singleBatch<info>bool</info> Determines whether to close the cursor after the
                               first batch. Defaults to <info>false</info>. skip<info>int</info>Number of documents to skip.
                               Defaults to 0.snapshot<info>bool</info> This option is deprecated and should not
                               be used.  Prevents the cursor from returning a document more than
                               once because of an intervening write operation.  Falls back to the
                               deprecated <return>"$snapshot"</return> modifier if not specified. sort<info>array</info><info>object</info></info>The
                               sort specification for the ordering of the results. Falls back to the
                               deprecated <return>"$orderby"</return> modifier if not specified. tailable<info>bool</info>Returns
                               a tailable cursor for a capped collection.
                               
                               Allows MongoDB to use temporary disk files to store data exceeding
                               the 100 megabyte system memory limit while processing a blocking sort
                               operation.
                               
                               For queries against a sharded collection, returns partial results
                               from the mongos if some shards are unavailable instead of throwing an
                               error.
                               
                               Falls back to the deprecated <return>"partial"</return> option if not specified.
                               
                               The number of documents to return in the first batch. Defaults to
                               101. A batch size of 0 means that the cursor will be established, but
                               no documents will be returned in the first batch.
                               
                               In versions of MongoDB before 3.2, where queries use the legacy wire
                               protocol OP_QUERY, a batch size of 1 will close the cursor
                               irrespective of the number of matched documents.
                               
                               Collation allows users to specify language-specific rules for string
                               comparison, such as rules for lettercase and accent marks. When
                               specifying collation, the <return>"locale"</return> field is mandatory; all other
                               collation fields are optional. For descriptions of the fields, see
                               Collation Document.
                               
                               If the collation is unspecified but the collection has a default
                               collation, the operation uses the collation specified for the
                               collection. If no collation is specified for the collection or for
                               the operation, MongoDB uses the simple binary comparison used in
                               prior versions for string comparisons.
                               
                               This option is available in MongoDB 3.4+ and will result in an
                               exception at execution time if specified for an older server version.
                               
                               An arbitrary comment to help trace the operation through the database
                               profiler, currentOp output, and logs.
                               
                               The comment can be any valid BSON type for MongoDB 4.4+. Earlier
                               server versions only support string values.
                               
                               Falls back to the deprecated <return>"$comment"</return> modifier if not specified.
                               
                               Stream the data down full blast in multiple "more" packages, on the
                               assumption that the client will fully read all data queried. Faster
                               when you are pulling a lot of data and know you want to pull it all
                               down. Note: the client is not allowed to not read all the data unless
                               it closes the connection.
                               
                               This option is not supported by the find command in MongoDB 3.2+ and
                               will force the driver to use the legacy wire protocol version (i.e.
                               OP_QUERY).
                               
                               If <info>true</info>, the returned <class>MongoDB\Driver\Cursor</class> will contain a single
                               document that describes the process and indexes used to return the
                               query.
                               
                               Falls back to the deprecated <return>"$explain"</return> modifier if not specified.
                               
                               This option is not supported by the find command in MongoDB 3.2+ and
                               will only be respected when using the legacy wire protocol version
                               (i.e. OP_QUERY). The explain command should be used on MongoDB 3.0+.
                               
                               Index specification. Specify either the index name as a string or the
                               index key pattern. If specified, then the query system will only
                               consider plans using the hinted index.
                               
                               Falls back to the deprecated <return>"hint"</return> option if not specified.
                               
                               Map of parameter names and values. Values must be constant or closed
                               expressions that do not reference document fields. Parameters can
                               then be accessed as variables in an aggregate expression context
                               (e.g. <return>$$var</return>).
                               
                               This option is available in MongoDB 5.0+ and will result in an
                               exception at execution time if specified for an older server version.
                               
                               The maximum number of documents to return. If unspecified, then
                               defaults to no limit. A limit of 0 is equivalent to setting no limit.
                               
                               A negative limit is will be interpreted as a positive limit with the
                               <return>"singleBatch"</return> option set to <info>true</info>. This behavior is supported for
                               backwards compatibility, but should be considered deprecated.
                               
                               The exclusive upper bound for a specific index.
                               
                               Falls back to the deprecated <return>"$max"</return> modifier if not specified.
                               
                               Positive integer denoting the time limit in milliseconds for the
                               server to block a getMore operation if no data is available. This
                               option should only be used in conjunction with the <return>"tailable"</return> and
                               <return>"awaitData"</return> options.
                               
                               This option is deprecated and should not be used.
                               
                               Positive integer denoting the maximum number of documents or index
                               keys to scan when executing the query.
                               
                               Falls back to the deprecated <return>"$maxScan"</return> modifier if not specified.
                               
                               The cumulative time limit in milliseconds for processing operations
                               on the cursor. MongoDB aborts the operation at the earliest following
                               interrupt point.
                               
                               Falls back to the deprecated <return>"$maxTimeMS"</return> modifier if not specified.
                               
                               The inclusive lower bound for a specific index.
                               
                               Falls back to the deprecated <return>"$min"</return> modifier if not specified.
                               
                               Internal use for replica sets. To use oplogReplay, you must include
                               the following condition in the filter:
                               
                                [ '$gte' =>  ] ]
                               ]]>
                               
                               This option is deprecated as of the 1.8.0 release.
                               
                               The projection specification to determine which fields to include in
                               the returned documents.
                               
                               If you are using the ODM functionality to deserialise documents as
                               their original PHP class, make sure that you include the __pclass
                               field in the projection. This is required for the deserialization to
                               work and without it, the driver will return (by default) a <class>stdClass</class>
                               object instead.
                               
                               A read concern to apply to the operation. By default, the read
                               concern from the MongoDB Connection URI will be used.
                               
                               This option is available in MongoDB 3.2+ and will result in an
                               exception at execution time if specified for an older server version.
                               
                               If <info>true</info>, returns only the index keys in the resulting documents.
                               Default value is <info>false</info>. If <info>true</info> and the find command does not use an
                               index, the returned documents will be empty.
                               
                               Falls back to the deprecated <return>"$returnKey"</return> modifier if not specified.
                               
                               Determines whether to return the record identifier for each document.
                               If <info>true</info>, adds a top-level <return>"$recordId"</return> field to the returned
                               documents.
                               
                               Falls back to the deprecated <return>"$showDiskLoc"</return> modifier if not
                               specified.
                               
                               This option is deprecated and should not be used.
                               
                               Prevents the cursor from returning a document more than once because
                               of an intervening write operation.
                               
                               Falls back to the deprecated <return>"$snapshot"</return> modifier if not specified.
                               
                               The sort specification for the ordering of the results.
                               
                               Falls back to the deprecated <return>"$orderby"</return> modifier if not specified.

<comment>See Also:</comment>
   * MongoDB\Driver\Manager::executeQuery
   * <class>MongoDB\Driver\Cursor</class>


id: MongoDB\Driver\ReadConcern
type: class
doc:
<comment>Description:</comment>
  <class>MongoDB\Driver\ReadConcern</class> controls the level of isolation for read operations for replica sets
  and replica set shards. This option requires MongoDB 3.2 or later.


id: MongoDB\Driver\ReadConcern::AVAILABLE
type: constant
doc:
<comment>Description:</comment>
  Default for reads against secondaries when <return>afterClusterTime</return>and <return>level</return> are unspecified.
  
  The query returns the instance's most recent data. Provides no guarantee that the data has been
  written to a majority of the replica set members (i.e. may be rolled back).
  
  For unsharded collections (including collections in a standalone deployment or a replica set
  deployment), <return>"local"</return> and <return>"available"</return> read concerns behave identically.
  
  For a sharded cluster, <return>"available"</return> read concern provides greater tolerance for partitions since it
  does not wait to ensure consistency guarantees. However, a query with <return>"available"</return> read concern may
  return orphan documents if the shard is undergoing chunk migrations since the <return>"available"</return> read
  concern, unlike <return>"local"</return> read concern, does not contact the shard's primary nor the config servers
  for updated metadata.


id: MongoDB\Driver\ReadConcern::LINEARIZABLE
type: constant
doc:
<comment>Description:</comment>
  The query returns data that reflects all successful writes issued with a write concern of
  <return>"majority"</return> and acknowledged prior to the start of the read operation. For replica sets that run
  with <return>writeConcernMajorityJournalDefault</return> set to <info>true</info>, linearizable read concern returns data that
  will never be rolled back.
  
  With <return>writeConcernMajorityJournalDefault</return> set to <info>false</info>, MongoDB will not wait for <return>w: "majority"</return>
  writes to be durable before acknowledging the writes. As such, <return>"majority"</return> write operations could
  possibly roll back in the event of a loss of a replica set member.
  
  You can specify linearizable read concern for read operations on the primary only.
  
  Linearizable read concern guarantees only apply if read operations specify a query filter that
  uniquely identifies a single document.
  
  Always use <return>maxTimeMS</return> with linearizable read concern in case a majority of data bearing members are
  unavailable. <return>maxTimeMS</return> ensures that the operation does not block indefinitely and instead ensures
  that the operation returns an error if the read concern cannot be fulfilled.
  
  Linearizable read concern requires MongoDB 3.4.


id: MongoDB\Driver\ReadConcern::LOCAL
type: constant
doc:
<comment>Description:</comment>
  Default for reads against primary if <return>level</return> is unspecified and for reads against secondaries if
  <return>level</return> is unspecified but <return>afterClusterTime</return> is specified.
  
  The query returns the instance's most recent data. Provides no guarantee that the data has been
  written to a majority of the replica set members (i.e. may be rolled back).


id: MongoDB\Driver\ReadConcern::MAJORITY
type: constant
doc:
<comment>Description:</comment>
  The query returns the instance's most recent data acknowledged as having been written to a
  majority of members in the replica set.
  
  To use read concern level of <return>"majority"</return>, replica sets must use WiredTiger storage engine and
  election protocol version 1.


id: MongoDB\Driver\ReadConcern::SNAPSHOT
type: constant
doc:
<comment>Description:</comment>
  Read concern <return>"snapshot"</return> is available for multi-document transactions, and starting in MongoDB 5.0,
  certain read operations outside of multi-document transactions.
  
  If the transaction is not part of a causally consistent session, upon transaction commit with
  write concern <return>"majority"</return>, the transaction operations are guaranteed to have read from a snapshot
  of majority-committed data.
  
  If the transaction is part of a causally consistent session, upon transaction commit with write
  concern <return>"majority"</return>, the transaction operations are guaranteed to have read from a snapshot of
  majority-committed data that provides causal consistency with the operation immediately preceding
  the transaction start.
  
  Outside of multi-document transactions, read concern <return>"snapshot"</return> is available on primaries and
  secondaries for the following read operations: <return>find</return>, <return>aggregate</return>, and <return>distinct</return> (on unsharded
  collections). All other read commands prohibit <return>"snapshot"</return>.


id: MongoDB\Driver\ReadConcern::__construct
type: function
doc:
<comment>Description:</comment>
  Create a new ReadConcern
  
  Constructs a new <class>MongoDB\Driver\ReadConcern</class>, which is an immutable value object.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$level</strong>  The read concern level. You may use, but are not limited to, one of the class
                       constants.

<comment>See Also:</comment>
   * Read Concern reference


id: MongoDB\Driver\ReadConcern::bsonSerialize
type: function
doc:
<comment>Description:</comment>
  Returns an object for BSON serialization

<comment>Return:</comment>
  <info>stdClass</info>  Returns an object for serializing the ReadConcern as BSON.

<comment>See Also:</comment>
   * MongoDB\BSON\Serializable::bsonSerialize
   * Read Concern reference


id: MongoDB\Driver\ReadConcern::getLevel
type: function
doc:
<comment>Description:</comment>
  Returns the ReadConcern's "level" option

<comment>Return:</comment>
  <info>string|null</info>  Returns the ReadConcern's "level" option.

<comment>See Also:</comment>
   * Read Concern reference


id: MongoDB\Driver\ReadConcern::isDefault
type: function
doc:
<comment>Description:</comment>
  Checks if this is the default read concern
  
  Returns whether this is the default read concern (i.e. no options are specified). This method is
  primarily intended to be used in conjunction with MongoDB\Driver\Manager::getReadConcern to
  determine whether the Manager has been constructed without any read concern options.
  
  The driver will not include a default read concern in its read operations (e.g.
  MongoDB\Driver\Manager::executeQuery) in order order to allow the server to apply its own default.
  Libraries that access the Manager's read concern to include it in their own read commands should
  use this method to ensure that default read concerns are left unset.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if this is the default read concern and <info>false</info> otherwise.

<comment>See Also:</comment>
   * MongoDB\Driver\Manager::getReadConcern
   * Read Concern reference


id: MongoDB\Driver\ReadConcern::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize a ReadConcern

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\Driver\ReadConcern</class>.

<comment>See Also:</comment>
   * MongoDB\Driver\ReadConcern::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\Driver\ReadConcern::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize a ReadConcern

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\Driver\ReadConcern</class>.

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

<comment>See Also:</comment>
   * MongoDB\Driver\ReadConcern::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\Driver\ReadPreference::NEAREST
type: constant
doc:
<comment>Description:</comment>
  Operations read from member of the replica set with the least network latency, irrespective of the
  member's type.


id: MongoDB\Driver\ReadPreference::NO_MAX_STALENESS
type: constant
doc:
<comment>Description:</comment>
  The default value for the <return>"maxStalenessSeconds"</return> option is to specify no limit on maximum
  staleness, which means that the driver will not consider a secondary's lag when choosing where to
  direct a read operation.


id: MongoDB\Driver\ReadPreference::PRIMARY
type: constant
doc:
<comment>Description:</comment>
  All operations read from the current replica set primary. This is the default read preference for
  MongoDB.


id: MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED
type: constant
doc:
<comment>Description:</comment>
  In most situations, operations read from the primary but if it is unavailable, operations read
  from secondary members.


id: MongoDB\Driver\ReadPreference::RP_SECONDARY
type: constant
doc:
<comment>Description:</comment>
  All operations read from the secondary members of the replica set.


id: MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED
type: constant
doc:
<comment>Description:</comment>
  In most situations, operations read from secondary members but if no secondary members are
  available, operations read from the primary.


id: MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS
type: constant
doc:
<comment>Description:</comment>
  The minimum value for the <return>"maxStalenessSeconds"</return> option is 90 seconds. The driver estimates
  secondaries' staleness by periodically checking the latest write date of each replica set member.
  Since these checks are infrequent, the staleness estimate is coarse. Thus, the driver cannot
  enforce a max staleness value of less than 90 seconds.


id: MongoDB\Driver\ReadPreference::__construct
type: function
doc:
<comment>Description:</comment>
  Create a new ReadPreference
  
  Constructs a new <class>MongoDB\Driver\ReadPreference</class>, which is an immutable value object.

<comment>Param:</comment>
  <info>string|int</info>  <strong>$mode</strong>     Read preference
                        modeValueDescription<info>MongoDB\Driver\ReadPreference::RP_PRIMARY</info> or <return>"primary"</return>
                        All operations read from the current replica set primary. This is the
                        default read preference for MongoDB.
                        <info>MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED</info> or <return>"primaryPreferred"</return> In
                        most situations, operations read from the primary but if it is unavailable,
                        operations read from secondary members.
                        <info>MongoDB\Driver\ReadPreference::RP_SECONDARY</info> or <return>"secondary"</return> All operations
                        read from the secondary members of the replica set.
                        <info>MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED</info> or
                        <return>"secondaryPreferred"</return> In most situations, operations read from secondary
                        members but if no secondary members are available, operations read from the
                        primary. <info>MongoDB\Driver\ReadPreference::RP_NEAREST</info> or <return>"nearest"</return> Operations
                        read from member of the replica set with the least network latency,
                        irrespective of the member's type.
                        
                        All operations read from the current replica set primary. This is the
                        default read preference for MongoDB.
                        
                        In most situations, operations read from the primary but if it is
                        unavailable, operations read from secondary members.
                        
                        All operations read from the secondary members of the replica set.
                        
                        In most situations, operations read from secondary members but if no
                        secondary members are available, operations read from the primary.
                        
                        Operations read from member of the replica set with the least network
                        latency, irrespective of the member's type.
  <info>array|null</info>  <strong>$tagSets</strong>  Tag sets allow you to target read operations to specific members of a
                        replica set. This parameter should be an array of associative arrays, each
                        of which contain zero or more key/value pairs. When selecting a server for a
                        read operation, the driver attempt to select a node having all tags in a set
                        (i.e. the associative array of key/value pairs). If selection fails, the
                        driver will attempt subsequent sets. An empty tag set (<return>array()</return>) will match
                        any node and may be used as a fallback.
                        
                        Tags are not compatible with the <info>MongoDB\Driver\ReadPreference::RP_PRIMARY</info>
                        mode and, in general, only apply when selecting a secondary member of a set
                        for a read operation. However, the <info>MongoDB\Driver\ReadPreference::RP_NEAREST</info>
                        mode, when combined with a tag set, selects the matching member with the
                        lowest network latency. This member may be a primary or secondary.
  <info>array|null</info>  <strong>$options</strong>  optionsOptionTypeDescriptionhedge<info>object</info><info>array</info></info>Specifies whether to use hedged
                        reads, which are supported by MongoDB 4.4+ for sharded queries. Server
                        hedged reads are available for all non-primary read preferences and are
                        enabled by default when using the <return>"nearest"</return> mode. This option allows
                        explicitly enabling server hedged reads for non-primary read preferences by
                        specifying <return>['enabled' =&gt; true]</return>, or explicitly disabling server hedged
                        reads for the <return>"nearest"</return> read preference by specifying <return>['enabled' =&gt;
                        false]</return>. maxStalenessSeconds<info>int</info> Specifies a maximum replication lag, or
                        "staleness", for reads from secondaries. When a secondary's estimated
                        staleness exceeds this value, the driver stops using it for read operations.
                        If specified, the max staleness must be a signed 32-bit integer greater than
                        or equal to <info>MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS</info>.
                        Defaults to <info>MongoDB\Driver\ReadPreference::NO_MAX_STALENESS</info>, which means
                        that the driver will not consider a secondary's lag when choosing where to
                        direct a read operation.  This option is not compatible with the
                        <info>MongoDB\Driver\ReadPreference::RP_PRIMARY</info> mode. Specifying a max staleness
                        also requires all MongoDB instances in the deployment to be using MongoDB
                        3.4+. An exception will be thrown at execution time if any MongoDB instances
                        in the deployment are of an older server version.
                        
                        Specifies whether to use hedged reads, which are supported by MongoDB 4.4+
                        for sharded queries.
                        
                        Server hedged reads are available for all non-primary read preferences and
                        are enabled by default when using the <return>"nearest"</return> mode. This option allows
                        explicitly enabling server hedged reads for non-primary read preferences by
                        specifying <return>['enabled' =&gt; true]</return>, or explicitly disabling server hedged
                        reads for the <return>"nearest"</return> read preference by specifying <return>['enabled' =&gt;
                        false]</return>.
                        
                        Specifies a maximum replication lag, or "staleness", for reads from
                        secondaries. When a secondary's estimated staleness exceeds this value, the
                        driver stops using it for read operations.
                        
                        If specified, the max staleness must be a signed 32-bit integer greater than
                        or equal to <info>MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS</info>.
                        
                        Defaults to <info>MongoDB\Driver\ReadPreference::NO_MAX_STALENESS</info>, which means
                        that the driver will not consider a secondary's lag when choosing where to
                        direct a read operation.
                        
                        This option is not compatible with the
                        <info>MongoDB\Driver\ReadPreference::RP_PRIMARY</info> mode. Specifying a max staleness
                        also requires all MongoDB instances in the deployment to be using MongoDB
                        3.4+. An exception will be thrown at execution time if any MongoDB instances
                        in the deployment are of an older server version.

<comment>See Also:</comment>
   * Read Preference reference


id: MongoDB\Driver\ReadPreference::bsonSerialize
type: function
doc:
<comment>Description:</comment>
  Returns an object for BSON serialization

<comment>Return:</comment>
  <info>stdClass</info>  Returns an object for serializing the ReadPreference as BSON.

<comment>See Also:</comment>
   * MongoDB\BSON\Serializable::bsonSerialize
   * Read Preference reference


id: MongoDB\Driver\ReadPreference::getHedge
type: function
doc:
<comment>Description:</comment>
  Returns the ReadPreference's "hedge" option

<comment>Return:</comment>
  <info>object|null</info>  Returns the ReadPreference's "hedge" option.

<comment>See Also:</comment>
   * Read Preference reference


id: MongoDB\Driver\ReadPreference::getMaxStalenessSeconds
type: function
doc:
<comment>Description:</comment>
  Returns the ReadPreference's "maxStalenessSeconds" option

<comment>Return:</comment>
  <info>int</info>  Returns the ReadPreference's "maxStalenessSeconds" option. If no max staleness has been
       specified, <info>MongoDB\Driver\ReadPreference::NO_MAX_STALENESS</info> will be returned.

<comment>See Also:</comment>
   * Read Preference reference


id: MongoDB\Driver\ReadPreference::getMode
type: function
doc:
<comment>Description:</comment>
  Returns the ReadPreference's "mode" option

<comment>Return:</comment>
  <info>int</info>  Returns the ReadPreference's "mode" option.

<comment>See Also:</comment>
   * MongoDB\Driver\ReadPreference::getModeString
   * Read Preference reference


id: MongoDB\Driver\ReadPreference::getModeString
type: function
doc:
<comment>Description:</comment>
  Returns the ReadPreference's "mode" option as a string

<comment>Return:</comment>
  <info>string</info>  Returns the ReadPreference's "mode" option as a string.

<comment>See Also:</comment>
   * MongoDB\Driver\ReadPreference::getMode
   * Read Preference reference


id: MongoDB\Driver\ReadPreference::getTagSets
type: function
doc:
<comment>Description:</comment>
  Returns the ReadPreference's "tagSets" option

<comment>Return:</comment>
  <info>array</info>  Returns the ReadPreference's "tagSets" option.

<comment>See Also:</comment>
   * Read Preference reference


id: MongoDB\Driver\ReadPreference::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize a ReadPreference

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\Driver\ReadPreference</class>.

<comment>See Also:</comment>
   * MongoDB\Driver\ReadPreference::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\Driver\ReadPreference::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize a ReadPreference

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\Driver\ReadPreference</class>.

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

<comment>See Also:</comment>
   * MongoDB\Driver\ReadPreference::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\Driver\Server::TYPE_LOAD_BALANCER
type: constant
doc:
<comment>Description:</comment>
  Load balancer server type, returned by MongoDB\Driver\Server::getType.


id: MongoDB\Driver\Server::TYPE_POSSIBLE_PRIMARY
type: constant
doc:
<comment>Description:</comment>
  Replica set possible primary server type, returned by MongoDB\Driver\Server::getType.
  
  A server may be identified as a possible primary if it has not yet been checked but another memory
  of the replica set thinks it is the primary.


id: MongoDB\Driver\Server::TYPE_RS_ARBITER
type: constant
doc:
<comment>Description:</comment>
  Replica set arbiter server type, returned by MongoDB\Driver\Server::getType.


id: MongoDB\Driver\Server::TYPE_RS_GHOST
type: constant
doc:
<comment>Description:</comment>
  Replica set ghost server type, returned by MongoDB\Driver\Server::getType.
  
  Servers may be identified as such in at least three situations: briefly during server startup; in
  an uninitialized replica set; or when the server is shunned (i.e. removed from the replica set
  config). They cannot be queried, nor can their host list be used to discover the current replica
  set configuration; however, the client may monitor this server in hope that it transitions to a
  more useful state.


id: MongoDB\Driver\Server::TYPE_RS_OTHER
type: constant
doc:
<comment>Description:</comment>
  Replica set other server type, returned by MongoDB\Driver\Server::getType.
  
  Such servers may be hidden, starting up, or recovering. They cannot be queried, but their hosts
  lists are useful for discovering the current replica set configuration.


id: MongoDB\Driver\Server::TYPE_RS_PRIMARY
type: constant
doc:
<comment>Description:</comment>
  Replica set primary server type, returned by MongoDB\Driver\Server::getType.


id: MongoDB\Driver\Server::TYPE_RS_SECONDARY
type: constant
doc:
<comment>Description:</comment>
  Replica set secondary server type, returned by MongoDB\Driver\Server::getType.


id: MongoDB\Driver\Server::TYPE_STANDALONE
type: constant
doc:
<comment>Description:</comment>
  Standalone server type, returned by MongoDB\Driver\Server::getType.


id: MongoDB\Driver\Server::__construct
type: function
doc:
<comment>Description:</comment>
  Create a new Server (not used)
  
  <class>MongoDB\Driver\Server</class> objects are created internally by <class>MongoDB\Driver\Manager</class> when a database
  connection is established and may be returned by <strong>MongoDB\Driver\Manager::getServers()</strong> and
  <strong>MongoDB\Driver\Manager::selectServer()</strong>.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Manager::getServers()</strong>
   * <strong>MongoDB\Driver\Manager::selectServer()</strong>


id: MongoDB\Driver\Server::executeBulkWrite
type: function
doc:
<comment>Description:</comment>
  Execute one or more write operations on this server
  
  Executes one or more write operations on this server.
  
  A <class>MongoDB\Driver\BulkWrite</class> can be constructed with one or more write operations of varying types
  (e.g. updates, deletes, and inserts). The driver will attempt to send operations of the same type
  to the server in as few requests as possible to optimize round trips.

<comment>Param:</comment>
  <info>string</info>                                  <strong>$namespace</strong>  A fully qualified namespace (e.g.
                                                      <return>"databaseName.collectionName"</return>).
  <info>MongoDB\Driver\BulkWrite</info>                <strong>$bulk</strong>       The write(s) to execute.
  <info>array|MongoDB\Driver\WriteConcern|null</info>  <strong>$options</strong>    
                                                      optionsOptionTypeDescriptionsession<class>MongoDB\Driver\Session</class>
                                                      A session to associate with the operation.
                                                      writeConcern<class>MongoDB\Driver\WriteConcern</class> A
                                                      write concern to apply to the operation.
                                                      
                                                      A session to associate with the operation.
                                                      
                                                      A write concern to apply to the operation.

<comment>Return:</comment>
  <info>MongoDB\Driver\WriteResult</info>  Returns <class>MongoDB\Driver\WriteResult</class> on success.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\BulkWrite</class>
   * <class>MongoDB\Driver\WriteResult</class>
   * <class>MongoDB\Driver\WriteConcern</class>
   * <strong>MongoDB\Driver\Manager::executeBulkWrite()</strong>


id: MongoDB\Driver\Server::executeCommand
type: function
doc:
<comment>Description:</comment>
  Execute a database command on this server
  
  Executes the command on this server.
  
  This method applies no special logic to the command. Although this method accepts <return>"readConcern"</return>
  and <return>"writeConcern"</return> options, which will be incorporated into the command document, those options
  will not default to corresponding values from the MongoDB Connection URI nor will the MongoDB
  server version be taken into account. Users are therefore encouraged to use specific read and/or
  write command methods if possible.
  
  The <return>"readPreference"</return> option does not control the server to which the driver issues the operation;
  it will always be executed on this server object. Instead, it may be used when issuing the
  operation to a secondary (from a replica set connection, not standalone) or mongos node to ensure
  that the driver sets the wire protocol accordingly or adds the read preference to the operation,
  respectively.

<comment>Param:</comment>
  <info>string</info>                                    <strong>$db</strong>       The name of the database on which to execute
                                                      the command.
  <info>MongoDB\Driver\Command</info>                    <strong>$command</strong>  The command to execute.
  <info>array|MongoDB\Driver\ReadPreference|null</info>  <strong>$options</strong>  
                                                      optionsOptionTypeDescriptionreadConcern<class>MongoDB\Driver\ReadConcern</class>
                                                      A read concern to apply to the operation.
                                                      This option is available in MongoDB 3.2+ and
                                                      will result in an exception at execution time
                                                      if specified for an older server version.
                                                      readPreference<class>MongoDB\Driver\ReadPreference</class> A
                                                      read preference to use for selecting a server
                                                      for the operation.
                                                      session<class>MongoDB\Driver\Session</class> A session to
                                                      associate with the operation.
                                                      writeConcern<class>MongoDB\Driver\WriteConcern</class> A
                                                      write concern to apply to the operation.
                                                      
                                                      A read concern to apply to the operation.
                                                      
                                                      This option is available in MongoDB 3.2+ and
                                                      will result in an exception at execution time
                                                      if specified for an older server version.
                                                      
                                                      A read preference to use for selecting a
                                                      server for the operation.
                                                      
                                                      A session to associate with the operation.
                                                      
                                                      A write concern to apply to the operation.
                                                      
                                                      If you are using a <return>"session"</return> which has a
                                                      transaction in progress, you cannot specify a
                                                      <return>"readConcern"</return> or <return>"writeConcern"</return> option. This
                                                      will result in an
                                                      <class>MongoDB\Driver\Exception\InvalidArgumentException</class>
                                                      being thrown. Instead, you should set these
                                                      two options when you create the transaction
                                                      with MongoDB\Driver\Session::startTransaction.

<comment>Return:</comment>
  <info>MongoDB\Driver\Cursor</info>  Returns <class>MongoDB\Driver\Cursor</class> on success.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Command</class>
   * <class>MongoDB\Driver\Cursor</class>
   * <strong>MongoDB\Driver\Server::executeReadCommand()</strong>
   * <strong>MongoDB\Driver\Server::executeReadWriteCommand()</strong>
   * <strong>MongoDB\Driver\Server::executeWriteCommand()</strong>
   * <strong>MongoDB\Driver\Manager::executeCommand()</strong>


id: MongoDB\Driver\Server::executeQuery
type: function
doc:
<comment>Description:</comment>
  Execute a database query on this server
  
  Executes the query on this server.
  
  The <return>"readPreference"</return> option does not control the server to which the driver issues the operation;
  it will always be executed on this server object. Instead, it may be used when issuing the
  operation to a secondary (from a replica set connection, not standalone) or mongos node to ensure
  that the driver sets the wire protocol accordingly or adds the read preference to the operation,
  respectively.

<comment>Param:</comment>
  <info>string</info>                                    <strong>$namespace</strong>  A fully qualified namespace (e.g.
                                                        <return>"databaseName.collectionName"</return>).
  <info>MongoDB\Driver\Query</info>                      <strong>$query</strong>      The query to execute.
  <info>array|MongoDB\Driver\ReadPreference|null</info>  <strong>$options</strong>    
                                                        optionsOptionTypeDescriptionreadPreference<class>MongoDB\Driver\ReadPreference</class>
                                                        A read preference to use for selecting a
                                                        server for the operation.
                                                        session<class>MongoDB\Driver\Session</class> A session to
                                                        associate with the operation.
                                                        
                                                        A read preference to use for selecting a
                                                        server for the operation.
                                                        
                                                        A session to associate with the operation.

<comment>Return:</comment>
  <info>MongoDB\Driver\Cursor</info>  Returns <class>MongoDB\Driver\Cursor</class> on success.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Cursor</class>
   * <class>MongoDB\Driver\Query</class>
   * <class>MongoDB\Driver\ReadPreference</class>
   * <strong>MongoDB\Driver\Manager::executeQuery()</strong>


id: MongoDB\Driver\Server::executeReadCommand
type: function
doc:
<comment>Description:</comment>
  Execute a database command that reads on this server
  
  Executes the command on this server.
  
  This method will apply logic that is specific to commands that read (e.g. count) and take the
  MongoDB server version into account. The <return>"readConcern"</return> option will default to the corresponding
  value from the MongoDB Connection URI.
  
  The <return>"readPreference"</return> option does not control the server to which the driver issues the operation;
  it will always be executed on this server object. Instead, it may be used when issuing the
  operation to a secondary (from a replica set connection, not standalone) or mongos node to ensure
  that the driver sets the wire protocol accordingly or adds the read preference to the operation,
  respectively.

<comment>Param:</comment>
  <info>string</info>                  <strong>$db</strong>       The name of the database on which to execute the command.
  <info>MongoDB\Driver\Command</info>  <strong>$command</strong>  The command to execute.
  <info>array|null</info>              <strong>$options</strong>  
                                    optionsOptionTypeDescriptionreadConcern<class>MongoDB\Driver\ReadConcern</class>
                                    A read concern to apply to the operation.  This option is
                                    available in MongoDB 3.2+ and will result in an exception at
                                    execution time if specified for an older server version.
                                    readPreference<class>MongoDB\Driver\ReadPreference</class> A read preference to
                                    use for selecting a server for the operation.
                                    session<class>MongoDB\Driver\Session</class> A session to associate with the
                                    operation.
                                    
                                    A read concern to apply to the operation.
                                    
                                    This option is available in MongoDB 3.2+ and will result in an
                                    exception at execution time if specified for an older server
                                    version.
                                    
                                    A read preference to use for selecting a server for the
                                    operation.
                                    
                                    A session to associate with the operation.
                                    
                                    If you are using a <return>"session"</return> which has a transaction in
                                    progress, you cannot specify a <return>"readConcern"</return> or <return>"writeConcern"</return>
                                    option. This will result in an
                                    <class>MongoDB\Driver\Exception\InvalidArgumentException</class> being thrown.
                                    Instead, you should set these two options when you create the
                                    transaction with MongoDB\Driver\Session::startTransaction.

<comment>Return:</comment>
  <info>MongoDB\Driver\Cursor</info>  Returns <class>MongoDB\Driver\Cursor</class> on success.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Command</class>
   * <class>MongoDB\Driver\Cursor</class>
   * <strong>MongoDB\Driver\Server::executeCommand()</strong>
   * <strong>MongoDB\Driver\Server::executeReadWriteCommand()</strong>
   * <strong>MongoDB\Driver\Server::executeWriteCommand()</strong>
   * <strong>MongoDB\Driver\Manager::executeReadCommand()</strong>


id: MongoDB\Driver\Server::executeReadWriteCommand
type: function
doc:
<comment>Description:</comment>
  Execute a database command that reads and writes on this server
  
  Executes the command on this server.
  
  This method will apply logic that is specific to commands that read and write (e.g. aggregate) and
  take the MongoDB server version into account. The <return>"readConcern"</return> and <return>"writeConcern"</return> options will
  default to the corresponding values from the MongoDB Connection URI.

<comment>Param:</comment>
  <info>string</info>                  <strong>$db</strong>       The name of the database on which to execute the command.
  <info>MongoDB\Driver\Command</info>  <strong>$command</strong>  The command to execute.
  <info>array|null</info>              <strong>$options</strong>  
                                    optionsOptionTypeDescriptionreadConcern<class>MongoDB\Driver\ReadConcern</class>
                                    A read concern to apply to the operation.  This option is
                                    available in MongoDB 3.2+ and will result in an exception at
                                    execution time if specified for an older server version.
                                    session<class>MongoDB\Driver\Session</class> A session to associate with the
                                    operation. writeConcern<class>MongoDB\Driver\WriteConcern</class> A write
                                    concern to apply to the operation.
                                    
                                    A read concern to apply to the operation.
                                    
                                    This option is available in MongoDB 3.2+ and will result in an
                                    exception at execution time if specified for an older server
                                    version.
                                    
                                    A session to associate with the operation.
                                    
                                    A write concern to apply to the operation.
                                    
                                    If you are using a <return>"session"</return> which has a transaction in
                                    progress, you cannot specify a <return>"readConcern"</return> or <return>"writeConcern"</return>
                                    option. This will result in an
                                    <class>MongoDB\Driver\Exception\InvalidArgumentException</class> being thrown.
                                    Instead, you should set these two options when you create the
                                    transaction with MongoDB\Driver\Session::startTransaction.

<comment>Return:</comment>
  <info>MongoDB\Driver\Cursor</info>  Returns <class>MongoDB\Driver\Cursor</class> on success.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Command</class>
   * <class>MongoDB\Driver\Cursor</class>
   * <strong>MongoDB\Driver\Server::executeCommand()</strong>
   * <strong>MongoDB\Driver\Server::executeReadCommand()</strong>
   * <strong>MongoDB\Driver\Server::executeWriteCommand()</strong>
   * <strong>MongoDB\Driver\Manager::executeReadWriteCommand()</strong>


id: MongoDB\Driver\Server::executeWriteCommand
type: function
doc:
<comment>Description:</comment>
  Execute a database command that writes on this server
  
  Executes the command on this server.
  
  This method will apply logic that is specific to commands that write (e.g. drop) and take the
  MongoDB server version into account. The <return>"writeConcern"</return> option will default to the corresponding
  value from the MongoDB Connection URI.
  
  This method is not intended to be used to execute insert, update, or delete commands. Users are
  encouraged to use <strong>MongoDB\Driver\Server::executeBulkWrite()</strong> for those commands.

<comment>Param:</comment>
  <info>string</info>                  <strong>$db</strong>       The name of the database on which to execute the command.
  <info>MongoDB\Driver\Command</info>  <strong>$command</strong>  The command to execute.
  <info>array|null</info>              <strong>$options</strong>  optionsOptionTypeDescriptionsession<class>MongoDB\Driver\Session</class> A
                                    session to associate with the operation.
                                    writeConcern<class>MongoDB\Driver\WriteConcern</class> A write concern to apply
                                    to the operation.
                                    
                                    A session to associate with the operation.
                                    
                                    A write concern to apply to the operation.
                                    
                                    If you are using a <return>"session"</return> which has a transaction in
                                    progress, you cannot specify a <return>"readConcern"</return> or <return>"writeConcern"</return>
                                    option. This will result in an
                                    <class>MongoDB\Driver\Exception\InvalidArgumentException</class> being thrown.
                                    Instead, you should set these two options when you create the
                                    transaction with MongoDB\Driver\Session::startTransaction.

<comment>Return:</comment>
  <info>MongoDB\Driver\Cursor</info>  Returns <class>MongoDB\Driver\Cursor</class> on success.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Command</class>
   * <class>MongoDB\Driver\Cursor</class>
   * <strong>MongoDB\Driver\Server::executeCommand()</strong>
   * <strong>MongoDB\Driver\Server::executeReadCommand()</strong>
   * <strong>MongoDB\Driver\Server::executeReadWriteCommand()</strong>
   * <strong>MongoDB\Driver\Manager::executeWriteCommand()</strong>


id: MongoDB\Driver\Server::getHost
type: function
doc:
<comment>Description:</comment>
  Returns the hostname of this server
  
  Returns the hostname of this server.

<comment>Return:</comment>
  <info>string</info>  Returns the hostname of this server.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Server::getInfo()</strong>
   * <strong>MongoDB\Driver\ServerDescription::getHost()</strong>


id: MongoDB\Driver\Server::getInfo
type: function
doc:
<comment>Description:</comment>
  Returns an array of information describing this server
  
  Returns an array of information describing the server. This array is derived from the most recent
  hello command response obtained through server monitoring.
  
  When the driver is connected to a load balancer, this method will return the backing server's
  hello command response from the initial connection handshake. This is in contrast to other methods
  (e.g. <strong>MongoDB\Driver\Server::getType()</strong>), which will return information about the load balancer
  itself.

<comment>Return:</comment>
  <info>array</info>  Returns an array of information describing this server.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\ServerDescription::getHelloResponse()</strong>
   * hello command in the MongoDB manual
   * Server Discovery and Monitoring Specification


id: MongoDB\Driver\Server::getLatency
type: function
doc:
<comment>Description:</comment>
  Returns the latency of this server in milliseconds
  
  Returns the latency of this server in milliseconds. This is the client's measured round trip time
  of a <return>hello</return> command.

<comment>Return:</comment>
  <info>integer|null</info>  Returns the latency of this server in milliseconds, or <info>null</info> if no latency has been
                measured (e.g. client is connected to a load balancer).

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Server::getInfo()</strong>
   * <strong>MongoDB\Driver\ServerDescription::getRoundTripTime()</strong>
   * Server Discovery and Monitoring Specification


id: MongoDB\Driver\Server::getPort
type: function
doc:
<comment>Description:</comment>
  Returns the port on which this server is listening
  
  Returns the port on which this server is listening.

<comment>Return:</comment>
  <info>int</info>  Returns the port on which this server is listening.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Server::getInfo()</strong>
   * <strong>MongoDB\Driver\ServerDescription::getPort()</strong>


id: MongoDB\Driver\Server::getServerDescription
type: function
doc:
<comment>Description:</comment>
  Returns a ServerDescription for this server
  
  Returns a <class>MongoDB\Driver\ServerDescription</class> for this server. This is an immutable value object that
  will describe the server at the time this method is called.

<comment>Return:</comment>
  <info>MongoDB\Driver\ServerDescription</info>  Returns a <class>MongoDB\Driver\ServerDescription</class> for this server.


id: MongoDB\Driver\Server::getTags
type: function
doc:
<comment>Description:</comment>
  Returns an array of tags describing this server in a replica set
  
  Returns an <info>array</info> of tags used to describe this server in a replica set. The array will contain
  zero or more <info>string</info> key and value pairs.

<comment>Return:</comment>
  <info>array</info>  Returns an <info>array</info> of tags used to describe this server in a replica set.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Server::getInfo()</strong>


id: MongoDB\Driver\Server::getType
type: function
doc:
<comment>Description:</comment>
  Returns an integer denoting the type of this server
  
  Returns an <info>int</info> denoting the type of this server. The value will correlate with a
  <class>MongoDB\Driver\Server</class> constant.

<comment>Return:</comment>
  <info>int</info>  Returns an <info>int</info> denoting the type of this server.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Server::getInfo()</strong>
   * <strong>MongoDB\Driver\ServerDescription::getType()</strong>


id: MongoDB\Driver\Server::isArbiter
type: function
doc:
<comment>Description:</comment>
  Checks if this server is an arbiter member of a replica set
  
  Returns whether this server is an arbiter member of a replica set.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if this server is an arbiter member of a replica set, and <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Server::getInfo()</strong>


id: MongoDB\Driver\Server::isHidden
type: function
doc:
<comment>Description:</comment>
  Checks if this server is a hidden member of a replica set
  
  Returns whether this server is a hidden member of a replica set.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if this server is a hidden member of a replica set, and <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Server::getInfo()</strong>


id: MongoDB\Driver\Server::isPassive
type: function
doc:
<comment>Description:</comment>
  Checks if this server is a passive member of a replica set
  
  Returns whether this server is a passive member of a replica set (i.e. its priority is <return>0</return>).

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if this server is a passive member of a replica set, and <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Server::getInfo()</strong>


id: MongoDB\Driver\Server::isPrimary
type: function
doc:
<comment>Description:</comment>
  Checks if this server is a primary member of a replica set
  
  Returns whether this server is a primary member of a replica set.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if this server is a primary member of a replica set, and <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Server::getInfo()</strong>


id: MongoDB\Driver\Server::isSecondary
type: function
doc:
<comment>Description:</comment>
  Checks if this server is a secondary member of a replica set
  
  Returns whether this server is a secondary member of a replica set.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if this server is a secondary member of a replica set, and <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Server::getInfo()</strong>


id: MongoDB\Driver\ServerApi::__construct
type: function
doc:
<comment>Description:</comment>
  Create a new ServerApi instance
  
  Creates a new <class>MongoDB\Driver\ServerApi</class> instance used to declare an API version when creating a
  <class>MongoDB\Driver\Manager</class>.

<comment>Param:</comment>
  <info>string</info>     <strong>$version</strong>            A server API version.
                                 
                                 Supported API versions are provided as constants in
                                 <class>MongoDB\Driver\ServerApi</class>. The only supported API version is
                                 <info>MongoDB\Driver\ServerApi::V1</info>.
  <info>bool|null</info>  <strong>$strict</strong>             If the <strong>$strict</strong> parameter is set to <info>true</info>, the server will yield an
                                 error for any command that is not part of the specified API
                                 version. If no value is provided, the server default value (<info>false</info>)
                                 is used.
  <info>bool|null</info>  <strong>$deprecationErrors</strong>  If the <strong>$deprecationErrors</strong> parameter is set to <info>true</info>, the server will
                                 yield an error when using a command that is deprecated in the
                                 specified API version. If no value is provided, the server default
                                 value (<info>false</info>) is used.


id: MongoDB\Driver\ServerApi::bsonSerialize
type: function
doc:
<comment>Description:</comment>
  Returns an object for BSON serialization

<comment>Return:</comment>
  <info>stdClass</info>  Returns an object for serializing the ServerApi as BSON.

<comment>See Also:</comment>
   * MongoDB\BSON\Serializable::bsonSerialize


id: MongoDB\Driver\ServerApi::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize a ServerApi

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\Driver\ServerApi</class>.

<comment>See Also:</comment>
   * MongoDB\Driver\ServerApi::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\Driver\ServerApi::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize a ServerApi

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\Driver\ServerApi</class>.

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

<comment>See Also:</comment>
   * MongoDB\Driver\ServerApi::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\Driver\ServerDescription
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\ServerDescription</class> class is a value object that represents a server to which the
  driver is connected. Instances of this class are returned by
  <strong>MongoDB\Driver\Server::getServerDescription()</strong> and <class>MongoDB\Driver\Monitoring\ServerChangedEvent</class>
  methods.


id: MongoDB\Driver\ServerDescription::TYPE_LOAD_BALANCER
type: constant
doc:
<comment>Description:</comment>
  Load balancer server type, returned by MongoDB\Driver\ServerDescription::getType.


id: MongoDB\Driver\ServerDescription::TYPE_MONGOS
type: constant
doc:
<comment>Description:</comment>
  Mongos server type, returned by MongoDB\Driver\ServerDescription::getType.


id: MongoDB\Driver\ServerDescription::TYPE_POSSIBLE_PRIMARY
type: constant
doc:
<comment>Description:</comment>
  Replica set possible primary server type, returned by MongoDB\Driver\ServerDescription::getType.
  
  A server may be identified as a possible primary if it has not yet been checked but another memory
  of the replica set thinks it is the primary.


id: MongoDB\Driver\ServerDescription::TYPE_RS_ARBITER
type: constant
doc:
<comment>Description:</comment>
  Replica set arbiter server type, returned by MongoDB\Driver\ServerDescription::getType.


id: MongoDB\Driver\ServerDescription::TYPE_RS_GHOST
type: constant
doc:
<comment>Description:</comment>
  Replica set ghost server type, returned by MongoDB\Driver\ServerDescription::getType.
  
  Servers may be identified as such in at least three situations: briefly during server startup; in
  an uninitialized replica set; or when the server is shunned (i.e. removed from the replica set
  config). They cannot be queried, nor can their host list be used to discover the current replica
  set configuration; however, the client may monitor this server in hope that it transitions to a
  more useful state.


id: MongoDB\Driver\ServerDescription::TYPE_RS_OTHER
type: constant
doc:
<comment>Description:</comment>
  Replica set other server type, returned by MongoDB\Driver\ServerDescription::getType.
  
  Such servers may be hidden, starting up, or recovering. They cannot be queried, but their hosts
  lists are useful for discovering the current replica set configuration.


id: MongoDB\Driver\ServerDescription::TYPE_RS_PRIMARY
type: constant
doc:
<comment>Description:</comment>
  Replica set primary server type, returned by MongoDB\Driver\ServerDescription::getType.


id: MongoDB\Driver\ServerDescription::TYPE_RS_SECONDARY
type: constant
doc:
<comment>Description:</comment>
  Replica set secondary server type, returned by MongoDB\Driver\ServerDescription::getType.


id: MongoDB\Driver\ServerDescription::TYPE_STANDALONE
type: constant
doc:
<comment>Description:</comment>
  Standalone server type, returned by MongoDB\Driver\ServerDescription::getType.


id: MongoDB\Driver\ServerDescription::TYPE_UNKNOWN
type: constant
doc:
<comment>Description:</comment>
  Unknown server type, returned by MongoDB\Driver\ServerDescription::getType.


id: MongoDB\Driver\ServerDescription::getHelloResponse
type: function
doc:
<comment>Description:</comment>
  Returns the server's most recent "hello" response
  
  Returns an array of information describing the server. This array is derived from the most recent
  (at the time the <class>MongoDB\Driver\ServerDescription</class> was constructed) hello command response obtained
  through server monitoring.
  
  When the driver is connected to a load balancer, this method will return an empty array since load
  balancers are not monitored. This is in contrast to <strong>MongoDB\Driver\Server::getInfo()</strong>, which would
  return the backing server's hello command response from the initial connection handshake.

<comment>Return:</comment>
  <info>array</info>  Returns an array of information describing this server.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Server::getInfo()</strong>
   * hello command in the MongoDB manual
   * Server Discovery and Monitoring Specification


id: MongoDB\Driver\ServerDescription::getHost
type: function
doc:
<comment>Description:</comment>
  Returns the hostname of this server
  
  Returns the hostname of this server.

<comment>Return:</comment>
  <info>string</info>  Returns the hostname of this server.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Server::getHost()</strong>


id: MongoDB\Driver\ServerDescription::getLastUpdateTime
type: function
doc:
<comment>Description:</comment>
  Returns the server's last update time in microseconds
  
  Returns the server's last update time in microseconds.
  
  The returned value is a monotonic timestamp, which starts at an arbitrary point. As such, it is
  only suitable to compare with other return values from
  <strong>MongoDB\Driver\ServerDescription::getLastUpdateTime()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the server's last update time in microseconds.


id: MongoDB\Driver\ServerDescription::getPort
type: function
doc:
<comment>Description:</comment>
  Returns the port on which this server is listening
  
  Returns the port on which this server is listening.

<comment>Return:</comment>
  <info>int</info>  Returns the port on which this server is listening.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Server::getPort()</strong>


id: MongoDB\Driver\ServerDescription::getRoundTripTime
type: function
doc:
<comment>Description:</comment>
  Returns the server's round trip time in milliseconds
  
  Returns the server's round trip time in milliseconds. This is the client's measurement of the
  duration of a hello command.

<comment>Return:</comment>
  <info>int|null</info>  Returns the server's round trip time in milliseconds.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Server::getLatency()</strong>


id: MongoDB\Driver\ServerDescription::getType
type: function
doc:
<comment>Description:</comment>
  Returns a string denoting the type of this server
  
  Returns a <info>string</info> denoting the type of this server. The value will correlate with a
  <class>MongoDB\Driver\ServerDescription</class> constant.

<comment>Return:</comment>
  <info>string</info>  Returns a <info>string</info> denoting the type of this server.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Server::getType()</strong>


id: MongoDB\Driver\Session
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\Session</class> class represents a client session and is returned by
  MongoDB\Driver\Manager::startSession. Commands, queries, and write operations may then be
  associated the session.


id: MongoDB\Driver\Session::TRANSACTION_STARTING
type: constant
doc:
<comment>Description:</comment>
  A transaction has been started, but no operation has been sent to the server.


id: MongoDB\Driver\Session::__construct
type: function
doc:
<comment>Description:</comment>
  Create a new Session (not used)
  
  <class>MongoDB\Driver\Session</class> objects are returned by MongoDB\Driver\Manager::startSession and cannot be
  constructed directly.

<comment>See Also:</comment>
   * <strong>MongoDB\Driver\Manager::startSession()</strong>


id: MongoDB\Driver\Session::abortTransaction
type: function
doc:
<comment>Description:</comment>
  Aborts a transaction
  
  Terminates the multi-document transaction and rolls back any data changes made by the operations
  within the transaction. That is, the transaction ends without saving any of the changes made by
  the operations in the transaction.

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

<comment>See Also:</comment>
   * MongoDB\Driver\Manager::startSession
   * MongoDB\Driver\Session::commitTransaction
   * MongoDB\Driver\Session::startTransaction


id: MongoDB\Driver\Session::advanceClusterTime
type: function
doc:
<comment>Description:</comment>
  Advances the cluster time for this session
  
  Advances the cluster time for this session. If the cluster time is less than or equal to the
  session's current cluster time, this function is a no-op.
  
  By using this method in conjunction with MongoDB\Driver\Session::advanceOperationTime to copy the
  cluster and operation times from another session, you can ensure that operations in this session
  are causally consistent with the last operation in the other session.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$clusterTime</strong>  The cluster time is a document containing a logical timestamp and
                              server signature. Typically, this value will be obtained by calling
                              MongoDB\Driver\Session::getClusterTime on another session object.

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

<comment>See Also:</comment>
   * MongoDB\Driver\Session::advanceOperationTime
   * MongoDB\Driver\Session::getClusterTime


id: MongoDB\Driver\Session::advanceOperationTime
type: function
doc:
<comment>Description:</comment>
  Advances the operation time for this session
  
  Advances the operation time for this session. If the operation time is less than or equal to the
  session's current operation time, this function is a no-op.
  
  By using this method in conjunction with MongoDB\Driver\Session::advanceClusterTime to copy the
  operation and cluster times from another session, you can ensure that operations in this session
  are causally consistent with the last operation in the other session.

<comment>Param:</comment>
  <info>MongoDB\BSON\TimestampInterface</info>  <strong>$operationTime</strong>  The operation time is a logical timestamp.
                                                   Typically, this value will be obtained by calling
                                                   MongoDB\Driver\Session::getOperationTime on
                                                   another session object.

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

<comment>See Also:</comment>
   * MongoDB\Driver\Session::advanceClusterTime
   * MongoDB\Driver\Session::getClusterTime


id: MongoDB\Driver\Session::commitTransaction
type: function
doc:
<comment>Description:</comment>
  Commits a transaction
  
  Saves the changes made by the operations in the multi-document transaction and ends the
  transaction. Until the commit, none of the data changes made from within the transaction are
  visible outside the transaction.

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

<comment>See Also:</comment>
   * MongoDB\Driver\Manager::startSession
   * MongoDB\Driver\Session::abortTransaction
   * MongoDB\Driver\Session::startTransaction
   * MongoDB\Driver\Exception\RuntimeException::hasErrorLabel


id: MongoDB\Driver\Session::endSession
type: function
doc:
<comment>Description:</comment>
  Terminates a session
  
  This method closes an existing session. If a transaction was associated with this session, the
  transaction will be aborted. After calling this method, applications should not invoke other
  methods on the session.
  
  Sessions are also closed during garbage collection. It should not be necessary to call this method
  under normal circumstances.

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

<comment>See Also:</comment>
   * MongoDB\Driver\Manager::startSession
   * MongoDB\Driver\Session::abortTransaction
   * MongoDB\Driver\Session::commitTransaction
   * MongoDB\Driver\Session::startTransaction


id: MongoDB\Driver\Session::getClusterTime
type: function
doc:
<comment>Description:</comment>
  Returns the cluster time for this session
  
  Returns the cluster time for this session. If the session has not been used for any operation and
  MongoDB\Driver\Session::advanceClusterTime has not been called, the cluster time will be <info>null</info>.

<comment>Return:</comment>
  <info>object|null</info>  Returns the cluster time for this session, or <info>null</info> if the session has no cluster
               time.

<comment>See Also:</comment>
   * MongoDB\Driver\Session::advanceClusterTime


id: MongoDB\Driver\Session::getLogicalSessionId
type: function
doc:
<comment>Description:</comment>
  Returns the logical session ID for this session
  
  Returns the logical session ID for this session, which may be used to identify this session's
  operations on the server.

<comment>Return:</comment>
  <info>object</info>  Returns the logical session ID for this session.


id: MongoDB\Driver\Session::getOperationTime
type: function
doc:
<comment>Description:</comment>
  Returns the operation time for this session
  
  Returns the operation time for this session. If the session has not been used for any operation
  and MongoDB\Driver\Session::advanceOperationTime has not been called, the operation time will be
  <info>null</info>

<comment>Return:</comment>
  <info>MongoDB\BSON\Timestamp|null</info>  Returns the operation time for this session, or <info>null</info> if the session
                               has no operation time.

<comment>See Also:</comment>
   * MongoDB\Driver\Session::advanceOperationTime


id: MongoDB\Driver\Session::getServer
type: function
doc:
<comment>Description:</comment>
  Returns the server to which this session is pinned
  
  Returns the <class>MongoDB\Driver\Server</class> to which this session is pinned. If the session is not pinned to
  a server, <info>null</info> will be returned.
  
  Session pinning is primarily used for sharded transactions, as all commands within a sharded
  transaction must be sent to the same mongos instance. This method is intended to be used by
  libraries built atop the extension to allow use of a pinned server instead of invoking server
  selection.

<comment>Return:</comment>
  <info>MongoDB\Driver\Server|null</info>  Returns the <class>MongoDB\Driver\Server</class> to which this session is pinned, or
                              <info>null</info> if the session is not pinned to any server.


id: MongoDB\Driver\Session::getTransactionOptions
type: function
doc:
<comment>Description:</comment>
  Returns options for the currently running transaction
  
  Returns options for the currently running transaction.

<comment>Return:</comment>
  <info>array|null</info>  Returns a <info>array</info> containing current transaction options, or <info>null</info> if no transaction is
              running.

<comment>See Also:</comment>
   * MongoDB\Driver\Session::getTransactionState


id: MongoDB\Driver\Session::getTransactionState
type: function
doc:
<comment>Description:</comment>
  Returns the current transaction state for this session
  
  Returns the transaction state for this session.

<comment>Return:</comment>
  <info>string</info>  Returns the current transaction state for this session.

<comment>See Also:</comment>
   * MongoDB\Driver\Session::isInTransaction
   * MongoDB\Driver\Session::getTransactionOptions


id: MongoDB\Driver\Session::isDirty
type: function
doc:
<comment>Description:</comment>
  Returns whether the session has been marked as dirty
  
  Returns whether the session has been marked as dirty (i.e. it has been used with a command that
  encountered a network error).

<comment>Return:</comment>
  <info>bool</info>  Returns whether the session has been marked as dirty.


id: MongoDB\Driver\Session::isInTransaction
type: function
doc:
<comment>Description:</comment>
  Returns whether a multi-document transaction is in progress
  
  Returns whether a multi-document transaction is currently in progress for this session. A
  transaction is considered "in progress" if it has been started but has not been committed or
  aborted.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if a transaction is currently in progress for this session, and <info>false</info>
        otherwise.

<comment>See Also:</comment>
   * MongoDB\Driver\Session::getTransactionState


id: MongoDB\Driver\Session::startTransaction
type: function
doc:
<comment>Description:</comment>
  Starts a transaction
  
  Starts a multi-document transaction associated with the session. At any given time, you can have
  at most one open transaction for a session. After starting a transaction, the session object must
  be passed to each operation via the <return>"session"</return> option (e.g.
  MongoDB\Driver\Manager::executeBulkWrite) in order to associate that operation with the
  transaction.
  
  Transactions can be committed through MongoDB\Driver\Session::commitTransaction, and aborted with
  MongoDB\Driver\Session::abortTransaction. Transactions are also automatically aborted when the
  session is closed from garbage collection or by explicitly calling
  MongoDB\Driver\Session::endSession.

<comment>Param:</comment>
  <info>array|null</info>  <strong>$options</strong>  Options can be passed as argument to this method. Each element in this
                        options array overrides the corresponding option from the
                        <return>"defaultTransactionOptions"</return> option, if set when starting the session with
                        MongoDB\Driver\Manager::startSession.
                        
                        optionsOptionTypeDescriptionmaxCommitTimeMSinteger The maximum amount of
                        time in milliseconds to allow a single <return>commitTransaction</return> command to run.  If
                        specified, <return>maxCommitTimeMS</return> must be a signed 32-bit integer greater than or
                        equal to zero. readConcern<class>MongoDB\Driver\ReadConcern</class> A read concern to apply
                        to the operation.  This option is available in MongoDB 3.2+ and will result
                        in an exception at execution time if specified for an older server version.
                        readPreference<class>MongoDB\Driver\ReadPreference</class> A read preference to use for
                        selecting a server for the operation.
                        writeConcern<class>MongoDB\Driver\WriteConcern</class> A write concern to apply to the
                        operation.
                        
                        The maximum amount of time in milliseconds to allow a single
                        <return>commitTransaction</return> command to run.
                        
                        If specified, <return>maxCommitTimeMS</return> must be a signed 32-bit integer greater than
                        or equal to zero.
                        
                        A read concern to apply to the operation.
                        
                        This option is available in MongoDB 3.2+ and will result in an exception at
                        execution time if specified for an older server version.
                        
                        A read preference to use for selecting a server for the operation.
                        
                        A write concern to apply to the operation.

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

<comment>See Also:</comment>
   * MongoDB\Driver\Manager::startSession
   * MongoDB\Driver\Session::commitTransaction
   * MongoDB\Driver\Session::abortTransaction


id: MongoDB\Driver\TopologyDescription
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\TopologyDescription</class> class is a value object that represents a topology to which
  the driver is connected. Instances of this class are returned by
  <class>MongoDB\Driver\Monitoring\TopologyChangedEvent</class> methods.


id: MongoDB\Driver\TopologyDescription::TYPE_LOAD_BALANCED
type: constant
doc:
<comment>Description:</comment>
  Load balanced topology, returned by MongoDB\Driver\TopologyDescription::getType.


id: MongoDB\Driver\TopologyDescription::TYPE_REPLICA_SET_NO_PRIMARY
type: constant
doc:
<comment>Description:</comment>
  Replica set with no primary server, returned by MongoDB\Driver\TopologyDescription::getType.


id: MongoDB\Driver\TopologyDescription::TYPE_REPLICA_SET_WITH_PRIMARY
type: constant
doc:
<comment>Description:</comment>
  Replica set with a primary server, returned by MongoDB\Driver\TopologyDescription::getType.


id: MongoDB\Driver\TopologyDescription::TYPE_SHARDED
type: constant
doc:
<comment>Description:</comment>
  Sharded cluster, returned by MongoDB\Driver\TopologyDescription::getType.


id: MongoDB\Driver\TopologyDescription::TYPE_SINGLE
type: constant
doc:
<comment>Description:</comment>
  Single server (i.e. direct connection), returned by MongoDB\Driver\TopologyDescription::getType.


id: MongoDB\Driver\TopologyDescription::TYPE_UNKNOWN
type: constant
doc:
<comment>Description:</comment>
  Unknown topology type, returned by MongoDB\Driver\TopologyDescription::getType.


id: MongoDB\Driver\TopologyDescription::getServers
type: function
doc:
<comment>Description:</comment>
  Returns the servers in the topology
  
  Returns an array of <class>MongoDB\Driver\ServerDescription</class> objects corresponding to the known servers in
  the topology.

<comment>Return:</comment>
  <info>array</info>  Returns an array of <class>MongoDB\Driver\ServerDescription</class> objects corresponding to the known
         servers in the topology.


id: MongoDB\Driver\TopologyDescription::getType
type: function
doc:
<comment>Description:</comment>
  Returns a string denoting the type of this topology
  
  Returns a <info>string</info> denoting the type of this topology. The value will correlate with a
  <class>MongoDB\Driver\TopologyDescription</class> constant.

<comment>Return:</comment>
  <info>string</info>  Returns a <info>string</info> denoting the type of this topology.


id: MongoDB\Driver\TopologyDescription::hasReadableServer
type: function
doc:
<comment>Description:</comment>
  Returns whether the topology has a readable server
  
  Returns whether the topology has a readable server or, if <strong>$readPreference</strong> is specified, a server
  matching the specified read preference.

<comment>Return:</comment>
  <info>bool</info>  Returns whether the topology has a readable server or, if <strong>$readPreference</strong> is specified, a
        server matching the specified read preference.


id: MongoDB\Driver\TopologyDescription::hasWritableServer
type: function
doc:
<comment>Description:</comment>
  Returns whether the topology has a writable server
  
  Returns whether the topology has a writable server.

<comment>Return:</comment>
  <info>bool</info>  Returns whether the topology has a writable server.


id: MongoDB\Driver\WriteConcern
type: class
doc:
<comment>Description:</comment>
  <class>MongoDB\Driver\WriteConcern</class> describes the level of acknowledgement requested from MongoDB for
  write operations to a standalone <return>mongod</return> or to replica sets or to sharded clusters. In sharded
  clusters, <return>mongos</return> instances will pass the write concern on to the shards.


id: MongoDB\Driver\WriteConcern::MAJORITY
type: constant
doc:
<comment>Description:</comment>
  Majority of all the members in the set; arbiters, non-voting members, passive members, hidden
  members and delayed members are all included in the definition of majority write concern.


id: MongoDB\Driver\WriteConcern::__construct
type: function
doc:
<comment>Description:</comment>
  Create a new WriteConcern
  
  Constructs a new <class>MongoDB\Driver\WriteConcern</class>, which is an immutable value object.

<comment>Param:</comment>
  <info>string|int</info>  <strong>$w</strong>         Write concernValueDescription1 Requests acknowledgement that the write
                         operation has propagated to the standalone <return>mongod</return> or the primary in a
                         replica set. This is the default write concern for MongoDB. 0 Requests no
                         acknowledgment of the write operation. However, this may return information
                         about socket exceptions and networking errors to the application. \<integer greater than 1&gt; Numbers greater than 1 are valid only for replica sets to request acknowledgement from specified number of members, including the primary. <info>MongoDB\Driver\WriteConcern::MAJORITY</info> Requests acknowledgment that write operations have propagated to the majority of voting nodes, including the primary, and have been written to the on-disk journal for these nodes.  Prior to MongoDB 3.0, this refers to the majority of replica set members (not just voting nodes). string A string value is interpereted as a tag set. Requests acknowledgement that the write operations have propagated to a replica set member with the specified tag.
                         
                         Requests acknowledgment that write operations have propagated to the
                         majority of voting nodes, including the primary, and have been written to
                         the on-disk journal for these nodes.
                         
                         Prior to MongoDB 3.0, this refers to the majority of replica set members
                         (not just voting nodes).
  <info>int|null</info>    <strong>$wtimeout</strong>  How long to wait (in milliseconds) for secondaries before failing.
                         
                         <return>wtimeout</return> causes write operations to return with an error
                         (<class>WriteConcernError</class>) after the specified limit, even if the required write
                         concern will eventually succeed. When these write operations return,
                         MongoDB does not undo successful data modifications performed before the
                         write concern exceeded the <return>wtimeout</return> time limit.
                         
                         If specified, <return>wtimeout</return> must be a signed 64-bit integer greater than or
                         equal to zero.
                         
                         Write concern timeoutValueDescription0Block indefinitely. This is the
                         default.\<integer greater than 0&gt; Milliseconds to wait until returning.
  <info>bool|null</info>   <strong>$journal</strong>   Wait until mongod has applied the write to the journal.

<comment>See Also:</comment>
   * Write Concern reference


id: MongoDB\Driver\WriteConcern::bsonSerialize
type: function
doc:
<comment>Description:</comment>
  Returns an object for BSON serialization

<comment>Return:</comment>
  <info>stdClass</info>  Returns an object for serializing the WriteConcern as BSON.

<comment>See Also:</comment>
   * MongoDB\BSON\Serializable::bsonSerialize
   * Write Concern reference


id: MongoDB\Driver\WriteConcern::getJournal
type: function
doc:
<comment>Description:</comment>
  Returns the WriteConcern's "journal" option

<comment>Return:</comment>
  <info>bool|null</info>  Returns the WriteConcern's "journal" option.

<comment>See Also:</comment>
   * Write Concern reference


id: MongoDB\Driver\WriteConcern::getW
type: function
doc:
<comment>Description:</comment>
  Returns the WriteConcern's "w" option

<comment>Return:</comment>
  <info>string|int|null</info>  Returns the WriteConcern's "w" option.

<comment>See Also:</comment>
   * Write Concern reference


id: MongoDB\Driver\WriteConcern::getWtimeout
type: function
doc:
<comment>Description:</comment>
  Returns the WriteConcern's "wtimeout" option

<comment>Return:</comment>
  <info>int</info>  Returns the WriteConcern's "wtimeout" option.

<comment>See Also:</comment>
   * Write Concern reference


id: MongoDB\Driver\WriteConcern::isDefault
type: function
doc:
<comment>Description:</comment>
  Checks if this is the default write concern
  
  Returns whether this is the default write concern (i.e. no options are specified). This method is
  primarily intended to be used in conjunction with MongoDB\Driver\Manager::getWriteConcern to
  determine whether the Manager has been constructed without any write concern options.
  
  The driver will not include a default write concern in its write operations (e.g.
  MongoDB\Driver\Manager::executeBulkWrite) in order to allow the server to apply its own default,
  which may have been modified. Libraries that access the Manager's write concern to include it in
  their own write commands should use this method to ensure that default write concerns are left
  unset.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if this is the default write concern and <info>false</info> otherwise.

<comment>See Also:</comment>
   * MongoDB\Driver\Manager::getWriteConcern
   * Modify Default Write Concern in the MongoDB manual
   * Write Concern reference


id: MongoDB\Driver\WriteConcern::serialize
type: function
doc:
<comment>Description:</comment>
  Serialize a WriteConcern

<comment>Return:</comment>
  <info>string</info>  Returns the serialized representation of the <class>MongoDB\Driver\WriteConcern</class>.

<comment>See Also:</comment>
   * MongoDB\Driver\WriteConcern::unserialize
   * <strong>serialize()</strong>
   * Serializing Objects


id: MongoDB\Driver\WriteConcern::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserialize a WriteConcern

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized <class>MongoDB\Driver\WriteConcern</class>.

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

<comment>See Also:</comment>
   * MongoDB\Driver\WriteConcern::serialize
   * <strong>unserialize()</strong>
   * Serializing Objects


id: MongoDB\Driver\WriteConcernError
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\WriteConcernError</class> class encapsulates information about a write concern error
  and may be returned by MongoDB\Driver\WriteResult::getWriteConcernError.


id: MongoDB\Driver\WriteConcernError::getCode
type: function
doc:
<comment>Description:</comment>
  Returns the WriteConcernError's error code

<comment>Return:</comment>
  <info>int</info>  Returns the WriteConcernError's error code.

<comment>See Also:</comment>
   * Write Concern reference


id: MongoDB\Driver\WriteConcernError::getInfo
type: function
doc:
<comment>Description:</comment>
  Returns metadata document for the WriteConcernError

<comment>Return:</comment>
  <info>object|null</info>  Returns the metadata document for the WriteConcernError, or <info>null</info> if no metadata is
               available.

<comment>See Also:</comment>
   * Write Concern reference


id: MongoDB\Driver\WriteConcernError::getMessage
type: function
doc:
<comment>Description:</comment>
  Returns the WriteConcernError's error message

<comment>Return:</comment>
  <info>string</info>  Returns the WriteConcernError's error message.

<comment>See Also:</comment>
   * Write Concern reference


id: MongoDB\Driver\WriteError
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\WriteError</class> class encapsulates information about a write error and may be
  returned as an array element from MongoDB\Driver\WriteResult::getWriteErrors.


id: MongoDB\Driver\WriteError::getCode
type: function
doc:
<comment>Description:</comment>
  Returns the WriteError's error code

<comment>Return:</comment>
  <info>int</info>  Returns the WriteError's error code.


id: MongoDB\Driver\WriteError::getIndex
type: function
doc:
<comment>Description:</comment>
  Returns the index of the write operation corresponding to this WriteError

<comment>Return:</comment>
  <info>int</info>  Returns the index of the write operation (from <class>MongoDB\Driver\BulkWrite</class>) corresponding to
       this WriteError.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\BulkWrite</class>


id: MongoDB\Driver\WriteError::getInfo
type: function
doc:
<comment>Description:</comment>
  Returns metadata document for the WriteError

<comment>Return:</comment>
  <info>object|null</info>  Returns the metadata document for the WriteError, or <info>null</info> if no metadata is
               available.


id: MongoDB\Driver\WriteError::getMessage
type: function
doc:
<comment>Description:</comment>
  Returns the WriteError's error message

<comment>Return:</comment>
  <info>string</info>  Returns the WriteError's error message.


id: MongoDB\Driver\WriteResult
type: class
doc:
<comment>Description:</comment>
  The <class>MongoDB\Driver\WriteResult</class> class encapsulates information about an executed
  <class>MongoDB\Driver\BulkWrite</class> and may be returned by MongoDB\Driver\Manager::executeBulkWrite.


id: MongoDB\Driver\WriteResult::getDeletedCount
type: function
doc:
<comment>Description:</comment>
  Returns the number of documents deleted

<comment>Return:</comment>
  <info>int|null</info>  Returns the number of documents deleted, or <info>null</info> if the write was not acknowledged.

<comment>See Also:</comment>
   * MongoDB\Driver\WriteResult::isAcknowledged


id: MongoDB\Driver\WriteResult::getInsertedCount
type: function
doc:
<comment>Description:</comment>
  Returns the number of documents inserted (excluding upserts)

<comment>Return:</comment>
  <info>int|null</info>  Returns the number of documents inserted (excluding upserts), or <info>null</info> if the write was
            not acknowledged.

<comment>See Also:</comment>
   * MongoDB\Driver\WriteResult::isAcknowledged


id: MongoDB\Driver\WriteResult::getMatchedCount
type: function
doc:
<comment>Description:</comment>
  Returns the number of documents selected for update
  
  If the update operation results in no change to the document (e.g. setting the value of a field to
  its current value), the matched count may be greater than the value returned by
  MongoDB\Driver\WriteResult::getModifiedCount.

<comment>Return:</comment>
  <info>int|null</info>  Returns the number of documents selected for update, or <info>null</info> if the write was not
            acknowledged.

<comment>See Also:</comment>
   * MongoDB\Driver\WriteResult::getModifiedCount
   * MongoDB\Driver\WriteResult::isAcknowledged


id: MongoDB\Driver\WriteResult::getModifiedCount
type: function
doc:
<comment>Description:</comment>
  Returns the number of existing documents updated
  
  If the update operation results in no change to the document (e.g. setting the value of a field to
  its current value), the modified count may be less than the value returned by
  MongoDB\Driver\WriteResult::getMatchedCount.

<comment>Return:</comment>
  <info>int|null</info>  Returns the number of existing documents updated, or <info>null</info> if the write was not
            acknowledged.
            
            The modified count is not available on versions of MongoDB before 2.6, which used the
            legacy wire protocol version (i.e. OP_UPDATE). If this is the case, the modified count
            will also be <info>null</info>.

<comment>See Also:</comment>
   * MongoDB\Driver\WriteResult::getMatchedCount
   * MongoDB\Driver\WriteResult::isAcknowledged


id: MongoDB\Driver\WriteResult::getServer
type: function
doc:
<comment>Description:</comment>
  Returns the server associated with this write result
  
  Returns the <class>MongoDB\Driver\Server</class> associated with this write result. This is the server that
  executed the <class>MongoDB\Driver\BulkWrite</class>.

<comment>Return:</comment>
  <info>MongoDB\Driver\Server</info>  Returns the <class>MongoDB\Driver\Server</class> associated with this write result.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\Server</class>


id: MongoDB\Driver\WriteResult::getUpsertedCount
type: function
doc:
<comment>Description:</comment>
  Returns the number of documents inserted by an upsert

<comment>Return:</comment>
  <info>int|null</info>  Returns the number of documents inserted by an upsert.

<comment>See Also:</comment>
   * MongoDB\Driver\WriteResult::getUpsertedIds
   * MongoDB\Driver\WriteResult::isAcknowledged


id: MongoDB\Driver\WriteResult::getUpsertedIds
type: function
doc:
<comment>Description:</comment>
  Returns an array of identifiers for upserted documents

<comment>Return:</comment>
  <info>array</info>  Returns an array of identifiers (i.e. <return>"_id"</return> field values) for upserted documents. The array
         keys will correspond to the index of the write operation (from <class>MongoDB\Driver\BulkWrite</class>)
         responsible for the upsert.

<comment>See Also:</comment>
   * MongoDB\Driver\WriteResult::getUpsertedCount
   * MongoDB\Driver\WriteResult::isAcknowledged


id: MongoDB\Driver\WriteResult::getWriteConcernError
type: function
doc:
<comment>Description:</comment>
  Returns any write concern error that occurred

<comment>Return:</comment>
  <info>MongoDB\Driver\WriteConcernError|null</info>  Returns a <class>MongoDB\Driver\WriteConcernError</class> if a write
                                         concern error was encountered during the write operation,
                                         and <info>null</info> otherwise.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\WriteConcern</class>
   * Write Concern reference


id: MongoDB\Driver\WriteResult::getWriteErrors
type: function
doc:
<comment>Description:</comment>
  Returns any write errors that occurred

<comment>Return:</comment>
  <info>array</info>  Returns an array of <class>MongoDB\Driver\WriteError</class> objects for any write errors encountered
         during the write operation. The array will be empty if no write errors occurred.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\WriteError</class>


id: MongoDB\Driver\WriteResult::isAcknowledged
type: function
doc:
<comment>Description:</comment>
  Returns whether the write was acknowledged
  
  If the write is acknowledged, other count fields will be available on the
  <class>MongoDB\Driver\WriteResult</class> object.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the write was acknowledged, and <info>false</info> otherwise.

<comment>See Also:</comment>
   * <class>MongoDB\Driver\WriteConcern</class>
   * Write Concern reference


id: MultipleIterator
type: class
doc:
<comment>Description:</comment>
  An Iterator that sequentially iterates over all attached iterators


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

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  The flags to set, according to the Flag Constants. <info>MultipleIterator::MIT_NEED_ALL</info> or
               <info>MultipleIterator::MIT_NEED_ANY</info> <info>MultipleIterator::MIT_KEYS_NUMERIC</info> or
               <info>MultipleIterator::MIT_KEYS_ASSOC</info>
               
               Defaults to <info>MultipleIterator::MIT_NEED_ALL</info>|<info>MultipleIterator::MIT_KEYS_NUMERIC</info>.

<comment>See Also:</comment>
   * Flag Constants
   * MultipleIterator::valid


id: MultipleIterator::attachIterator
type: function
doc:
<comment>Description:</comment>
  Attaches iterator information
  
  Attaches iterator information.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>Iterator</info>         <strong>$iterator</strong>  The new iterator to attach.
  <info>string|int|null</info>  <strong>$info</strong>      The associative information for the Iterator, which must be an <info>int</info>, a
                              <info>string</info>, or <info>null</info>.

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

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


id: MultipleIterator::containsIterator
type: function
doc:
<comment>Description:</comment>
  Checks if an iterator is attached
  
  Checks if an iterator is attached or not.
  
  本函数还未编写文档，仅有参数列表。

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

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

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


id: MultipleIterator::countIterators
type: function
doc:
<comment>Description:</comment>
  Gets the number of attached iterator instances
  
  Gets the number of attached iterator instances.
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>int</info>  The number of attached iterator instances (as an <info>int</info>).

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


id: MultipleIterator::current
type: function
doc:
<comment>Description:</comment>
  Gets the registered iterator instances
  
  Get the registered iterator instances current() result.
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> containing the current values of each attached iterator.

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


id: MultipleIterator::detachIterator
type: function
doc:
<comment>Description:</comment>
  Detaches an iterator
  
  Detaches an iterator.
  
  本函数还未编写文档，仅有参数列表。

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

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

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


id: MultipleIterator::getFlags
type: function
doc:
<comment>Description:</comment>
  Gets the flag information
  
  Gets information about the flags.
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>int</info>  Information about the flags, as an <info>int</info>.

<comment>See Also:</comment>
   * Flag Constants
   * MultipleIterator::__construct
   * MultipleIterator::setFlags


id: MultipleIterator::key
type: function
doc:
<comment>Description:</comment>
  Gets the registered iterator instances
  
  Get the registered iterator instances key() result.
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> of all registered iterator instances.

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


id: MultipleIterator::next
type: function
doc:
<comment>Description:</comment>
  Moves all attached iterator instances forward
  
  Moves all attached iterator instances forward.
  
  本函数还未编写文档，仅有参数列表。

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

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


id: MultipleIterator::rewind
type: function
doc:
<comment>Description:</comment>
  Rewinds all attached iterator instances
  
  Rewinds all attached iterator instances.
  
  本函数还未编写文档，仅有参数列表。

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

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


id: MultipleIterator::setFlags
type: function
doc:
<comment>Description:</comment>
  Sets flags
  
  Sets flags.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  The flags to set, according to the Flag Constants

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

<comment>See Also:</comment>
   * Flag Constants
   * MultipleIterator::__construct
   * MultipleIterator::getFlags


id: MultipleIterator::valid
type: function
doc:
<comment>Description:</comment>
  Checks the validity of sub iterators
  
  Checks the validity of sub iterators.
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if one or all sub iterators are valid depending on flags, otherwise <info>false</info>

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


id: NORM_IGNOREKASHIDA
type: constant
doc:
<comment>Description:</comment>
  Ignore Arabic kashida characters.
  
  Availability is dependent upon under lying library.


id: NoRewindIterator
type: class
doc:
<comment>Description:</comment>
  This iterator ignores rewind operations. This allows processing an iterator in multiple partial
  foreach loops.


id: NoRewindIterator::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a NoRewindIterator
  
  Constructs a NoRewindIterator.

<comment>Param:</comment>
  <info>Iterator</info>  <strong>$iterator</strong>  The iterator being used.

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


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

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

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


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

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

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


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

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

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


id: NoRewindIterator::rewind
type: function
doc:
<comment>Description:</comment>
  Prevents the rewind operation on the inner iterator
  
  Prevents the rewind operation on the inner iterator.

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


id: NoRewindIterator::valid
type: function
doc:
<comment>Description:</comment>
  Validates the iterator
  
  Checks whether the iterator is valid.
  
  本函数还未编写文档，仅有参数列表。

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

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


id: Normalizer
type: class
doc:
<comment>Description:</comment>
  Normalization is a process that involves transforming characters and sequences of characters into
  a formally-defined underlying representation. This process is most important when text needs to be
  compared for sorting and searching, but it is also used when storing text to ensure that the text
  is stored in a consistent representation.
  
  The Unicode Consortium has defined a number of normalization forms reflecting the various needs of
  applications: Normalization Form D (NFD) - Canonical Decomposition Normalization Form C (NFC) -
  Canonical Decomposition followed by Canonical Composition  Normalization Form KD (NFKD) -
  Compatibility Decomposition  Normalization Form KC (NFKC) - Compatibility Decomposition followed
  by Canonical Composition  The different forms are defined in terms of a set of transformations on
  the text, transformations that are expressed by both an algorithm and a set of data files.


id: Normalizer::FORM_C
type: constant
doc:
<comment>Description:</comment>
  Normalization Form C (NFC) - Canonical Decomposition followed by Canonical Composition


id: Normalizer::FORM_KC
type: constant
doc:
<comment>Description:</comment>
  Normalization Form KC (NFKC) - Compatibility Decomposition, followed by Canonical Composition


id: Normalizer::getRawDecomposition
type: function
doc:
<comment>Description:</comment>
  Gets the Decomposition_Mapping property for the given UTF-8 encoded code point
  
  面向对象风格
  
  过程化风格
  
  Gets the Decomposition_Mapping property, as specified in the Unicode Character Database (UCD), for
  the given UTF-8 encoded code point.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The input string, which should be a single, UTF-8 encoded, code point.

<comment>Return:</comment>
  <info>string|null</info>  Returns a <info>string</info> containing the Decomposition_Mapping property, if present in the
               UCD.
               
               Returns <info>null</info> if there is no Decomposition_Mapping property for the character.

<comment>See Also:</comment>
   * Normalizer::normalize
   * Normalizer::isNormalized


id: Normalizer::isNormalized
type: function
doc:
<comment>Description:</comment>
  Checks if the provided string is already in the specified normalization
     form
    
  
  面向对象风格
  
  过程化风格
  
  Checks if the provided string is already in the specified normalization form.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The input string to normalize
  <info>int</info>     <strong>$form</strong>    One of the normalization forms.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if normalized, <info>false</info> otherwise or if there an error

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


id: Normalizer::normalize
type: function
doc:
<comment>Description:</comment>
  Normalizes the input provided and returns the normalized string
    
  
  面向对象风格
  
  过程化风格
  
  Normalizes the input provided and returns the normalized string

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The input string to normalize
  <info>int</info>     <strong>$form</strong>    One of the normalization forms.

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

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


id: NumberFormatter
type: class
doc:
<comment>Description:</comment>
  Programs store and operate on numbers using a locale-independent binary representation. When
  displaying or printing a number it is converted to a locale-specific string. For example, the
  number 12345.67 is "12,345.67" in the US, "12 345,67" in France and "12.345,67" in Germany.
  
  By invoking the methods provided by the NumberFormatter class, you can format numbers, currencies,
  and percentages according to the specified or default locale. NumberFormatter is locale-sensitive
  so you need to create a new NumberFormatter for each locale. NumberFormatter methods format
  primitive-type numbers, such as double and output the number as a locale-specific string.
  
  For currencies you can use currency format type to create a formatter that returns a string with
  the formatted number and the appropriate currency sign. Of course, the NumberFormatter class is
  unaware of exchange rates so, the number output is the same regardless of the specified currency.
  This means that the same number has different monetary values depending on the currency locale. If
  the number is 9988776.65 the results will be: 9 988 776,65 € in France9.988.776,65 € in
  Germany$9,988,776.65 in the United States
  
  In order to format percentages, create a locale-specific formatter with percentage format type.
  With this formatter, a decimal fraction such as 0.75 is displayed as 75%.
  
  For more complex formatting, like spelled-out numbers, the rule-based number formatters are used.


id: NumberFormatter::CURRENCY_ACCOUNTING
type: constant
doc:
<comment>Description:</comment>
  Currency format for accounting, e.g., <return>($3.00)</return> for negative currency amount instead of <return>-$3.00</return>.
  Available as of PHP 7.4.1 and ICU 53.


id: NumberFormatter::DEFAULT_RULESET
type: constant
doc:
<comment>Description:</comment>
  The default rule set. This is only available with rule-based formatters.


id: NumberFormatter::PADDING_POSITION
type: constant
doc:
<comment>Description:</comment>
  The position at which padding will take place. See pad position constants for possible argument
  values.


id: NumberFormatter::PUBLIC_RULESETS
type: constant
doc:
<comment>Description:</comment>
  The public rule sets. This is only available with rule-based formatters. This is a read-only
  attribute. The public rulesets are returned as a single string, with each ruleset name delimited
  by ';' (semicolon).


id: NumberFormatter::ROUND_HALFDOWN
type: constant
doc:
<comment>Description:</comment>
  Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which
  case round down.


id: NumberFormatter::ROUND_HALFEVEN
type: constant
doc:
<comment>Description:</comment>
  Rounding mode to round towards the "nearest neighbor" unless both neighbors are equidistant, in
  which case, round towards the even neighbor.


id: NumberFormatter::ROUND_HALFUP
type: constant
doc:
<comment>Description:</comment>
  Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which
  case round up.


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

<comment>Param:</comment>
  <info>string</info>       <strong>$locale</strong>   Locale in which the number would be formatted (locale name, e.g. en_CA).
  <info>int</info>          <strong>$style</strong>    Style of the formatting, one of the  format style constants. If
                         <info>NumberFormatter::PATTERN_DECIMAL</info> or <info>NumberFormatter::PATTERN_RULEBASED</info> is
                         passed then the number format is opened using the given pattern, which must
                         conform to the syntax described in ICU DecimalFormat documentation or ICU
                         RuleBasedNumberFormat documentation, respectively.
  <info>string|null</info>  <strong>$pattern</strong>  Pattern string if the chosen style requires a pattern.

<comment>Return:</comment>
  <info>NumberFormatter|null</info>  Returns <class>NumberFormatter</class> object or <info>null</info> on error.

<comment>See Also:</comment>
   * <strong>numfmt_format()</strong>
   * <strong>numfmt_parse()</strong>


id: NumberFormatter::format
type: function
doc:
<comment>Description:</comment>
  Format a number
  
  面向对象风格
  
  过程化风格
  
  Format a numeric value according to the formatter rules.

<comment>Param:</comment>
  <info>NumberFormatter</info>  <strong>$formatter</strong>  <class>NumberFormatter</class> object.
  <info>int|float</info>        <strong>$num</strong>        The value to format. Can be <info>int</info> or <info>float</info>, other values will be
                               converted to a numeric value.
  <info>int</info>              <strong>$type</strong>       The  formatting type to use. Note that <info>NumberFormatter::TYPE_CURRENCY</info>
                               is not supported; use NumberFormatter::formatCurrency instead.

<comment>Return:</comment>
  <info>string|false</info>  Returns the string containing formatted value, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>numfmt_get_error_code()</strong>
   * <strong>numfmt_format_currency()</strong>
   * <strong>numfmt_parse()</strong>
   * <strong>msgfmt_format_message()</strong>


id: NumberFormatter::formatCurrency
type: function
doc:
<comment>Description:</comment>
  Format a currency value
  
  面向对象风格
  
  过程化风格
  
  Format the currency value according to the formatter rules.

<comment>Param:</comment>
  <info>NumberFormatter</info>  <strong>$formatter</strong>  <class>NumberFormatter</class> object.
  <info>float</info>            <strong>$amount</strong>     The numeric currency value.
  <info>string</info>           <strong>$currency</strong>   The 3-letter ISO 4217 currency code indicating the currency to use.

<comment>Return:</comment>
  <info>string|false</info>  String representing the formatted currency value,  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>numfmt_get_error_code()</strong>
   * <strong>numfmt_format()</strong>
   * <strong>numfmt_parse_currency()</strong>
   * <strong>msgfmt_format_message()</strong>


id: NumberFormatter::getAttribute
type: function
doc:
<comment>Description:</comment>
  Get an attribute
  
  面向对象风格
  
  过程化风格
  
  Get a numeric attribute associated with the formatter. An example of a numeric attribute is the
  number of integer digits the formatter will produce.

<comment>Param:</comment>
  <info>NumberFormatter</info>  <strong>$formatter</strong>  <class>NumberFormatter</class> object.
  <info>int</info>              <strong>$attribute</strong>  Attribute specifier - one of the  numeric attribute constants.

<comment>Return:</comment>
  <info>int|float|false</info>  Return attribute value on success, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>numfmt_get_error_code()</strong>
   * <strong>numfmt_get_text_attribute()</strong>
   * <strong>numfmt_set_attribute()</strong>


id: NumberFormatter::getErrorCode
type: function
doc:
<comment>Description:</comment>
  Get formatter's last error code
  
  面向对象风格
  
  过程化风格
  
  Get error code from the last function performed by the formatter.

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

<comment>Return:</comment>
  <info>int</info>  Returns error code from last formatter call.

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


id: NumberFormatter::getErrorMessage
type: function
doc:
<comment>Description:</comment>
  Get formatter's last error message
  
  面向对象风格
  
  过程化风格
  
  Get error message from the last function performed by the formatter.

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

<comment>Return:</comment>
  <info>string</info>  Returns error message from last formatter call.

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


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

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

<comment>Return:</comment>
  <info>string|false</info>  The locale name used to create the formatter, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>numfmt_create()</strong>
   * <strong>numfmt_get_error_code()</strong>


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

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

<comment>Return:</comment>
  <info>string|false</info>  Pattern <info>string</info> that is used by the formatter, or <info>false</info> if an error happens.

<comment>See Also:</comment>
   * <strong>numfmt_get_error_code()</strong>
   * <strong>numfmt_set_pattern()</strong>
   * <strong>numfmt_create()</strong>


id: NumberFormatter::getSymbol
type: function
doc:
<comment>Description:</comment>
  Get a symbol value
  
  面向对象风格
  
  过程化风格
  
  Get a symbol associated with the formatter. The formatter uses symbols to represent the special
  locale-dependent characters in a number, for example the percent sign. This API is not supported
  for rule-based formatters.

<comment>Param:</comment>
  <info>NumberFormatter</info>  <strong>$formatter</strong>  <class>NumberFormatter</class> object.
  <info>int</info>              <strong>$symbol</strong>     Symbol specifier, one of the  format symbol constants.

<comment>Return:</comment>
  <info>string|false</info>  The symbol string or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>numfmt_get_error_code()</strong>
   * <strong>numfmt_set_symbol()</strong>


id: NumberFormatter::getTextAttribute
type: function
doc:
<comment>Description:</comment>
  Get a text attribute
  
  面向对象风格
  
  过程化风格
  
  Get a text attribute associated with the formatter. An example of a text attribute is the suffix
  for positive numbers. If the formatter does not understand the attribute, <info>U_UNSUPPORTED_ERROR</info>
  error is produced. Rule-based formatters only understand <info>NumberFormatter::DEFAULT_RULESET</info> and
  <info>NumberFormatter::PUBLIC_RULESETS</info>.

<comment>Param:</comment>
  <info>NumberFormatter</info>  <strong>$formatter</strong>  <class>NumberFormatter</class> object.
  <info>int</info>              <strong>$attribute</strong>  Attribute specifier - one of the  text attribute constants.

<comment>Return:</comment>
  <info>string|false</info>  Return attribute value on success, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>numfmt_get_error_code()</strong>
   * <strong>numfmt_get_attribute()</strong>
   * <strong>numfmt_set_text_attribute()</strong>


id: NumberFormatter::parse
type: function
doc:
<comment>Description:</comment>
  Parse a number
  
  面向对象风格
  
  过程化风格
  
  Parse a string into a number using the current formatter rules.

<comment>Param:</comment>
  <info>NumberFormatter</info>  <strong>$formatter</strong>  <class>NumberFormatter</class> object.
  <info>string</info>           <strong>$string</strong>     The string to parse for the number.
  <info>int</info>              <strong>$type</strong>       The  formatting type to use. By default, <info>NumberFormatter::TYPE_DOUBLE</info>
                               is used. Note that <info>NumberFormatter::TYPE_CURRENCY</info> is not supported;
                               use NumberFormatter::parseCurrency instead.
  <info>int</info>              <strong>$offset</strong>     Offset in the string at which to begin parsing. On return, this value
                               will hold the offset at which parsing ended.

<comment>Return:</comment>
  <info>int|float|false</info>  The value of the parsed number or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>numfmt_get_error_code()</strong>
   * <strong>numfmt_format()</strong>
   * <strong>numfmt_parse_currency()</strong>


id: NumberFormatter::parseCurrency
type: function
doc:
<comment>Description:</comment>
  Parse a currency number
  
  面向对象风格
  
  过程化风格
  
  Parse a string into a float and a currency using the current formatter.

<comment>Param:</comment>
  <info>NumberFormatter</info>  <strong>$formatter</strong>  <class>NumberFormatter</class> object.
  <info>string</info>           <strong>$currency</strong>   Parameter to receive the currency name (3-letter ISO 4217 currency
                               code).
  <info>int</info>              <strong>$offset</strong>     Offset in the string at which to begin parsing. On return, this value
                               will hold the offset at which parsing ended.

<comment>Return:</comment>
  <info>float|false</info>  The parsed numeric value or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>numfmt_get_error_code()</strong>
   * <strong>numfmt_parse()</strong>
   * <strong>numfmt_format_currency()</strong>


id: NumberFormatter::setAttribute
type: function
doc:
<comment>Description:</comment>
  Set an attribute
  
  面向对象风格
  
  过程化风格
  
  Set a numeric attribute associated with the formatter. An example of a numeric attribute is the
  number of integer digits the formatter will produce.

<comment>Param:</comment>
  <info>NumberFormatter</info>  <strong>$formatter</strong>  <class>NumberFormatter</class> object.
  <info>int</info>              <strong>$attribute</strong>  Attribute specifier - one of the  numeric attribute constants.
  <info>int|float</info>        <strong>$value</strong>      The attribute value.

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

<comment>See Also:</comment>
   * <strong>numfmt_get_error_code()</strong>
   * <strong>numfmt_get_attribute()</strong>
   * <strong>numfmt_set_text_attribute()</strong>


id: NumberFormatter::setPattern
type: function
doc:
<comment>Description:</comment>
  Set formatter pattern
  
  面向对象风格
  
  过程化风格
  
  Set the pattern used by the formatter. Can not be used on a rule-based formatter.

<comment>Param:</comment>
  <info>NumberFormatter</info>  <strong>$formatter</strong>  <class>NumberFormatter</class> object.
  <info>string</info>           <strong>$pattern</strong>    Pattern in syntax described in ICU DecimalFormat documentation.

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

<comment>See Also:</comment>
   * <strong>numfmt_get_error_code()</strong>
   * <strong>numfmt_create()</strong>
   * <strong>numfmt_get_pattern()</strong>


id: NumberFormatter::setSymbol
type: function
doc:
<comment>Description:</comment>
  Set a symbol value
  
  面向对象风格
  
  过程化风格
  
  Set a symbol associated with the formatter. The formatter uses symbols to represent the special
  locale-dependent characters in a number, for example the percent sign. This API is not supported
  for rule-based formatters.

<comment>Param:</comment>
  <info>NumberFormatter</info>  <strong>$formatter</strong>  <class>NumberFormatter</class> object.
  <info>int</info>              <strong>$symbol</strong>     Symbol specifier, one of the  format symbol constants.
  <info>string</info>           <strong>$value</strong>      Text for the symbol.

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

<comment>See Also:</comment>
   * <strong>numfmt_get_error_code()</strong>
   * <strong>numfmt_get_symbol()</strong>


id: NumberFormatter::setTextAttribute
type: function
doc:
<comment>Description:</comment>
  Set a text attribute
  
  面向对象风格
  
  过程化风格
  
  Set a text attribute associated with the formatter. An example of a text attribute is the suffix
  for positive numbers. If the formatter does not understand the attribute, <info>U_UNSUPPORTED_ERROR</info>
  error is produced. Rule-based formatters only understand <info>NumberFormatter::DEFAULT_RULESET</info> and
  <info>NumberFormatter::PUBLIC_RULESETS</info>.

<comment>Param:</comment>
  <info>NumberFormatter</info>  <strong>$formatter</strong>  <class>NumberFormatter</class> object.
  <info>int</info>              <strong>$attribute</strong>  Attribute specifier - one of the text attribute constants.
  <info>string</info>           <strong>$value</strong>      Text for the attribute value.

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

<comment>See Also:</comment>
   * <strong>numfmt_get_error_code()</strong>
   * <strong>numfmt_get_text_attribute()</strong>
   * <strong>numfmt_set_attribute()</strong>


id: OAUTH_BAD_TIMESTAMP
type: constant
doc:
<comment>Description:</comment>
  oauth_timestamp 值不能被服务提供者接受。这种情况下，响应应该也包含 oauth_acceptable_timestamps 参
  数。


id: OAUTH_REQENGINE_CURL
type: constant
doc:
<comment>Description:</comment>
  使用 OAuth::setRequestEngine 来设置引擎为 Curl，与用 <info>OAUTH_REQENGINE_STREAMS</info> 的 PHP 流 截然相反。


id: OAUTH_REQENGINE_STREAMS
type: constant
doc:
<comment>Description:</comment>
  使用 OAuth::setRequestEngine 来设置引擎为 PHP 流，与用 <info>OAUTH_REQENGINE_CURL</info> 的 Curl 截然相反。


id: OAuth::__construct
type: function
doc:
<comment>Description:</comment>
  新建一个 OAuth 对象
  
  新建一个 OAuth 对象

<comment>Param:</comment>
  <info>string</info>  <strong>$consumer_key</strong>      由服务提供者提供的 consumer key 。
  <info>string</info>  <strong>$consumer_secret</strong>   由服务提供者提供的 consumer secret 。
  <info>string</info>  <strong>$signature_method</strong>  可选参数，用来定义使用哪种签名方法，默认为 <info>OAUTH_SIG_METHOD_HMACSHA1</info>
                             （HMAC-SHA1）。
  <info>int</info>     <strong>$auth_type</strong>         可选参数，用来定义如何传递 OAuth 参数给消费方，默认为
                             <info>OAUTH_AUTH_TYPE_AUTHORIZATION</info> （在  <return>Authorization</return> 头部）。


id: OAuth::__destruct
type: function
doc:
<comment>Description:</comment>
  析构函数
  
  析构函数。
  
  本函数还未编写文档，仅有参数列表。

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

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


id: OAuth::disableDebug
type: function
doc:
<comment>Description:</comment>
  关闭详细的调试
  
  关闭详细的请求信息（默认为关闭）。或者，将 调试 属性设置为 <info>false</info> 值来关闭调试。

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

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


id: OAuth::disableRedirects
type: function
doc:
<comment>Description:</comment>
  关闭重定向
  
  禁用自动跟随其后的重定向，这样，手动重定向请求。
  
  本函数还未编写文档，仅有参数列表。

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

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


id: OAuth::disableSSLChecks
type: function
doc:
<comment>Description:</comment>
  关闭 SSL 检查
  
  关闭通常的 SSL 对等证书和主机检查，但不用于生产环境。或者，设置 <strong>$sslChecks</strong> 成员为  <info>false</info> 来关闭
  SSL 检查。

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

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


id: OAuth::enableDebug
type: function
doc:
<comment>Description:</comment>
  启用详细调试
  
  打开用于调试的详细请求信息，调试信息存储在 <strong>$debugInfo</strong> 成员中。或者，可以设置 <strong>$debug</strong>  成员为一个非
  <info>false</info> 值来打开启用调试。

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

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


id: OAuth::enableRedirects
type: function
doc:
<comment>Description:</comment>
  启用重定向
  
  启用自动重定向，此项默认为启用。
  
  本函数还未编写文档，仅有参数列表。

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

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


id: OAuth::enableSSLChecks
type: function
doc:
<comment>Description:</comment>
  启用 SSL 检查
  
  启用通常的l SSL 对等证书和主机检查（默认为启用）。或者，可以设置 <strong>$sslChecks</strong> 成员为一个非 <info>false</info>  值
  来启用 SSL 检查。

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

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


id: OAuth::fetch
type: function
doc:
<comment>Description:</comment>
  获取一个 OAuth 受保护的资源
  
  获取一个资源。

<comment>Param:</comment>
  <info>string</info>  <strong>$protected_resource_url</strong>  OAuth 受保护资源的URL
  <info>array</info>   <strong>$extra_parameters</strong>        和资源请求一起发送的额外参数。
  <info>string</info>  <strong>$http_method</strong>             <info>OAUTH_HTTP_METHOD_*</info> 系列 OAUTH 常量之一，GET、POST、PUT、HEAD 或
                                   DELETE 其中的一个。
                                   
                                   HEAD （<info>OAUTH_HTTP_METHOD_HEAD</info> ）可以用于先于请求发现信息（如果
                                   OAuth 证书在 <return>Authorization</return> 头部）。
  <info>array</info>   <strong>$http_headers</strong>            HTTP 客户端头信息（像 User-Agent， Accept 等等这样的）。

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

<comment>See Also:</comment>
   * OAuth::getLastResponse
   * OAuth::getLastResponseInfo
   * OAuth::setToken


id: OAuth::generateSignature
type: function
doc:
<comment>Description:</comment>
  生成一个签名
  
  生成一个基于最终 HTTP 方法、URL 和 一个字符串/数组参数的签名。

<comment>Param:</comment>
  <info>string</info>  <strong>$http_method</strong>       用来请求的 HTTP 方法
  <info>string</info>  <strong>$url</strong>               用来请求的 URL
  <info>mixed</info>   <strong>$extra_parameters</strong>  字符串或数组的附加参数

<comment>Return:</comment>
  <info>string|false</info>  一个包含签名的字符串  或者在失败时返回 <info>false</info>


id: OAuth::getAccessToken
type: function
doc:
<comment>Description:</comment>
  获取一个访问令牌
  
  从服务提供者获取一个访问令牌、secret以及一些附带的响应参数 。

<comment>Param:</comment>
  <info>string</info>  <strong>$access_token_url</strong>     用于访问令牌 API  的 URL。
  <info>string</info>  <strong>$auth_session_handle</strong>  授权会话句柄，此参数在 OAuth 规范核心中没有任何引用， 但可能被大的提
                                供者实现。参见 ScalableOAuth 获取更多信息。
  <info>string</info>  <strong>$verifier_token</strong>       对于支持 1.0a 的服务提供者， 当交换请求令牌和访问令牌时，必须传递
                                <strong>$verifier_token</strong> 。如果 <strong>$verifier_token</strong> 存在于 <strong>$_GET</strong> 或 <strong>$_POST</strong> 中，它
                                将被自动传递，且调用者不需要指定一个  <strong>$verifier_token</strong> （通常如果访问
                                令牌在 oauth_callback URL 上被交换 ）。 参见 ScalableOAuth 获取更多
                                信息。
  <info>string</info>  <strong>$http_method</strong>          要使用的 HTTP 方法，例如 <return>GET</return> 或 <return>POST</return>。

<comment>Return:</comment>
  <info>array</info>  成功则返回一个包含解析过的 OAuth 响应的数组， 失败则返回 <info>false</info> 。

<comment>See Also:</comment>
   * OAuth::getLastResponse
   * OAuth::getLastResponseInfo
   * OAuth::setToken


id: OAuth::getCAPath
type: function
doc:
<comment>Description:</comment>
  获取 CA 信息
  
  获取证书授权的信息，其中包括通过 OAuth::setCaPath 设置的  ca_path 和 ca_info 。
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>array</info>  返回一个证书授权信息的 <info>数组</info> ，在返回的关联数组中明确地包含 <return>ca_path</return> 和 <return>ca_info</return> 键。

<comment>See Also:</comment>
   * OAuth::setCAPath
   * OAuth::getLastResponseInfo


id: OAuth::getLastResponse
type: function
doc:
<comment>Description:</comment>
  获取最后一次的响应
  
  获取最近一次请求的原始响应。

<comment>Return:</comment>
  <info>string</info>  返回一个最后一次响应的字符串。

<comment>See Also:</comment>
   * OAuth::getLastResponseInfo
   * OAuth::fetch


id: OAuth::getLastResponseHeaders
type: function
doc:
<comment>Description:</comment>
  获取最后一次响应的头信息
  
  获取最后一次响应的头信息。

<comment>Return:</comment>
  <info>string|false</info>  返回一个包含最后一次响应头信息的字符串  或者在失败时返回 <info>false</info> 。


id: OAuth::getLastResponseInfo
type: function
doc:
<comment>Description:</comment>
  获取关于最后一次响应的 HTTP 信息
  
  获取关于最后一次响应的 HTTP 信息。

<comment>Return:</comment>
  <info>array</info>  返回一个包含最后一次请求响应信息的数组。可以用到来自 <strong>curl_getinfo()</strong> 的常量。

<comment>See Also:</comment>
   * OAuth::fetch
   * OAuth::getLastResponse


id: OAuth::getRequestHeader
type: function
doc:
<comment>Description:</comment>
  生成 OAuth 头信息字符串签名
  
  生成基于最终 HTTP 方法、URL 和 一个字符串/数组附加参数的 OAuth 头信息字符串签名。

<comment>Param:</comment>
  <info>string</info>  <strong>$http_method</strong>       请求的 HTTP 方法。
  <info>string</info>  <strong>$url</strong>               请求的 URL 。
  <info>mixed</info>   <strong>$extra_parameters</strong>  字符串或数组类型的附带参数。

<comment>Return:</comment>
  <info>string|false</info>  返回 一个包含生成的请求头信息的字符串 r 或者在失败时返回 <info>false</info>


id: OAuth::getRequestToken
type: function
doc:
<comment>Description:</comment>
  获取一个请求令牌
  
  从服务提供者那里获取一个请求令牌、secret 、以及一些附带的响应参数。

<comment>Param:</comment>
  <info>string</info>  <strong>$request_token_url</strong>  请求令牌 API 的 URL。
  <info>string</info>  <strong>$callback_url</strong>       OAuth 回调 URL。 如果传递了 <strong>$callback_url</strong> 且为空值，则将其设置为
                              “oob”即到 OAuth 2009.1 咨询的地址。
  <info>string</info>  <strong>$http_method</strong>        要使用的 HTTP 方法，例如 <return>GET</return> 或 <return>POST</return>。

<comment>Return:</comment>
  <info>array</info>  成功则返回一个包含解析过了的 OAuth 响应的数组，失败则返回 <info>false</info> 。

<comment>See Also:</comment>
   * OAuth::getLastResponse
   * OAuth::getLastResponseInfo


id: OAuth::setAuthType
type: function
doc:
<comment>Description:</comment>
  设置授权类型
  
  设置 OAuth 参数应该放在哪里传递。

<comment>Param:</comment>
  <info>int</info>  <strong>$auth_type</strong>  <strong>$auth_type</strong>可能是下列标志之一（在 OAuth 1.0 规范的第 5.2 章节中按优先级降序排
                   列）： <info>OAUTH_AUTH_TYPE_AUTHORIZATION</info> 在 HTTP <return>Authorization</return> 头部传递 OAuth 参数。
                   <info>OAUTH_AUTH_TYPE_FORM</info> 将 OAuth 参数附加到 HTTP POST 请求主体中。
                   <info>OAUTH_AUTH_TYPE_URI</info> 将 OAuth 参数附加到请求的 URI 后面 。 <info>OAUTH_AUTH_TYPE_NONE</info>
                   无。
                   
                   在 HTTP <return>Authorization</return> 头部传递 OAuth 参数。
                   
                   将 OAuth 参数附加到 HTTP POST 请求主体中。
                   
                   将 OAuth 参数附加到请求的 URI 后面 。
                   
                   无。

<comment>Return:</comment>
  <info>bool</info>  如果参数设置正确则返回 <info>true</info> ，否则返回 <info>false</info> （比如，传递进一个无效的 <strong>$auth_type</strong> ）。


id: OAuth::setCAPath
type: function
doc:
<comment>Description:</comment>
  设置 CA 路径和信息
  
  设置证书授权中心（CA ）的路径和信息。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$ca_path</strong>  要设置的 CA 路径。
  <info>string</info>  <strong>$ca_info</strong>  要设置的 CA 信息。

<comment>Return:</comment>
  <info>mixed</info>  成功则返回 <info>true</info> ，如果 <strong>$ca_path</strong> 或 <strong>$ca_info</strong> 其中之一被认为无效则返回   <info>false</info> 。

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


id: OAuth::setNonce
type: function
doc:
<comment>Description:</comment>
  为后续请求设置现时标志
  
  为所有后续请求设置现时标志。

<comment>Param:</comment>
  <info>string</info>  <strong>$nonce</strong>  oauth_nonce 的值。

<comment>Return:</comment>
  <info>mixed</info>  成功返回 <info>true</info> ，如果 <strong>$nonce</strong>  被认为无效，则返回 <info>false</info> 。

<comment>See Also:</comment>
   * OAuth::setToken
   * OAuth::setAuthType
   * OAuth::setVersion


id: OAuth::setRSACertificate
type: function
doc:
<comment>Description:</comment>
  设置 RSA 证书
  
  设置 RSA 证书。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$cert</strong>  RSA 证书。

<comment>Return:</comment>
  <info>mixed</info>  成功则返回 <info>true</info> ，失败返回 <info>false</info> （例如，RSA证书不能被传递）。

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


id: OAuth::setRequestEngine
type: function
doc:
<comment>Description:</comment>
  设置目标请求引擎
  
  设置请求引擎，用于发送 HTTP 请求。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>int</info>  <strong>$reqengine</strong>  想要的请求引擎。 设为 <info>OAUTH_REQENGINE_STREAMS</info> 则使用 PHP 流，设为
                   <info>OAUTH_REQENGINE_CURL</info> 则使用 Curl。

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

<comment>See Also:</comment>
   * Curl
   * PHP 流
   * <class>OAuthException</class>


id: OAuth::setSSLChecks
type: function
doc:
<comment>Description:</comment>
  调整特定的SSL请求检查
  
  调整特定的SSL请求检查。
  
  本函数还未编写文档，仅有参数列表。

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

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


id: OAuth::setTimestamp
type: function
doc:
<comment>Description:</comment>
  设置时间戳
  
  为后续请求设置时间戳。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$timestamp</strong>  时间戳。

<comment>Return:</comment>
  <info>mixed</info>  返回 <info>true</info> ，除非 <strong>$timestamp</strong> 无效，则返回 <info>false</info> 。

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


id: OAuth::setToken
type: function
doc:
<comment>Description:</comment>
  设置令牌和 secret
  
  为后续请求设置令牌和 secret。

<comment>Param:</comment>
  <info>string</info>  <strong>$token</strong>         OAuth 令牌
  <info>string</info>  <strong>$token_secret</strong>  OAuth 令牌 secret。

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


id: OAuth::setVersion
type: function
doc:
<comment>Description:</comment>
  设置 OAuth 版本
  
  为随后请求设置 OAuth 版本

<comment>Param:</comment>
  <info>string</info>  <strong>$version</strong>  OAuth 版本，默认值为  "1.0"

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


id: OAuthProvider
type: class
doc:
<comment>Description:</comment>
  管理一个  OAuth 提供者类。
  
  参考一个外部的深入教程 写一个 OAuth 提供者服务，用来亲自实践提供服务。也可以参考 OAuth 扩展源代码
  里的 OAuth 提供者例子 。


id: OAuthProvider::__construct
type: function
doc:
<comment>Description:</comment>
  新建一个  OAuthProvider 对象
  
  发起一个新的 <class>OAuthProvider</class> <info>对象</info>。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>array</info>  <strong>$params_array</strong>  设置限制 CLI SAPI 的可选参数。

<comment>Return:</comment>
  <info>unknown</info>  返回一个 <class>OAuthProvider</class> <info>对象</info>。

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


id: OAuthProvider::addRequiredParameter
type: function
doc:
<comment>Description:</comment>
  添加必需的参数
  
  添加必需的 oauth 提供者参数。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$req_params</strong>  必需的参数。

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

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


id: OAuthProvider::callTimestampNonceHandler
type: function
doc:
<comment>Description:</comment>
  调用 timestampNonceHandler 回调函数
  
  调用注册的时间戳句柄回调函数，此回调函数通过 OAuthProvider::timestampNonceHandler 设置。
  
  本函数还未编写文档，仅有参数列表。

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

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


id: OAuthProvider::callconsumerHandler
type: function
doc:
<comment>Description:</comment>
  调用 consumerNonceHandler 回调函数
  
  调用注册的消费者句柄回调函数，此回调函数通过 OAuthProvider::consumerHandler 设置。
  
  本函数还未编写文档，仅有参数列表。

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

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


id: OAuthProvider::calltokenHandler
type: function
doc:
<comment>Description:</comment>
  调用 tokenNonceHandler 回调函数
  
  调用注册的令牌句柄回调函数，此回调函数通过 OAuthProvider::tokenHandler 设置。
  
  本函数还未编写文档，仅有参数列表。

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

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


id: OAuthProvider::checkOAuthRequest
type: function
doc:
<comment>Description:</comment>
  检查一个 oauth 请求
  
  检查一个 OAuth 请求。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$uri</strong>     可选的 URI 或终点。
  <info>string</info>  <strong>$method</strong>  HTTP 方法。 可选 <info>OAUTH_HTTP_METHOD_*</info> OAuth 常量 其中之一传递。

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

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


id: OAuthProvider::consumerHandler
type: function
doc:
<comment>Description:</comment>
  设置 consumerHandler 句柄回调函数
  
  设置消费者句柄回调函数，并将在后面通过 OAuthProvider::callConsumerHandler 被调用。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback_function</strong>  <info>回调类型</info> 函数名。

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

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


id: OAuthProvider::generateToken
type: function
doc:
<comment>Description:</comment>
  生成一个随机令牌
  
  生成一个伪随机字节的 <info>字符串</info> 。

<comment>Param:</comment>
  <info>int</info>   <strong>$size</strong>    想要的令牌长度，单位为字节。
  <info>bool</info>  <strong>$strong</strong>  设置为 <info>true</info> 则意味着将对熵使用 <return>/dev/random</return> ，否则使用非阻塞的 <return>/dev/urandom</return>。在
                 Windows 平台将忽略此参数。

<comment>Return:</comment>
  <info>string</info>  生成的令牌，一个以字节为单位的 <info>字符串</info> 。

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


id: OAuthProvider::is2LeggedEndpoint
type: function
doc:
<comment>Description:</comment>
  is2LeggedEndpoint 
  
  2-legged 流程，或请求签名。不需要令牌。
  
  本函数还未编写文档，仅有参数列表。

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

<comment>Return:</comment>
  <info>void</info>  返回一个 <class>OAuthProvider</class> <info>对象</info>.

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


id: OAuthProvider::isRequestTokenEndpoint
type: function
doc:
<comment>Description:</comment>
  设置 isRequestTokenEndpoint
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>bool</info>  <strong>$will_issue_request_token</strong>  设置是否发布一个请求令牌，从而决定 OAuthProvider::tokenHandler 是
                                   否需要被调用。

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

<comment>See Also:</comment>
   * OAuthProvider::setRequestTokenPath
   * OAuthProvider::reportProblem


id: OAuthProvider::removeRequiredParameter
type: function
doc:
<comment>Description:</comment>
  移除一个必需的参数
  
  移除一个必需的参数。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$req_params</strong>  要被移除的必需参数。

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

<comment>See Also:</comment>
   * OAuthProvider::setParam
   * OAuthProvider::addRequiredParameter


id: OAuthProvider::reportProblem
type: function
doc:
<comment>Description:</comment>
  报告问题
  
  将问题作为一个 <class>OAuthException</class> 异常传入，可能出现的问题在  OAuth 常量 章节里已列出。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$oauthexception</strong>  <class>OAuthException</class> 类。

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

<comment>See Also:</comment>
   * OAuthProvider::checkOAuthRequest
   * OAuthProvider::isRequestTokenEndpoint


id: OAuthProvider::setParam
type: function
doc:
<comment>Description:</comment>
  设置一个参数
  
  设置一个参数。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$param_key</strong>  参数的 key 。
  <info>mixed</info>   <strong>$param_val</strong>  参数的值，此为可选项。
                      
                      若要从签名验证中排除参数，请将其值设置为 <info>null</info>。

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

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


id: OAuthProvider::setRequestTokenPath
type: function
doc:
<comment>Description:</comment>
  设置请求令牌路径
  
  设置请求令牌路径。
  
  本函数还未编写文档，仅有参数列表。

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

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

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


id: OAuthProvider::timestampNonceHandler
type: function
doc:
<comment>Description:</comment>
  设置 timestampNonceHandler 句柄回调函数
  
  设置时间戳 nonce 句柄回调函数，此函数将在后面被 OAuthProvider::callTimestampNonceHandler 调用。跟
  时间戳/nonce相关的错误将被抛给此回调函数。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback_function</strong>  <info>回调类型</info> 的函数名。

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

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


id: OAuthProvider::tokenHandler
type: function
doc:
<comment>Description:</comment>
  设置 tokenHandler 句柄回调函数
  
  设置令牌句柄的回调函数，此回调函数将在后面被 OAuthProvider::callTokenHandler 调用。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback_function</strong>  <info>回调类型</info> 的函数名。

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

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


id: OCICollection
type: class
doc:
<comment>Description:</comment>
  OCI8 Collection functionality.
  
  The <class>OCI-Collection</class> class was renamed to <class>OCICollection</class> in PHP 8 OCI8 3.0.0 to align with PHP naming
  standards.


id: OCICollection::append
type: function
doc:
<comment>Description:</comment>
  Appends element to the collection
  
  Appends element to the end of the collection.

<comment>Param:</comment>
  <info>string</info>  <strong>$value</strong>  The value to be added to the collection.

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

<comment>See Also:</comment>
   * 


id: OCICollection::assign
type: function
doc:
<comment>Description:</comment>
  Assigns a value to the collection from another existing collection
  
  Assigns a value to the collection from another, previously created collection. Both collections
  must be created with  <strong>oci_new_collection()</strong> prior to using them.

<comment>Param:</comment>
  <info>OCICollection</info>  <strong>$from</strong>  An instance of OCICollection.

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

<comment>See Also:</comment>
   * 


id: OCICollection::assignElem
type: function
doc:
<comment>Description:</comment>
  Assigns a value to the element of the collection
  
  Assigns a value to the element with index <strong>$index</strong>.

<comment>Param:</comment>
  <info>int</info>     <strong>$index</strong>  The element index. First index is 0.
  <info>string</info>  <strong>$value</strong>  Can be a string or a number.

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

<comment>See Also:</comment>
   * 


id: OCICollection::free
type: function
doc:
<comment>Description:</comment>
  Frees the resources associated with the collection object
  
  Frees the resources associated with the collection object.

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

<comment>See Also:</comment>
   * 


id: OCICollection::getElem
type: function
doc:
<comment>Description:</comment>
  Returns value of the element
  
  Returns element's value with the index <strong>$index</strong> (0-based).

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>  The element index. First index is 0.

<comment>Return:</comment>
  <info>string|float|null|false</info>  Returns <info>false</info> if such element doesn't exist; <info>null</info> if element is <info>null</info>;
                           string if element is column of a string datatype or number if element is
                           numeric field.

<comment>See Also:</comment>
   * 


id: OCICollection::max
type: function
doc:
<comment>Description:</comment>
  Returns the maximum number of elements in the collection
  
  Returns the maximum number of elements in the collection.

<comment>Return:</comment>
  <info>int|false</info>  Returns the maximum number as an integer, or <info>false</info> on errors.
             
             If the returned value is 0, then the number of elements is not limited.

<comment>See Also:</comment>
   * 


id: OCICollection::size
type: function
doc:
<comment>Description:</comment>
  Returns size of the collection
  
  Returns the size of the collection.

<comment>Return:</comment>
  <info>int|false</info>  Returns the number of elements in the collection or <info>false</info> on error.

<comment>See Also:</comment>
   * 


id: OCICollection::trim
type: function
doc:
<comment>Description:</comment>
  Trims elements from the end of the collection
  
  Trims <strong>$num</strong> of elements from the end of the collection.

<comment>Param:</comment>
  <info>int</info>  <strong>$num</strong>  The number of elements to be trimmed.

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

<comment>See Also:</comment>
   * 


id: OCILob
type: class
doc:
<comment>Description:</comment>
  OCI8 LOB functionality for large binary (BLOB) and character (CLOB) objects.
  
  The <class>OCI-Lob</class> class was renamed to <class>OCILob</class> in PHP 8 and PECL OCI8 3.0.0 to align with PHP naming
  standards.


id: OCILob::append
type: function
doc:
<comment>Description:</comment>
  Appends data from the large object to another large object
  
  Appends data from the large object to the end of another large object.
  
  Writing to the large object with this method will fail if buffering was previously enabled. You
  must disable buffering before appending. You may need to flush buffers with  before disabling
  buffering.

<comment>Param:</comment>
  <info>OCILob</info>  <strong>$from</strong>  The copied LOB.

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

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


id: OCILob::close
type: function
doc:
<comment>Description:</comment>
  Closes LOB descriptor
  
  Closes descriptor of LOB or FILE. This function should be used only with .

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

<comment>See Also:</comment>
   * 


id: OCILob::eof
type: function
doc:
<comment>Description:</comment>
  Tests for end-of-file on a large object's descriptor
  
  Tells whether the internal pointer of large object is at the end of LOB.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if internal pointer of large object is at the end of LOB. Otherwise returns
        <info>false</info>.

<comment>See Also:</comment>
   * 


id: OCILob::erase
type: function
doc:
<comment>Description:</comment>
  Erases a specified portion of the internal LOB data
  
  Erases a specified portion of the internal LOB data starting at a specified <strong>$offset</strong>. If called
  without parameters, it erases all LOB data.
  
  For BLOBs, erasing means that the existing LOB value is overwritten with zero-bytes. For CLOBs,
  the existing LOB value is overwritten with spaces.

<comment>Param:</comment>
  <info>int|null</info>  <strong>$offset</strong>  
  <info>int|null</info>  <strong>$length</strong>  

<comment>Return:</comment>
  <info>int|false</info>  Returns the actual number of characters/bytes erased  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * 


id: OCILob::export
type: function
doc:
<comment>Description:</comment>
  Exports LOB's contents to a file
  
  Exports LOB contents to a file.

<comment>Param:</comment>
  <info>string</info>    <strong>$filename</strong>  Path to the file.
  <info>int|null</info>  <strong>$offset</strong>    Indicates from where to start exporting.
  <info>int|null</info>  <strong>$length</strong>    Indicates the length of data to be exported.

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

<comment>See Also:</comment>
   * 


id: OCILob::flush
type: function
doc:
<comment>Description:</comment>
  Flushes/writes buffer of the LOB to the server
  
  <strong>OCILob::flush()</strong> actually writes data to the server.

<comment>Param:</comment>
  <info>int</info>  <strong>$flag</strong>  By default, resources are not freed, but using flag  <info>OCI_LOB_BUFFER_FREE</info> you can do it
              explicitly. Be sure you know what you're doing - next read/write operation to the same
              part of LOB will involve a round-trip to the server and initialize new buffer
              resources. It is recommended to use  <info>OCI_LOB_BUFFER_FREE</info> flag only when you are not
              going to work with the LOB anymore.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。
        
        Returns <info>false</info> if buffering was not enabled or an error occurred.

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


id: OCILob::free
type: function
doc:
<comment>Description:</comment>
  Frees resources associated with the LOB descriptor
  
  Frees resources associated with the descriptor, previously allocated with  <strong>oci_new_descriptor()</strong>.

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


id: OCILob::getBuffering
type: function
doc:
<comment>Description:</comment>
  Returns current state of buffering for the large object
  
  Tells whether the buffering for the large object is on or off.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>false</info> if buffering for the large object is off and <info>true</info> if buffering is used.

<comment>See Also:</comment>
   * 


id: OCILob::import
type: function
doc:
<comment>Description:</comment>
  Imports file data to the LOB
  
  Writes data from the <strong>$filename</strong> in to the current position of large object.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Path to the file.

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

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


id: OCILob::load
type: function
doc:
<comment>Description:</comment>
  Returns large object's contents
  
  Returns large object's contents. As script execution is terminated when the memory_limit is
  reached, ensure that the LOB does not exceed this limit. In most cases it's recommended to use
  instead.

<comment>Return:</comment>
  <info>string|false</info>  Returns the contents of the object, or <info>false</info> on errors.

<comment>See Also:</comment>
   * 


id: OCILob::read
type: function
doc:
<comment>Description:</comment>
  Reads part of the large object
  
  Reads <strong>$length</strong> of bytes (BLOB) or characters (CLOB) from the current position of LOB's internal
  pointer.
  
  Reading stops when <strong>$length</strong> of bytes have been read for a BLOB, when <strong>$length</strong> of characters have
  been read for a CLOB, or when the end of the large object is reached. Internal pointer of the
  large object will be shifted on the amount of bytes/characters read.

<comment>Param:</comment>
  <info>int</info>  <strong>$length</strong>  The length of data to read, in bytes (BLOB) or characters (CLOB). Large values will
                be rounded down to 1 MB.

<comment>Return:</comment>
  <info>string|false</info>  Returns the contents as a string,  或者在失败时返回 <info>false</info>.

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


id: OCILob::rewind
type: function
doc:
<comment>Description:</comment>
  Moves the internal pointer to the beginning of the large object
  
  Sets the internal pointer to the beginning of the large object.

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

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


id: OCILob::save
type: function
doc:
<comment>Description:</comment>
  Saves data to the large object
  
  Saves <strong>$data</strong> to the large object.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>    The data to be saved.
  <info>int</info>     <strong>$offset</strong>  Can be used to indicate offset from the beginning of the large object.

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

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


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


id: OCILob::seek
type: function
doc:
<comment>Description:</comment>
  Sets the internal pointer of the large object
  
  Sets the internal pointer of the large object.

<comment>Param:</comment>
  <info>int</info>  <strong>$offset</strong>  Indicates the amount of bytes, on which internal pointer should be moved from the
                position, pointed by <strong>$whence</strong>.
  <info>int</info>  <strong>$whence</strong>  May be one of: <info>OCI_SEEK_SET</info> - sets the position equal to  <strong>$offset</strong> <info>OCI_SEEK_CUR</info> -
                adds <strong>$offset</strong>  bytes to the current position   <info>OCI_SEEK_END</info> - adds <strong>$offset</strong> bytes to
                the end of large object (use negative value to move to a position before the end of
                large object)

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

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


id: OCILob::setBuffering
type: function
doc:
<comment>Description:</comment>
  Changes current state of buffering for the large object
  
  Sets the buffering for the large object, depending on the value of the <strong>$mode</strong> parameter.
  
  Use of this function may provide performance improvements by buffering small reads and writes of
  LOBs by reducing the number of network round-trips and LOB versions.  <strong>OCILob::flush()</strong> should be
  used to flush buffers, when you have finished working with the large object.

<comment>Param:</comment>
  <info>bool</info>  <strong>$mode</strong>  <info>true</info> for on and <info>false</info> for off.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 Repeated calls to this method with the same flag
        will return <info>true</info>.

<comment>See Also:</comment>
   * 


id: OCILob::size
type: function
doc:
<comment>Description:</comment>
  Returns size of large object
  
  Gets the size of the large object.

<comment>Return:</comment>
  <info>int|false</info>  Returns length of large object value  或者在失败时返回 <info>false</info>. Empty objects have zero
             length.


id: OCILob::tell
type: function
doc:
<comment>Description:</comment>
  Returns the current position of internal pointer of large object
  
  Gets the current position of a LOB's internal pointer.

<comment>Return:</comment>
  <info>int|false</info>  Returns current position of a LOB's internal pointer or <info>false</info> if an error occurred.

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


id: OCILob::truncate
type: function
doc:
<comment>Description:</comment>
  Truncates large object
  
  Truncates the LOB.

<comment>Param:</comment>
  <info>int</info>  <strong>$length</strong>  If provided, this method will truncate the LOB to <strong>$length</strong> bytes. Otherwise, it will
                completely purge the LOB.

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

<comment>See Also:</comment>
   * 


id: OCILob::write
type: function
doc:
<comment>Description:</comment>
  Writes data to the large object
  
  Writes data from the parameter <strong>$data</strong> into the current position of LOB's internal pointer.

<comment>Param:</comment>
  <info>string</info>    <strong>$data</strong>    The data to write in the LOB.
  <info>int|null</info>  <strong>$length</strong>  If this parameter is an integer, writing will stop after <strong>$length</strong> bytes have
                     been written or the end of <strong>$data</strong> is reached, whichever comes first.

<comment>Return:</comment>
  <info>int|false</info>  Returns the number of bytes written  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * 


id: OCILob::writeTemporary
type: function
doc:
<comment>Description:</comment>
  Writes a temporary large object
  
  Creates a temporary large object and writes <strong>$data</strong> to it.
  
  You should use  when you are done with this object.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The data to write.
  <info>int</info>     <strong>$type</strong>  Can be one of the following: <info>OCI_TEMP_BLOB</info> is used to create temporary BLOBs
                 <info>OCI_TEMP_CLOB</info> is used to create temporary CLOBs

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

<comment>See Also:</comment>
   * 


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


id: OCI_ASSOC
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_fetch_all()</strong> and <strong>oci_fetch_array()</strong> to get results as an associative array.


id: OCI_BOTH
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_fetch_all()</strong> and <strong>oci_fetch_array()</strong> to get results as an array with both associative
  and number indices.


id: OCI_B_BFILE
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_bind_by_name()</strong> when binding BFILEs.


id: OCI_B_BIN
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_bind_by_name()</strong> to bind RAW values.


id: OCI_B_BLOB
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_bind_by_name()</strong> when binding BLOBs.


id: OCI_B_BOL
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_bind_by_name()</strong> to bind a PL/SQL BOOLEAN variable.


id: OCI_B_CFILEE
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_bind_by_name()</strong> when binding CFILEs.


id: OCI_B_CLOB
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_bind_by_name()</strong> when binding CLOBs.


id: OCI_B_CURSOR
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_bind_by_name()</strong> when binding cursors, previously allocated with <strong>oci_new_descriptor()</strong>.


id: OCI_B_INT
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_bind_array_by_name()</strong> to bind arrays of INTEGER.


id: OCI_B_NTY
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_bind_by_name()</strong> when binding named data types.


id: OCI_B_NUM
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_bind_array_by_name()</strong> to bind arrays of NUMBER.


id: OCI_B_ROWID
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_bind_by_name()</strong> when binding ROWIDs.


id: OCI_COMMIT_ON_SUCCESS
type: constant
doc:
<comment>Description:</comment>
  Statement execution mode for <strong>oci_execute()</strong> call. Automatically commit changes when the statement
  has succeeded.


id: OCI_CRED_EXT
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_connect()</strong> for using Oracles' External or OS authentication.


id: OCI_DESCRIBE_ONLY
type: constant
doc:
<comment>Description:</comment>
  Statement execution mode for <strong>oci_execute()</strong>.  Use this mode if you want meta data such as the
  column names but don't want to fetch rows from the query.


id: OCI_DTYPE_FILE
type: constant
doc:
<comment>Description:</comment>
  This flag tells <strong>oci_new_descriptor()</strong> to initialize a new FILE descriptor.


id: OCI_DTYPE_LOB
type: constant
doc:
<comment>Description:</comment>
  This flag tells <strong>oci_new_descriptor()</strong> to initialize a new LOB descriptor.


id: OCI_DTYPE_ROWID
type: constant
doc:
<comment>Description:</comment>
  This flag tells <strong>oci_new_descriptor()</strong> to initialize a new ROWID descriptor.


id: OCI_EXACT_FETCH
type: constant
doc:
<comment>Description:</comment>
  Obsolete. Statement fetch mode. Used when the application knows in advance exactly how many rows
  it will be fetching. This mode turns prefetching off for Oracle release 8 or later mode. The
  cursor is canceled after the desired rows are fetched which may result in reduced server-side
  resource usage.


id: OCI_NO_AUTO_COMMIT
type: constant
doc:
<comment>Description:</comment>
  Statement execution mode for <strong>oci_execute()</strong>. The transaction is not automatically committed when
  using this mode.  For readability in new code, use this value instead of the older, equivalent
  <info>OCI_DEFAULT</info> constant.


id: OCI_NUM
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_fetch_all()</strong> and <strong>oci_fetch_array()</strong> to get results as an enumerated array.


id: OCI_RETURN_LOBS
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_fetch_array()</strong> to get the data value of the LOB instead of the descriptor.


id: OCI_RETURN_NULLS
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_fetch_array()</strong> to get empty array elements if the row items value is <info>null</info>.


id: OCI_SYSDBA
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_connect()</strong> to connect with the SYSDBA privilege. The php.ini setting
  oci8.privileged_connect should be enabled to use this.


id: OCI_SYSOPER
type: constant
doc:
<comment>Description:</comment>
  Used with <strong>oci_connect()</strong> to connect with the SYSOPER privilege. The php.ini setting
  oci8.privileged_connect should be enabled to use this.


id: OPENSSL_ALGO_MD2
type: constant
doc:
<comment>Description:</comment>
  只有在使用 MD2 支持编译 PHP 时，才可以使用这个常量。当在编译 PHP 时需要验证通过
  DHAVE_OPENSSL_MD2_H CFLAGP，当编译 OpenSSL 1.0.0+ 版本时需要启用 enable-md2选项。


id: OPENSSL_ALGO_SHA1
type: constant
doc:
<comment>Description:</comment>
  <strong>openssl_sign()</strong> 和 <strong>openssl_verify()</strong> 函数使用的默认算法。


id: OPENSSL_CMS_BINARY
type: constant
doc:
<comment>Description:</comment>
  通常，输入消息被转换为有效使用 <return>CR</return> 和 <return>LF</return> 作为行尾的“canonical”格式：按照 CMS 规范的要求。存在此选项
  时，不会发生翻译。这在处理可能不是 CMS 格式的二进制数据时很有用。


id: OPENSSL_CMS_DETACHED
type: constant
doc:
<comment>Description:</comment>
  When signing a message, use cleartext signing with the MIME type <return>"multipart/signed"</return>. This is the
  default if you do not specify any <strong>$flags</strong> to <strong>openssl_cms_sign()</strong>. If you turn this option off, the
  message will be signed using opaque signing, which is more resistant to translation by mail relays
  but cannot be read by mail agents that do not support S/MIME.


id: OPENSSL_CMS_NOATTR
type: constant
doc:
<comment>Description:</comment>
  Normally when a message is signed, a set of attributes are included which include the signing time
  and the supported symmetric algorithms.  With this option they are not included.


id: OPENSSL_CMS_NOCERTS
type: constant
doc:
<comment>Description:</comment>
  When signing a message the signer's certificate is normally included - with this option it is
  excluded.  This will reduce the size of the signed message but the verifier must have a copy of
  the signers certificate available locally (passed using the <strong>$untrusted_certificates_filename</strong> to
  <strong>openssl_cms_verify()</strong> for example).


id: OPENSSL_CMS_NOINTERN
type: constant
doc:
<comment>Description:</comment>
  验证消息时，通常会搜索消息中包含的证书（如果有）以查找签名证书。使用此选项仅使用在
  <strong>openssl_cms_verify()</strong> 的 <strong>$untrusted_certificates_filename</strong> 参数中指定的证书。但是，提供的证书仍可用
  作不受信任的 CA。


id: OPENSSL_CMS_OLDMIMETYPE
type: constant
doc:
<comment>Description:</comment>
  自 PHP 8.3.0 起可用。 将 content-type 设置为 <return>application/x-pkcs7-mime</return>，而不是
  <return>application/pkcs7-mime</return> 来加密消息。


id: OPENSSL_CMS_TEXT
type: constant
doc:
<comment>Description:</comment>
  将 text/plain 内容类型标头添加到加密/签名消息中。如果解密或验证，将从输出中去除这些标头；如果解密
  或验证的消息不是 MIME 类型 text/plain，则会发生错误。


id: OPENSSL_RAW_DATA
type: constant
doc:
<comment>Description:</comment>
  If <info>OPENSSL_RAW_DATA</info> is set in the <strong>openssl_encrypt()</strong> or <strong>openssl_decrypt()</strong>, the returned data is
  returned as-is. When it is not specified, Base64 encoded data is returned to the caller.


id: OPENSSL_ZERO_PADDING
type: constant
doc:
<comment>Description:</comment>
  By default encryption operations are padded using standard block padding and the padding is
  checked and removed when decrypting. If <info>OPENSSL_ZERO_PADDING</info> is set in the <strong>openssl_encrypt()</strong> or
  <strong>openssl_decrypt()</strong> <strong>$options</strong> then no padding is performed, the total amount of data encrypted or
  decrypted must then be a multiple of the block size or an error will occur.


id: OP_HALFOPEN
type: constant
doc:
<comment>Description:</comment>
  For IMAP and NNTP names, open a connection but don't open a mailbox.


id: OuterIterator
type: class
doc:
<comment>Description:</comment>
  Classes implementing <class>OuterIterator</class> can be used to iterate over iterators.


id: OuterIterator::getInnerIterator
type: function
doc:
<comment>Description:</comment>
  Returns the inner iterator for the current entry
  
  Returns the inner iterator for the current iterator entry.

<comment>Return:</comment>
  <info>Iterator|null</info>  Returns the inner iterator for the current entry if it exists, or <info>null</info> otherwise.


id: PASSWORD_ARGON2I
type: constant
doc:
<comment>Description:</comment>
  <info>PASSWORD_ARGON2I</info> is used to create new password hashes using the Argon2i algorithm.
  
  Supported Options:
  
  <return>memory_cost</return> (<info>int</info>) - Maximum memory (in kibibytes) that may  be used to compute the Argon2 hash.
  Defaults to <info>PASSWORD_ARGON2_DEFAULT_MEMORY_COST</info>.
  
  <return>time_cost</return> (<info>int</info>) - Maximum amount of time it may  take to compute the Argon2 hash. Defaults to
  <info>PASSWORD_ARGON2_DEFAULT_TIME_COST</info>.
  
  <return>threads</return> (<info>int</info>) - Number of threads to use for computing  the Argon2 hash. Defaults to
  <info>PASSWORD_ARGON2_DEFAULT_THREADS</info>. Only available with libargon2, not with libsodium implementation.
  
  Available as of PHP 7.2.0.


id: PASSWORD_ARGON2ID
type: constant
doc:
<comment>Description:</comment>
  <info>PASSWORD_ARGON2ID</info> is used to create new password hashes using the Argon2id algorithm. It supports
  the same options as <info>PASSWORD_ARGON2I</info>.
  
  Available as of PHP 7.3.0.


id: PASSWORD_ARGON2_DEFAULT_MEMORY_COST
type: constant
doc:
<comment>Description:</comment>
  Default amount of memory in bytes that will be used while trying to compute a hash.
  
  Available as of PHP 7.2.0.


id: PASSWORD_ARGON2_DEFAULT_THREADS
type: constant
doc:
<comment>Description:</comment>
  Default number of threads that Argon2lib will use. Not available with libsodium implementation.
  
  Available as of PHP 7.2.0.


id: PASSWORD_ARGON2_DEFAULT_TIME_COST
type: constant
doc:
<comment>Description:</comment>
  Default amount of time that will be spent trying to compute a hash.
  
  Available as of PHP 7.2.0.


id: PASSWORD_BCRYPT
type: constant
doc:
<comment>Description:</comment>
  <info>PASSWORD_BCRYPT</info> is used to create new password hashes using the <info>CRYPT_BLOWFISH</info> algorithm.
  
  This will always result in a hash using the "$2y$" crypt format,  which is always 60 characters
  wide.
  
  Supported Options:
  
  <return>salt</return> (<info>string</info>) - to manually provide a salt to use when hashing the password. Note that this will
  override and prevent a salt from being automatically generated.
  
  If omitted, a random salt will be generated by <strong>password_hash()</strong> for each password hashed. This is
  the intended mode of operation and as of PHP 7.0.0 the salt option has been deprecated.
  
  <return>cost</return> (<info>int</info>) - which denotes the algorithmic cost that  should be used. Examples of these values can
  be found on the <strong>crypt()</strong>  page.
  
  If omitted, a default value of <return>10</return> will be used. This is a good baseline cost, but you may want to
  consider increasing it depending on your hardware.


id: PASSWORD_DEFAULT
type: constant
doc:
<comment>Description:</comment>
  The default algorithm to use for hashing if no algorithm is provided. This may change in newer PHP
  releases when newer, stronger hashing algorithms are supported.
  
  It is worth noting that over time this constant can (and likely will) change. Therefore you should
  be aware that the length of the resulting hash can change. Therefore, if you use <info>PASSWORD_DEFAULT</info>
  you should store the resulting hash in a way that can store more than 60 characters (255 is the
  recommended width).
  
  Values for this constant:
  
  PHP 5.5.0 - <info>PASSWORD_BCRYPT</info>


id: PDO::ATTR_CURSOR
type: constant
doc:
<comment>Description:</comment>
  选择游标类型。 PDO 当前支持 <info>PDO::CURSOR_FWDONLY</info> 和  <info>PDO::CURSOR_SCROLL</info>。一般为
  <info>PDO::CURSOR_FWDONLY</info>，除非确实需要一个可滚动游标。


id: PDO::ATTR_DEFAULT_STR_PARAM
type: constant
doc:
<comment>Description:</comment>
  设置默认 string 参数类型可以是 <info>PDO::PARAM_STR_NATL</info> 和 <info>PDO::PARAM_STR_CHAR</info>。
  
  自 PHP 7.2.0 起可用


id: PDO::ATTR_DRIVER_NAME
type: constant
doc:
<comment>Description:</comment>
  返回驱动名称。
  
  使用 <info>PDO::ATTR_DRIVER_NAME</info> 的例子getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') { echo "Running
  on mysql; doing something mysql specific here\n";
  }
  ?>
  ]]>


id: PDO::ATTR_FETCH_CATALOG_NAMES
type: constant
doc:
<comment>Description:</comment>
  将包含的目录名添加到结果集中的每个列名前面。目录名和列名由一个小数点分开（.）。此属性在驱动层面支
  持，所以有些驱动可能不支持此属性。


id: PDO::ATTR_FETCH_TABLE_NAMES
type: constant
doc:
<comment>Description:</comment>
  将包含的表名添加到结果集中的每个列名前面。表名和列名由一个小数点分开（.）。此属性在驱动层面支持，
  所以有些驱动可能不支持此属性。


id: PDO::ATTR_PREFETCH
type: constant
doc:
<comment>Description:</comment>
  设置预取大小来为你的应用平衡速度和内存使用。并非所有的数据库/驱动组合都支持设置预取大小。较大的预
  取大小导致性能提高的同时也会占用更多的内存。


id: PDO::CURSOR_FWDONLY
type: constant
doc:
<comment>Description:</comment>
  创建一个只进游标的 <class>PDOStatement</class> 对象。此为默认的游标选项，因为此游标最快且是 PHP 中最常用的数据访
  问模式。


id: PDO::CURSOR_SCROLL
type: constant
doc:
<comment>Description:</comment>
  创建一个可滚动游标的 <class>PDOStatement</class> 对象。通过 <return>PDO::FETCH_ORI_*</return> 常量来控制结果集中获取的行。


id: PDO::ERRMODE_EXCEPTION
type: constant
doc:
<comment>Description:</comment>
  如果发生错误，则抛出一个 <class>PDOException</class>  异常。关于此属性的更多信息请参见 错误与错误处理。


id: PDO::ERRMODE_WARNING
type: constant
doc:
<comment>Description:</comment>
  如果发生错误，则显示一个 PHP <info>E_WARNING</info> 消息。关于此属性的更多信息请参见 错误与错误处理。


id: PDO::ERR_NONE
type: constant
doc:
<comment>Description:</comment>
  对应 SQLSTATE '00000'，表示 SQL 语句没有错误或警告地成功发出。当用 PDO::errorCode 或
  PDOStatement::errorCode 来确定是否有错误发生时，此常量非常方便。在检查上述方法返回的错误状态代码
  时，会经常用到。


id: PDO::FETCH_ASSOC
type: constant
doc:
<comment>Description:</comment>
  指定获取方式，将对应结果集中的每一行作为一个由列名索引的数组返回。如果结果集中包含多个名称相同的
  列，则<info>PDO::FETCH_ASSOC</info>每个列名只返回一个值。


id: PDO::FETCH_BOUND
type: constant
doc:
<comment>Description:</comment>
  指定获取方式，返回 TRUE 且将结果集中的列值分配给通过 PDOStatement::bindParam 或
  PDOStatement::bindColumn 方法绑定的 PHP 变量。


id: PDO::FETCH_CLASS
type: constant
doc:
<comment>Description:</comment>
  指定获取方式，返回一个所请求类的新实例，映射列到类中对应的属性名。
  
  如果所请求的类中不存在该属性，则调用 __set 魔术方法


id: PDO::FETCH_GROUP
type: constant
doc:
<comment>Description:</comment>
  根据值分组返回。通常和 <info>PDO::FETCH_COLUMN</info> 或  <info>PDO::FETCH_KEY_PAIR</info> 一起使用。


id: PDO::FETCH_LAZY
type: constant
doc:
<comment>Description:</comment>
  指定获取方式，将结果集中的每一行作为一个对象返回，此对象的变量名对应着列名。<info>PDO::FETCH_LAZY</info> 创建用
  来访问的对象变量名。在 PDOStatement::fetchAll 中无效。


id: PDO::FETCH_NAMED
type: constant
doc:
<comment>Description:</comment>
  指定获取方式，将对应结果集中的每一行作为一个由列名索引的数组返回。如果结果集中包含多个名称相同的
  列，则<info>PDO::FETCH_ASSOC</info>每个列名 返回一个包含值的数组。


id: PDO::FETCH_SERIALIZE
type: constant
doc:
<comment>Description:</comment>
  类似 <info>PDO::FETCH_INTO</info>，但是以序列化的字符串表示对象。如果设置此标志，则类的构造函数永远不会被调用。
  自 PHP 8.1.0 起弃用。


id: PDO::MYSQL_ATTR_FOUND_ROWS
type: constant
doc:
<comment>Description:</comment>
  Return the number of found (matched) rows, not the  number of changed rows.


id: PDO::MYSQL_ATTR_IGNORE_SPACE
type: constant
doc:
<comment>Description:</comment>
  Permit spaces after function names. Makes all functions  names reserved words.


id: PDO::MYSQL_ATTR_INIT_COMMAND
type: constant
doc:
<comment>Description:</comment>
  Command to execute when connecting to the MySQL server. Will automatically be re-executed when
  reconnecting.
  
  Note, this constant can only be used in the <strong>$driver_options</strong>  array when constructing a new
  database handle.


id: PDO::MYSQL_ATTR_LOCAL_INFILE
type: constant
doc:
<comment>Description:</comment>
  Enable <return>LOAD LOCAL INFILE</return>.
  
  Note, this constant can only be used in the <strong>$driver_options</strong>  array when constructing a new
  database handle.


id: PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY
type: constant
doc:
<comment>Description:</comment>
  Allows restricting LOCAL DATA loading to files located in this designated  directory. Available as
  of PHP 8.1.0.
  
  Note, this constant can only be used in the <strong>$driver_options</strong>  array when constructing a new
  database handle.


id: PDO::MYSQL_ATTR_MAX_BUFFER_SIZE
type: constant
doc:
<comment>Description:</comment>
  Maximum buffer size. Defaults to 1 MiB. This constant is not supported when  compiled against
  mysqlnd.


id: PDO::MYSQL_ATTR_MULTI_STATEMENTS
type: constant
doc:
<comment>Description:</comment>
  Disables multi query execution in both <strong>PDO::prepare()</strong> and <strong>PDO::query()</strong> when set to <info>false</info>.
  
  Note, this constant can only be used in the <strong>$driver_options</strong>  array when constructing a new
  database handle.


id: PDO::MYSQL_ATTR_READ_DEFAULT_FILE
type: constant
doc:
<comment>Description:</comment>
  Read options from the named option file instead of from my.cnf. This option is not available if
  mysqlnd is used, because mysqlnd does not read the mysql  configuration files.


id: PDO::MYSQL_ATTR_READ_DEFAULT_GROUP
type: constant
doc:
<comment>Description:</comment>
  Read options from the named group from my.cnf or the file specified with <info>MYSQL_READ_DEFAULT_FILE</info>.
  This option  is not available if mysqlnd is used, because mysqlnd does not read the mysql
  configuration files.


id: PDO::MYSQL_ATTR_SSL_CAPATH
type: constant
doc:
<comment>Description:</comment>
  The file path to the directory that contains the trusted SSL CA certificates, which are stored in
  PEM format.


id: PDO::MYSQL_ATTR_SSL_CIPHER
type: constant
doc:
<comment>Description:</comment>
  A list of one or more permissible ciphers to use for SSL encryption, in a format understood by
  OpenSSL. For example: <return>DHE-RSA-AES256-SHA:AES128-SHA</return>


id: PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT
type: constant
doc:
<comment>Description:</comment>
  Provides a way to disable verification of the server SSL certificate.
  
  自以下版本起 PHP  7.0.18 and PHP 7.1.4.


id: PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
type: constant
doc:
<comment>Description:</comment>
  By default all statements are executed in buffered mode. If this attribute is set to <info>false</info> on a
  <class>PDO</class> object, the MySQL driver will use the unbuffered mode.
  
  Setting MySQL unbuffered modesetAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
  
  $unbufferedResult = $pdo->query("SELECT Name FROM City");
  foreach ($unbufferedResult as $row) { echo $row['Name'] . PHP_EOL;
  }
  ?>
  ]]>


id: PDO::OCI_ATTR_ACTION
type: constant
doc:
<comment>Description:</comment>
  Provides a way to specify the action on the database session.
  
  自以下版本起 PHP  7.2.16 and 7.3.3


id: PDO::OCI_ATTR_CLIENT_IDENTIFIER
type: constant
doc:
<comment>Description:</comment>
  Provides a way to specify the client identifier on the database session.
  
  自以下版本起 PHP  7.2.16 and 7.3.3


id: PDO::OCI_ATTR_CLIENT_INFO
type: constant
doc:
<comment>Description:</comment>
  Provides a way to specify the client info on the database session.
  
  自以下版本起 PHP  7.2.16 and 7.3.3


id: PDO::OCI_ATTR_MODULE
type: constant
doc:
<comment>Description:</comment>
  Provides a way to specify the module on the database session.
  
  自以下版本起 PHP  7.2.16 and 7.3.3


id: PDO::ODBC_ATTR_ASSUME_UTF8
type: constant
doc:
<comment>Description:</comment>
  Windows only. If <info>true</info>, UTF-16 encoded character data (<return>CHAR</return>, <return>VARCHAR</return> and <return>LONGVARCHAR</return>) is converted
  to UTF-8 when reading from or writing data to the database. If <info>false</info> (the default), character
  encoding conversion may be done by the driver.


id: PDO::ODBC_ATTR_USE_CURSOR_LIBRARY
type: constant
doc:
<comment>Description:</comment>
  This option controls whether the ODBC cursor library is used. The ODBC cursor library supports
  some advanced ODBC features (e.g. block scrollable cursors), which may not be implemented by the
  driver. The following values are supported: <info>PDO::ODBC_SQL_USE_IF_NEEDED</info> (the default): use the
  ODBC cursor library when needed. <info>PDO::ODBC_SQL_USE_DRIVER</info>: never use the ODBC cursor library.
  <info>PDO::ODBC_SQL_USE_ODBC</info>: always use the ODBC cursor library.
  
  <info>PDO::ODBC_SQL_USE_IF_NEEDED</info> (the default): use the ODBC cursor library when needed.
  
  <info>PDO::ODBC_SQL_USE_DRIVER</info>: never use the ODBC cursor library.
  
  <info>PDO::ODBC_SQL_USE_ODBC</info>: always use the ODBC cursor library.


id: PDO::PGSQL_ATTR_DISABLE_PREPARES
type: constant
doc:
<comment>Description:</comment>
  Send the query and the parameters to the server together in a single call, avoiding the need to
  create a named prepared statement separately. If the query is only going to be executed once this
  can reduce latency by avoiding an unnecessary server round-trip.


id: PDO::SQLITE_DETERMINISTIC
type: constant
doc:
<comment>Description:</comment>
  使用 PDO::sqliteCreateFunction  创建的函数是确定性的（deterministic）。举例说明：在同一个 SQL 语句
  内，函数的参数不变，则返回的结果也不变。（PHP 7.1.4 起有效）


id: PDO::SQLSRV_ATTR_DIRECT_QUERY
type: constant
doc:
<comment>Description:</comment>
  Indicates that a query should be executed directly, without being prepared.  This constant can be
  passed to PDO::setAttribute, and PDO::prepare. For more  information, see  Direct and Prepared
  Statement Execution.


id: PDO::SQLSRV_ATTR_QUERY_TIMEOUT
type: constant
doc:
<comment>Description:</comment>
  A non-negative integer representing the timeout period, in seconds. Zero (0)  is the default and
  means no timeout. This constant can be passed to  PDOStatement::setAttribute, PDO::setAttribute,
  and PDO::prepare.


id: PDO::SQLSRV_ENCODING_BINARY
type: constant
doc:
<comment>Description:</comment>
  Specifies that data is sent/retrieved as a raw byte stream to/from the server  without performing
  encoding or translation. This constant can be passed to  PDOStatement::setAttribute, PDO::prepare,
  PDOStatement::bindColumn, and  PDOStatement::bindParam.


id: PDO::SQLSRV_ENCODING_DEFAULT
type: constant
doc:
<comment>Description:</comment>
  Specifies that data is sent/retrieved to/from the server according to  PDO::SQLSRV_ENCODING_SYSTEM
  if specified during connection. The connection's  encoding is used if specified in a prepare
  statement. This constant can be  passed to PDOStatement::setAttribute, PDO::setAttribute,
  PDO::prepare,  PDOStatement::bindColumn, and PDOStatement::bindParam.


id: PDO::SQLSRV_ENCODING_SYSTEM
type: constant
doc:
<comment>Description:</comment>
  Specifies that data is sent/retrieved to/from the server as 8-bit characters  as specified in the
  code page of the Windows locale that is set on the system.  Any multi-byte characters or
  characters that do not map into this code page  are substituted with a single byte question mark
  (?) character. This constant  can be passed to PDOStatement::setAttribute, PDO::setAttribute,
  PDO::prepare,  PDOStatement::bindColumn, and PDOStatement::bindParam.


id: PDO::SQLSRV_ENCODING_UTF8
type: constant
doc:
<comment>Description:</comment>
  Specifies that data is sent/retrieved to/from the server in UTF-8 encoding.  This is the default
  encoding. This constant can be passed to  PDOStatement::setAttribute, PDO::setAttribute,
  PDO::prepare,  PDOStatement::bindColumn, and PDOStatement::bindParam.


id: PDO::SQLSRV_TXN_READ_COMMITTED
type: constant
doc:
<comment>Description:</comment>
  This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation.  This constant
  sets the transaction isolation level for the connection to  Read Committed.


id: PDO::SQLSRV_TXN_READ_UNCOMMITTED
type: constant
doc:
<comment>Description:</comment>
  This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation.  This constant
  sets the transaction isolation level for the connection to  Read Uncommitted.


id: PDO::SQLSRV_TXN_REPEATABLE_READ
type: constant
doc:
<comment>Description:</comment>
  This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation.  This constant
  sets the transaction isolation level for the connection to  Repeateable Read.


id: PDO::SQLSRV_TXN_SERIALIZABLE
type: constant
doc:
<comment>Description:</comment>
  This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation.  This constant
  sets the transaction isolation level for the connection to  Serializable.


id: PDO::SQLSRV_TXN_SNAPSHOT
type: constant
doc:
<comment>Description:</comment>
  This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation.  This constant
  sets the transaction isolation level for the connection to Snapshot.


id: PDO::__construct
type: function
doc:
<comment>Description:</comment>
  创建一个表示数据库连接的 PDO 实例
    
  
  创建一个表示连接到请求数据库的数据库连接 PDO 实例。

<comment>Param:</comment>
  <info>string</info>       <strong>$dsn</strong>       数据源名称或叫做 DSN，包含了请求连接到数据库的信息。
                          
                          通常，一个 DSN 由 PDO 驱动名、紧随其后的冒号、以及具体 PDO 驱动的连接语法
                          组成。更深入的信息能从 PDO 具体驱动文档找到。
                          
                          <strong>$dsn</strong> 参数支持三种不同的方式 创建一个数据库连接：
                          
                          驱动程序调用<strong>$dsn</strong> 包含完整的DSN。 URI invocation<strong>$dsn</strong> 由 uri: 后跟 URI 组
                          成，该 URI 包含定义 DSN 字符串的文件位置。URI 可以指定本地文件或远程 URL。
                          uri:file:///path/to/dsnfileAliasing<strong>$dsn</strong> 由映射到 php.ini 中定义 DSN 字符串
                          的 pdo.dsn.<strong>$name</strong> 的 <strong>$name</strong> 名组成。  别名必须得在 php.ini 中定义了，不能是
                          在 .htaccess 或 httpd.conf 中 。
                          
                          <strong>$dsn</strong> 包含完整的DSN。
                          
                          <strong>$dsn</strong> 由 uri: 后跟 URI 组成，该 URI 包含定义 DSN 字符串的文件位置。URI 可以
                          指定本地文件或远程 URL。
                          
                          uri:file:///path/to/dsnfile
                          
                          <strong>$dsn</strong> 由映射到 php.ini 中定义 DSN 字符串的 pdo.dsn.<strong>$name</strong> 的 <strong>$name</strong> 名组成。
                          
                          别名必须得在 php.ini 中定义了，不能是在 .htaccess 或 httpd.conf 中 。
  <info>string</info>       <strong>$dsn</strong>       <strong>$dsn</strong> 包含完整的DSN。
  <info>string</info>       <strong>$dsn</strong>       <strong>$dsn</strong> 由 uri: 后跟 URI 组成，该 URI 包含定义 DSN 字符串的文件位置。URI 可以
                          指定本地文件或远程 URL。
                          
                          uri:file:///path/to/dsnfile
  <info>string</info>       <strong>$dsn</strong>       <strong>$dsn</strong> 由映射到 php.ini 中定义 DSN 字符串的 pdo.dsn.<strong>$name</strong> 的 <strong>$name</strong> 名组成。
                          
                          别名必须得在 php.ini 中定义了，不能是在 .htaccess 或 httpd.conf 中 。
  <info>string|null</info>  <strong>$username</strong>  DSN字符串中的用户名。对于某些PDO驱动，此参数为可选项。
  <info>string|null</info>  <strong>$password</strong>  DSN字符串中的密码。对于某些PDO驱动，此参数为可选项。
  <info>array|null</info>   <strong>$options</strong>   一个具体驱动的连接选项的键=&gt;值数组。


id: PDO::beginTransaction
type: function
doc:
<comment>Description:</comment>
  启动一个事务
    
  
  关闭自动提交模式。自动提交模式被关闭的同时，通过 PDO 对象实例对数据库做出的更改直到调用
  PDO::commit 结束事务才被提交。调用 PDO::rollBack 将回滚对数据库做出的更改并将数据库连接返回到自动
  提交模式。
  
  包括 MySQL 在内的一些数据库，当发出一条类似 DROP TABLE 或 CREATE TABLE 这样的 DDL 语句时，会自动进
  行一个隐式地事务提交。隐式地提交将阻止你在此事务范围内回滚任何其他更改。

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

<comment>See Also:</comment>
   * PDO::commit
   * PDO::rollBack
   * 事务与自动提交


id: PDO::commit
type: function
doc:
<comment>Description:</comment>
  提交一个事务
    
  
  提交一个事务，数据库连接返回到自动提交模式直到下次调用 PDO::beginTransaction 开始一个新的事务为
  止。

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

<comment>See Also:</comment>
   * PDO::beginTransaction
   * PDO::rollBack
   * 事务和自动提交


id: PDO::cubrid_schema
type: function
doc:
<comment>Description:</comment>
  Get the requested schema information
  
  This function is used to get the requested schema information from database. You have to designate
  <strong>$table_name</strong>, if you want to get information on certain table, <strong>$col_name</strong>, if you want to get
  information on certain column (can be used only with PDO::CUBRID_SCH_COL_PRIVILEGE).
  
  The result of this function is returned as a two-dimensional array (column (associative array) *
  row (numeric array)). The following tables shows types of schema and the column structure of the
  result array to be returned based on the schema type.
  
  Result Composition of Each TypeSchemaColumn NumberColumn
  NameValuePDO::CUBRID_SCH_TABLE1NAME2TYPE0:system table 1:view
  2:tablePDO::CUBRID_SCH_VIEW1NAME2TYPE1:viewPDO::CUBRID_SCH_QUERY_SPEC1QUERY_SPECPDO::CUBRID_SCH_ATTRIBUTE
  / PDO::CUBRID_SCH_TABLE_ATTRIBUTE1ATTR_NAME2DOMAIN3SCALE4PRECISION5INDEXED1:indexed6NOT NULL1:not
  null7SHARED1:shared8UNIQUE1:unique9DEFAULT10ATTR_ORDERbase:111CLASS_NAME12SOURCE_CLASS13IS_KEY1:keyPDO::CUBRID_SCH_METHOD
  /
  PDO::CUBRID_SCH_TABLE_METHOD1NAME2RET_DOMAIN3ARG_DOMAINPDO::CUBRID_SCH_METHOD_FILE1METHOD_FILEPDO::CUBRID_SCH_SUPER_TABLE
  / PDO::CUBRID_SCH_DIRECT_SUPER_TABLE / PDO::CUBRID_SCH_SUB_TABLE1CLASS_NAME2TYPE0:system table
  1:view 2:tablePDO::CUBRID_SCH_CONSTRAINT1TYPE0:unique 1:index 2:reverse unique 3:reverse
  index2NAME3ATTR_NAME4NUM_PAGES5NUM_KEYS6PRIMARY_KEY1:primary
  key7KEY_ORDERbase:1PDO::CUBRID_SCH_TRIGGER1NAME2STATUS3EVENT4TARGET_CLASS5TARGET_ATTR6ACTION_TIME7ACTION8PRIORITY9CONDITION_TIME10CONDITIONPDO::CUBRID_SCH_TABLE_PRIVILEGE
  / PDO::CUBRID_SCH_COL_PRIVILEGE1CLASS_NAME /
  ATTR_NAME2PRIVILEGE3GRANTABLEPDO::CUBRID_SCH_PRIMARY_KEY1CLASS_NAME2ATTR_NAME3KEY_SEQbase:14KEY_NAMEPDO::CUBRID_SCH_IMPORTED_KEYS
  / PDO::CUBRID_SCH_EXPORTED_KEYS /
  PDO::CUBRID_SCH_CROSS_REFERENCE1PKTABLE_NAME2PKCOLUMN_NAME3FKTABLE_NAMEbase:14FKCOLUMN_NAME5KEY_SEQbase:16UPDATE_ACTION0:cascade
  1:restrict 2:no action 3:set null7DELETE_ACTION0:cascade 1:restrict 2:no action 3:set
  null8FK_NAME9PK_NAME

<comment>Param:</comment>
  <info>int</info>     <strong>$schema_type</strong>  Schema type that you want to know.
  <info>string</info>  <strong>$table_name</strong>   Table you want to know the schema of.
  <info>string</info>  <strong>$col_name</strong>     Column you want to know the schema of.

<comment>Return:</comment>
  <info>array</info>  Array containing the schema information, when process is successful;
         
         FALSE, when process is unsuccessful


id: PDO::errorCode
type: function
doc:
<comment>Description:</comment>
  获取跟数据库句柄上一次操作相关的 SQLSTATE

<comment>Return:</comment>
  <info>string|null</info>  返回一个 SQLSTATE，一个由 5 个字母或数字组成的在 ANSI SQL 标准中定义的标识符。 简要地
               说，一个 SQLSTATE 由前面两个字符的类值和后面三个字符的子类值组成。 A class value of
               01 indicates a warning and is accompanied by a return code of SQL_SUCCESS_WITH_INFO.
               Class values other than '01', except for the class 'IM', indicate an error.  The
               class 'IM' is specific to warnings and errors that derive from the implementation of
               PDO (or perhaps ODBC, if you're using the ODBC driver) itself.  The subclass value
               '000' in any class indicates that there is no subclass for that SQLSTATE.
               
               PDO::errorCode 仅检索直接在数据库句柄上操作执行的错误代码。如果通过 PDO::prepare 或
               PDO::query 创建的 PDOStatement 对象并且在 statement 句柄上调用错误，PDO::errorCode 将
               不会反映该错误。必须在特定 statement 句柄上调用 PDOStatement::errorCode 返回操作执行
               的错误代码。
               
               如果数据库句柄没有进行操作，则返回 <info>null</info> 。

<comment>See Also:</comment>
   * PDO::errorInfo
   * PDOStatement::errorCode
   * PDOStatement::errorInfo


id: PDO::errorInfo
type: function
doc:
<comment>Description:</comment>
  Fetch extended error information associated with the last operation on the database handle

<comment>Return:</comment>
  <info>array</info>  PDO::errorInfo returns an array of error information about the last operation performed by
         this database handle. The array consists of at least the following fields:
         ElementInformation0SQLSTATE error code (a five characters alphanumeric identifier defined
         in the ANSI SQL standard).1Driver-specific error code.2Driver-specific error message.
         
         If the SQLSTATE error code is not set or there is no driver-specific error, the elements
         following element 0 will be set to <info>null</info>.
         
         PDO::errorInfo only retrieves error information for operations performed directly on the
         database handle. If you create a PDOStatement object through PDO::prepare or PDO::query and
         invoke an error on the statement handle, PDO::errorInfo will not reflect the error from the
         statement handle. You must call PDOStatement::errorInfo to return the error information for
         an operation performed on a particular statement handle.

<comment>See Also:</comment>
   * PDO::errorCode
   * PDOStatement::errorCode
   * PDOStatement::errorInfo


id: PDO::exec
type: function
doc:
<comment>Description:</comment>
  执行 SQL 语句，并返回受影响的行数
    
  
  PDO::exec 在单独的函数调用中执行 SQL 语句，返回受此语句影响的行数。
  
  PDO::exec 不会从 SELECT 语句中返回结果。对于在程序中只需要发出一次的 SELECT 语句，可以考虑使用
  PDO::query。对于需要发出多次的语句，可用 PDO::prepare 来预处理 PDOStatement 对象并用
  PDOStatement::execute 发出语句。

<comment>Param:</comment>
  <info>string</info>  <strong>$statement</strong>  要被预处理和执行的 SQL 语句。
                      
                      查询中的数据应正确转义。

<comment>Return:</comment>
  <info>int|false</info>  PDO::exec 返回 SQL 语句修改或删除影响的行数。如果没有受影响的行，则 PDO::exec 返回 <return>0</return>。
             
             此函数可能返回布尔值
             <info>false</info>，但也可能返回等同于 <info>false</info> 的非布尔值。请阅读 布尔类型章节以获取更多信息。应使用
             ===
             运算符来测试此函数的返回值。
             
             下列示例错误依赖 PDO::exec 的返回值，其中受影响行数为 0 的语句会导致调用 die： exec()
             or die(print_r($db->errorInfo(), true)); // 错误
             ?>
             ]]>

<comment>See Also:</comment>
   * PDO::prepare
   * PDO::query
   * PDOStatement::execute


id: PDO::getAttribute
type: function
doc:
<comment>Description:</comment>
  取回一个数据库连接的属性
    
  
  此方法返回数据库连接属性的值。要检索 PDOStatement 属性，请参阅  PDOStatement::getAttribute。
  
  注意有些数据库/驱动可能不支持所有的数据库连接属性。

<comment>Param:</comment>
  <info>int</info>  <strong>$attribute</strong>  <return>PDO::ATTR_*</return> 常量之一。下列为应用到数据库连接中的通用属性：
                   <return>PDO::ATTR_AUTOCOMMIT</return><return>PDO::ATTR_CASE</return><return>PDO::ATTR_CLIENT_VERSION</return><return>PDO::ATTR_CONNECTION_STATUS</return><return>PDO::ATTR_DRIVER_NAME</return><return>PDO::ATTR_ERRMODE</return><return>PDO::ATTR_ORACLE_NULLS</return><return>PDO::ATTR_PERSISTENT</return><return>PDO::ATTR_PREFETCH</return><return>PDO::ATTR_SERVER_INFO</return><return>PDO::ATTR_SERVER_VERSION</return><return>PDO::ATTR_TIMEOUT</return>
                   
                   一些驱动程序可能会使用额外的特定驱动程序属性。请注意，特定驱动程序的属性不能与其
                   它驱动程序一起使用。

<comment>Return:</comment>
  <info>mixed</info>  成功调用则返回请求的 PDO 属性值。不成功则返回 <return>null</return>。

<comment>See Also:</comment>
   * PDO::setAttribute
   * PDOStatement::getAttribute
   * PDOStatement::setAttribute


id: PDO::getAvailableDrivers
type: function
doc:
<comment>Description:</comment>
  返回一个可用驱动的数组
    
  
  此方法返回所有当前可用在 PDO::__construct 的 <strong>$DSN</strong> 参数中的 PDO 驱动。

<comment>Return:</comment>
  <info>array</info>  PDO::getAvailableDrivers 返回包含可用 PDO 驱动名字的数组。如果没有可用的驱动，则返回空数
         组。


id: PDO::inTransaction
type: function
doc:
<comment>Description:</comment>
  检查是否在事务内
    
  
  检查驱动内的事务当前是否处于激活。此方法仅对支持事务的数据库驱动起作用。

<comment>Return:</comment>
  <info>bool</info>  如果当前事务处于激活，则返回 <info>true</info> ，否则返回 <info>false</info> 。


id: PDO::lastInsertId
type: function
doc:
<comment>Description:</comment>
  返回最后插入行的ID或序列值
    
  
  返回最后插入行的 ID，或者是序列对象最后的值，取决于底层的驱动。比如，PDO_PGSQL 允许为 <strong>$name</strong> 参数指
  定任何序列对象的名称。
  
  在不同的 PDO 驱动之间，此方法可能不会返回有意义或一致的结果，因为底层数据库可能不支持自增字段或序
  列的概念。

<comment>Param:</comment>
  <info>string|null</info>  <strong>$name</strong>  应该返回 ID 的序列对象的名称。

<comment>Return:</comment>
  <info>string|false</info>  如果没有为参数 <strong>$name</strong> 指定序列名称，PDO::lastInsertId 返回表示最后插入数据库行的 ID
                的字符串。
                
                如果为参数 <strong>$name</strong> 指定了序列名称，PDO::lastInsertId 则返回表示从指定序列对象取回最后
                的值的字符串。
                
                如果当前 PDO 驱动不支持此功能，则 PDO::lastInsertId 触发一个 <return>IM001</return> SQLSTATE 。


id: PDO::pgsqlCopyFromArray
type: function
doc:
<comment>Description:</comment>
  Copy data from PHP array into table
  
  Copies data from <strong>$rows</strong> array to table <strong>$table_name</strong> using <strong>$delimiter</strong> as fields delimiter and <strong>$fields</strong>
  list

<comment>Param:</comment>
  <info>string</info>  <strong>$table_name</strong>  String containing table name
  <info>array</info>   <strong>$rows</strong>        Array of strings with fields separated by <strong>$delimiter</strong>
  <info>string</info>  <strong>$delimiter</strong>   Delimiter used in <strong>$rows</strong> array
  <info>string</info>  <strong>$null_as</strong>     How to interpret null values
  <info>string</info>  <strong>$fields</strong>      List of fields to insert

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success, 或者在失败时返回 <info>false</info>.


id: PDO::pgsqlCopyFromFile
type: function
doc:
<comment>Description:</comment>
  Copy data from file into table
  
  Copies data from file specified by <strong>$filename</strong> into table <strong>$table_name</strong> using <strong>$delimiter</strong> as fields
  delimiter and <strong>$fields</strong> list

<comment>Param:</comment>
  <info>string</info>  <strong>$table_name</strong>  String containing table name
  <info>string</info>  <strong>$filename</strong>    Filename containing data to import
  <info>string</info>  <strong>$delimiter</strong>   Delimiter used in file specified by <strong>$filename</strong>
  <info>string</info>  <strong>$null_as</strong>     How to interpret null values
  <info>string</info>  <strong>$fields</strong>      List of fields to insert

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success, 或者在失败时返回 <info>false</info>.


id: PDO::pgsqlCopyToArray
type: function
doc:
<comment>Description:</comment>
  Copy data from database table into PHP array
  
  Copies data from <strong>$table</strong> into array using <strong>$delimiter</strong> as fields delimiter and <strong>$fields</strong> list

<comment>Param:</comment>
  <info>string</info>  <strong>$table_name</strong>  String containing table name
  <info>string</info>  <strong>$delimiter</strong>   Delimiter used in rows
  <info>string</info>  <strong>$null_as</strong>     How to interpret null values
  <info>string</info>  <strong>$fields</strong>      List of fields to export

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of rows, 或者在失败时返回 <info>false</info>.


id: PDO::pgsqlCopyToFile
type: function
doc:
<comment>Description:</comment>
  Copy data from table into file
  
  Copies data from table into file specified by <strong>$filename</strong> using <strong>$delimiter</strong> as fields delimiter and
  <strong>$fields</strong> list

<comment>Param:</comment>
  <info>string</info>  <strong>$table_name</strong>  String containing table name
  <info>string</info>  <strong>$filename</strong>    Filename to export data
  <info>string</info>  <strong>$delimiter</strong>   Delimiter used in file specified by <strong>$filename</strong>
  <info>string</info>  <strong>$null_as</strong>     How to interpret null values
  <info>string</info>  <strong>$fields</strong>      List of fields to insert

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success, 或者在失败时返回 <info>false</info>.


id: PDO::pgsqlGetNotify
type: function
doc:
<comment>Description:</comment>
  Get asynchronous notification
  
  Returns a result set representing a pending asynchronous notification.

<comment>Param:</comment>
  <info>int</info>  <strong>$result_type</strong>  The format the result set should be returned as, represented as a <info>PDO::FETCH_*</info>
                     constant.
  <info>int</info>  <strong>$ms_timeout</strong>   The length of time to wait for a response, in milliseconds.

<comment>Return:</comment>
  <info>array|false</info>  If one or more notifications is pending, returns a single row, with fields <return>message</return>
               and <return>pid</return>, otherwise returns <info>false</info>.


id: PDO::pgsqlGetPid
type: function
doc:
<comment>Description:</comment>
  Get the server PID
  
  Returns the server's PID.

<comment>Return:</comment>
  <info>int</info>  The server's PID.


id: PDO::pgsqlLOBCreate
type: function
doc:
<comment>Description:</comment>
  Creates a new large object
  
  <strong>PDO::pgsqlLOBCreate()</strong> creates a large object and returns the OID of that object.  You may then
  open a stream on the object using <strong>PDO::pgsqlLOBOpen()</strong> to read or write data to it.  The OID can be
  stored in columns of type OID and be used to reference the large object, without causing the row
  to grow arbitrarily large. The large object will continue to live in the database until it is
  removed by calling <strong>PDO::pgsqlLOBUnlink()</strong>.
  
  Large objects can be up to 2GB in size, but are cumbersome to use; you need to ensure that
  <strong>PDO::pgsqlLOBUnlink()</strong> is called prior to deleting the last row that references its OID from your
  database. In addition, large objects have no access controls.  As an alternative, try the bytea
  column type; recent versions of PostgreSQL allow bytea columns of up to 1GB in size and
  transparently manage the storage for optimal row size.
  
  This function must be called within a transaction.

<comment>Return:</comment>
  <info>string</info>  Returns the OID of the newly created large object on success, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>PDO::pgsqlLOBOpen()</strong>
   * <strong>PDO::pgsqlLOBUnlink()</strong>
   * <strong>pg_lo_create()</strong>


id: PDO::pgsqlLOBOpen
type: function
doc:
<comment>Description:</comment>
  Opens an existing large object stream
  
  <strong>PDO::pgsqlLOBOpen()</strong> opens a stream to access the data referenced by <strong>$oid</strong>.  If <strong>$mode</strong> is <return>r</return>, the
  stream is opened for reading, if <strong>$mode</strong> is <return>w</return>, then the stream will be opened for writing.  You can
  use all the usual filesystem functions, such as <strong>fread()</strong>, <strong>fwrite()</strong> and <strong>fgets()</strong> to manipulate the
  contents of the stream.
  
  This function, and all manipulations of the large object, must be called and carried out within a
  transaction.

<comment>Param:</comment>
  <info>string</info>  <strong>$oid</strong>   A large object identifier.
  <info>string</info>  <strong>$mode</strong>  If mode is <return>r</return>, open the stream for reading. If mode is <return>w</return>, open the stream for
                 writing.

<comment>Return:</comment>
  <info>resource|false</info>  Returns a stream resource on success 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>PDO::pgsqlLOBCreate()</strong>
   * <strong>PDO::pgsqlLOBUnlink()</strong>
   * <strong>pg_lo_open()</strong>


id: PDO::pgsqlLOBUnlink
type: function
doc:
<comment>Description:</comment>
  Deletes the large object
  
  Deletes a large object from the database identified by OID.
  
  This function must be called within a transaction.

<comment>Param:</comment>
  <info>string</info>  <strong>$oid</strong>  A large object identifier

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

<comment>See Also:</comment>
   * <strong>PDO::pgsqlLOBOpen()</strong>
   * <strong>PDO::pgsqlLOBCreate()</strong>


id: PDO::prepare
type: function
doc:
<comment>Description:</comment>
  预处理要执行的语句，并返回语句对象
    
  
  为 PDOStatement::execute 方法预处理待执行的 SQL 语句。 语句模板可以包含零个或多个参数占位标记，格
  式是命名（:name）或问号（?）的形式，当它执行时将用真实数据取代。  在同一个语句模板里，命名形式和问
  号形式不能同时使用；只能选择其中一种参数形式。 请用参数形式绑定用户输入的数据，不要直接字符串拼接
  到查询里。
  
  调用 PDOStatement::execute 时，每一个值的参数占位标记，名称必须唯一。 除非启用模拟（emulation）模
  式，同一个语句里无法使用重名的参数。
  
  参数占位符仅能字面上展示完整的数据。不能是字面的一部分，不能是关键词，不能是标识符，不能是其他任意
  的范围。 举例说明：不能把多个值绑到单个参数里，然后在 SQL 语句里用 IN() 查询。
  
  如果用不同参数，通过 PDO::prepare 和 PDOStatement::execute 多次调用同一个 SQL 语句，将提升应用的性
  能 —— 驱动可以让客户端/服务器缓存查询和元信息。 同时，调用 PDO::prepare 和 PDOStatement::execute
  还能阻止 SQL 注入攻击，不需要给参数手动加引号与转义。
  
  如果内置驱动不支持参数，PDO 将模拟出参数的功能；如果驱动仅仅支持其中一种风格（命名参数和问号参数两
  种），也会自动重写到另外一种风格。
  
  The parser used for emulated prepared statements and for rewriting named or question mark style
  parameters supports the non standard backslash escapes for single- and double quotes. That means
  that terminating quotes immediately preceeded by a backslash are not recognized as such, which may
  result in wrong detection of parameters causing the prepared statement to fail when it is
  executed. A work-around is to not use emulated prepares for such SQL queries, and to avoid
  rewriting of parameters by using a parameter style which is natively supported by the driver.
  
  自 PHP 7.4.0 起，可以通过两个问号来转义问号。这意味着 <return>??</return> 在发送查询到数据库时会转换成 <return>?</return>。

<comment>Param:</comment>
  <info>string</info>  <strong>$query</strong>    必须是对目标数据库服务器有效的 SQL 语句模板。
  <info>array</info>   <strong>$options</strong>  数组包含一个或多个 key=&gt;value 键值对，为返回的 PDOStatement 对象设置属性。 常
                    见用法是：设置 <return>PDO::ATTR_CURSOR</return> 为 <return>PDO::CURSOR_SCROLL</return>，将得到可滚动的光标。 某些
                    驱动有驱动级的选项，在 prepare 时就设置。

<comment>Return:</comment>
  <info>PDOStatement|false</info>  如果数据库服务器已经成功预处理语句，PDO::prepare 返回 <class>PDOStatement</class> 对象。 如果
                      数据库服务器无法预处理语句，PDO::prepare 返回 <info>false</info> 或抛出 <class>PDOException</class> (取决
                      于 错误处理)。
                      
                      模拟模式下的预处理语句不会和数据库服务器交互，所以 PDO::prepare 不会检查语句。

<comment>See Also:</comment>
   * PDO::exec
   * PDO::query
   * PDOStatement::execute


id: PDO::query
type: function
doc:
<comment>Description:</comment>
  预处理并执行没有占位符的 SQL 语句
    
  
  PDO::query 在单次函数调用内预处理并执行 SQL 语句，以 <class>PDOStatement</class> 对象形式返回结果集（如果有数据的
  话）。
  
  如果反复调用同一个查询，用 PDO::prepare 准备 <class>PDOStatement</class> 对象，并用 PDOStatement::execute 执行语
  句，将具有更好的性能。
  
  如果没有完整获取结果集内的数据，就调用下一个 PDO::query，将可能调用失败。应当在执行下一个
  PDO::query 前，先用 PDOStatement::closeCursor 释放数据库 <class>PDOStatement</class> 关联的资源。
  
  如果 <strong>$query</strong> 包含占位符，则必须使用 PDO::prepare 和 PDOStatement::execute 方法分别预处理和执行语
  句。

<comment>Param:</comment>
  <info>string</info>    <strong>$query</strong>      预处理和执行的 SQL 语句。
                        
                        如果 SQL 包含占位符，则必须使用 PDO::prepare 和 PDOStatement::execute。或者
                        在调用 PDO::query 之前手动预处理 SQL，如果驱动程序支持，使用 PDO::quote 正确
                        格式化数据。
  <info>int|null</info>  <strong>$fetchMode</strong>  返回 <class>PDOStatement</class> 的默认获取模式。必须是 <return>PDO::FETCH_*</return> 常量之一。
                        
                        If this argument is passed to the function, the remaining arguments will be
                        treated as though PDOStatement::setFetchMode was called on the resultant
                        statement object. The subsequent arguments vary depending on the selected
                        fetch mode.

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

<comment>See Also:</comment>
   * PDO::exec
   * PDO::prepare
   * PDOStatement::execute


id: PDO::quote
type: function
doc:
<comment>Description:</comment>
  为 SQL 查询里的字符串添加引号
    
  
  PDO::quote 为输入的字符串添加引号（如果有需要），并对特殊字符进行转义，且引号的风格和底层驱动适
  配。
  
  如果使用此函数构建 SQL 语句，强烈建议使用 PDO::prepare 配合参数构建，而不是用 PDO::quote 把用户输
  入的数据拼接进 SQL 语句。使用 prepare 语句处理参数，不仅仅可移植性更好，而且更方便、免疫 SQL 注
  入；相对于拼接 SQL 更快，客户端和服务器都能缓存编译后的 SQL 查询。
  
  不是所有的 PDO 驱动都实现了此功能（例如 PDO_ODBC）。 考虑使用 prepare 代替。
  
  字符集不仅仅要在数据库服务器上设置，也要为数据库连接设置（取决于驱动），它影响了 PDO::quote。  更
  多信息可参考PDO 驱动文档。

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  要添加引号的字符串。
  <info>int</info>     <strong>$type</strong>    为驱动程序的数据类型提供引号风格的提示。例如 <info>PDO_PARAM_LOB</info> 将告诉驱动程序转义二进
                   制数据。

<comment>Return:</comment>
  <info>string|false</info>  返回加引号的字符串，理论上可以安全用于 SQL 语句。 如果驱动不支持这种方式，将返回
                <info>false</info> 。

<comment>See Also:</comment>
   * PDO::prepare
   * PDOStatement::execute


id: PDO::rollBack
type: function
doc:
<comment>Description:</comment>
  回滚事务
    
  
  回滚由 PDO::beginTransaction 发起的当前事务。如果没有事务激活，将抛出一个 <class>PDOException</class> 异常。
  
  如果数据库被设置成自动提交模式，此函数（方法）在回滚事务之后将恢复自动提交模式。
  
  包括 MySQL 在内的一些数据库， 当在一个事务内有类似删除或创建数据表等 DLL 语句时，会自动导致一个隐
  式地提交。隐式地提交将无法回滚此事务范围内的任何更改。

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

<comment>See Also:</comment>
   * PDO::beginTransaction
   * PDO::commit
   * 事务和自动提交


id: PDO::setAttribute
type: function
doc:
<comment>Description:</comment>
  设置属性
    
  
  设置数据库句柄属性。下面列出了一些可用的通用属性；有些驱动可能使用另外的特定属性。 请注意，特定的
  驱动程序属性不得用于其他驱动程序。 <info>PDO::ATTR_CASE</info> 强制列名为指定的大小写。可以采用以下某个值：
  <info>PDO::CASE_LOWER</info> 强制列名小写。 <info>PDO::CASE_NATURAL</info> 保留数据库驱动返回的列名。 <info>PDO::CASE_UPPER</info> 强制列
  名大写。 <info>PDO::ATTR_ERRMODE</info> PDO 的报错方式。可以采用以下某个值： <info>PDO::ERRMODE_SILENT</info> 仅设置错误代
  码。 <info>PDO::ERRMODE_WARNING</info> 引发 <info>E_WARNING</info> 警告。 <info>PDO::ERRMODE_EXCEPTION</info> 抛出 <class>PDOException</class>。
  <info>PDO::ATTR_ORACLE_NULLS</info> 此属性适用于所有驱动程序，而不仅仅是 Oracle。  确定是否以及如何转换 <info>null</info> 和
  空字符串。可以采用以下值之一： <info>PDO::NULL_NATURAL</info> 不发生转换。 <info>PDO::NULL_EMPTY_STRING</info> 空字符串转换
  为 <info>null</info>。 <info>PDO::NULL_TO_STRING</info><info>null</info> 被转换为空字符串。 <info>PDO::ATTR_STRINGIFY_FETCHES</info> 获取时是否将数值
  转换为字符串。值采用 <info>bool</info> 类型：<info>true</info> 表示启用，<info>false</info> 表示禁用。 <info>PDO::ATTR_STATEMENT_CLASS</info> 设置从
  PDOStatement 派生的用户提供的语句类。  需要 <return>array(string classname, array(mixed
  constructor_args))</return>。  不能用于持久 PDO 实例。 <info>PDO::ATTR_TIMEOUT</info> 指定超时的秒数。需要 <info>int</info> 类型的
  值。  并非所有驱动都支持此选项，这意味着驱动和驱动之间可能会有差异。比如，SQLite 等待的时间达到此
  值后就放弃获取可写锁，但其他驱动可能会将此值解释为一个连接或读取超时的间隔。  <info>PDO::ATTR_AUTOCOMMIT</info>
  仅适用于 OCI、Firebird 和 MySQL 驱动程序。  是否自动提交每个单独的语句。采用 <info>bool</info> 类型的值：<info>true</info>
  表示启用，<info>false</info> 表示禁用。默认为 <info>true</info>。 <info>PDO::ATTR_EMULATE_PREPARES</info> 仅适用于 OCI、Firebird 和 MySQL
  驱动程序。  是否启用或禁用预处理语句的模拟。有些驱动天然不支持或有限度地支持预处理语句。如果设置为
  <info>true</info>，PDO 始终模拟预处理语句，否则 PDO 将会尝试使用本地预处理语句。如果驱动不能成功预处理当前查
  询，PDO 将始终回退到模拟预处理语句上。 <info>PDO::MYSQL_ATTR_USE_BUFFERED_QUERY</info> 仅适用于 MySQL 驱动程
  序。  是否使用缓冲查询。采用 <info>bool</info> 类型的值：<info>true</info> 表示启用，<info>false</info> 表示禁用。默认情况下，默认为
  <info>true</info>。 <info>PDO::ATTR_DEFAULT_FETCH_MODE</info> 设置默认获取模式。关于模式的说明以及如何使用可以在
  PDOStatement::fetch 文档找到。
  
  强制列名为指定的大小写。可以采用以下某个值：
  
  强制列名小写。
  
  保留数据库驱动返回的列名。
  
  强制列名大写。
  
  PDO 的报错方式。可以采用以下某个值：
  
  仅设置错误代码。
  
  引发 <info>E_WARNING</info> 警告。
  
  抛出 <class>PDOException</class>。
  
  此属性适用于所有驱动程序，而不仅仅是 Oracle。
  
  确定是否以及如何转换 <info>null</info> 和空字符串。可以采用以下值之一：
  
  不发生转换。
  
  空字符串转换为 <info>null</info>。
  
  <info>null</info> 被转换为空字符串。
  
  获取时是否将数值转换为字符串。值采用 <info>bool</info> 类型：<info>true</info> 表示启用，<info>false</info> 表示禁用。
  
  设置从 PDOStatement 派生的用户提供的语句类。  需要 <return>array(string classname, array(mixed
  constructor_args))</return>。
  
  不能用于持久 PDO 实例。
  
  指定超时的秒数。需要 <info>int</info> 类型的值。
  
  并非所有驱动都支持此选项，这意味着驱动和驱动之间可能会有差异。比如，SQLite 等待的时间达到此值后就
  放弃获取可写锁，但其他驱动可能会将此值解释为一个连接或读取超时的间隔。
  
  仅适用于 OCI、Firebird 和 MySQL 驱动程序。
  
  是否自动提交每个单独的语句。采用 <info>bool</info> 类型的值：<info>true</info> 表示启用，<info>false</info> 表示禁用。默认为 <info>true</info>。
  
  仅适用于 OCI、Firebird 和 MySQL 驱动程序。
  
  是否启用或禁用预处理语句的模拟。有些驱动天然不支持或有限度地支持预处理语句。如果设置为 <info>true</info>，PDO
  始终模拟预处理语句，否则 PDO 将会尝试使用本地预处理语句。如果驱动不能成功预处理当前查询，PDO 将始
  终回退到模拟预处理语句上。
  
  仅适用于 MySQL 驱动程序。
  
  是否使用缓冲查询。采用 <info>bool</info> 类型的值：<info>true</info> 表示启用，<info>false</info> 表示禁用。默认情况下，默认为 <info>true</info>。
  
  设置默认获取模式。关于模式的说明以及如何使用可以在 PDOStatement::fetch 文档找到。

<comment>Param:</comment>
  <info>int</info>    <strong>$attribute</strong>  要修改的属性。
  <info>mixed</info>  <strong>$value</strong>      设置 <strong>$attribute</strong> 的值，属性的不同导致需要的类型也会不同。

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

<comment>See Also:</comment>
   * <strong>PDO::getAttribute()</strong>
   * <strong>PDOStatement::getAttribute()</strong>
   * <strong>PDOStatement::setAttribute()</strong>


id: PDO::sqliteCreateAggregate
type: function
doc:
<comment>Description:</comment>
  Registers an aggregating User Defined Function for use in SQL statements
    
  
  此函数是实验性的。此函数的表象，包括名称及其相关文档都可能在未来的
  PHP 发布版本中未通知就被修改。使用本函数风险自担。
  
  This method is similar to  except that it registers functions that can be used to calculate a
  result aggregated across all the rows of a query.
  
  The key difference between this method and  is that two functions are required to manage the
  aggregate.

<comment>Param:</comment>
  <info>string</info>    <strong>$function_name</strong>  The name of the function used in SQL statements.
  <info>callable</info>  <strong>$step_func</strong>      Callback function called for each row of the result set. Your PHP
                            function should accumulate the result and store it in the aggregation
                            context.
                            
                            This function need to be defined as:
                            <info>mixed</info>step<info>mixed</info><strong>$context</strong><info>int</info><strong>$rownumber</strong><info>mixed</info><strong>$value</strong><info>mixed</info><strong>$values</strong> <strong>$context</strong><info>null</info>
                            for the first row; on subsequent rows it will have the value that was
                            previously returned from the step function; you should use this to
                            maintain the aggregate state. <strong>$rownumber</strong> The current row number. <strong>$value</strong>
                            The first argument passed to the aggregate. <strong>$values</strong> Further arguments
                            passed to the aggregate.  The return value of this function will be used
                            as the <strong>$context</strong> argument in the next call of the step or finalize
                            functions.
                            
                            <info>null</info> for the first row; on subsequent rows it will have the value that
                            was previously returned from the step function; you should use this to
                            maintain the aggregate state.
                            
                            The current row number.
                            
                            The first argument passed to the aggregate.
                            
                            Further arguments passed to the aggregate.
  <info>mixed</info>     <strong>$context</strong>        <info>null</info> for the first row; on subsequent rows it will have the value that
                            was previously returned from the step function; you should use this to
                            maintain the aggregate state.
  <info>int</info>       <strong>$rownumber</strong>      The current row number.
  <info>mixed</info>     <strong>$value</strong>          The first argument passed to the aggregate.
  <info>mixed</info>     <strong>$values</strong>         Further arguments passed to the aggregate.
  <info>callable</info>  <strong>$finalize_func</strong>  Callback function to aggregate the "stepped" data from each row.  Once
                            all the rows have been processed, this function will be called and it
                            should then take the data from the aggregation context and return the
                            result. This callback function should return a type understood by SQLite
                            (i.e. scalar type).
                            
                            This function need to be defined as: <info>mixed</info>fini<info>mixed</info><strong>$context</strong><info>int</info><strong>$rowcount</strong>
                            <strong>$context</strong> Holds the return value from the very last call to the step
                            function. <strong>$rowcount</strong> Holds the number of rows over which the aggregate
                            was performed.  The return value of this function will be used as the
                            return value for the aggregate.
                            
                            Holds the return value from the very last call to the step function.
                            
                            Holds the number of rows over which the aggregate was performed.
  <info>mixed</info>     <strong>$context</strong>        Holds the return value from the very last call to the step function.
  <info>int</info>       <strong>$rowcount</strong>       Holds the number of rows over which the aggregate was performed.
  <info>int</info>       <strong>$num_args</strong>       Hint to the SQLite parser if the callback function accepts a
                            predetermined number of arguments.

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

<comment>See Also:</comment>
   * 
   * <strong>sqlite_create_function()</strong>
   * <strong>sqlite_create_aggregate()</strong>


id: PDO::sqliteCreateCollation
type: function
doc:
<comment>Description:</comment>
  Registers a User Defined Function for use as a collating function in SQL statements
    
  
  此函数是实验性的。此函数的表象，包括名称及其相关文档都可能在未来的
  PHP 发布版本中未通知就被修改。使用本函数风险自担。

<comment>Param:</comment>
  <info>string</info>    <strong>$name</strong>      Name of the SQL collating function to be created or redefined.
  <info>callable</info>  <strong>$callback</strong>  The name of a PHP function or user-defined function to apply as a callback,
                       defining the behavior of the collation. It should accept two strings and
                       return as strcmp() does, i.e. it should return -1, 1, or 0 if the first
                       string sorts before, sorts after, or is equal to the second.
                       
                       This function need to be defined as: <info>int</info>collation<info>string</info><strong>$string1</strong><info>string</info><strong>$string2</strong>

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


id: PDO::sqliteCreateFunction
type: function
doc:
<comment>Description:</comment>
  Registers a User Defined Function for use in SQL statements
    
  
  此函数是实验性的。此函数的表象，包括名称及其相关文档都可能在未来的
  PHP 发布版本中未通知就被修改。使用本函数风险自担。
  
  This method allows you to register a PHP function with SQLite as an  UDF (User Defined Function),
  so that it can be called from within your SQL statements.
  
  The UDF can be used in any SQL statement that can call functions, such as SELECT and UPDATE
  statements and also in triggers.

<comment>Param:</comment>
  <info>string</info>    <strong>$function_name</strong>  The name of the function used in SQL statements.
  <info>callable</info>  <strong>$callback</strong>       Callback function to handle the defined SQL function.
                            
                            Callback functions should return a type understood by SQLite (i.e.
                            scalar type).
                            
                            This function need to be defined as:
                            <info>mixed</info>callback<info>mixed</info><strong>$value</strong><info>mixed</info><strong>$values</strong> <strong>$value</strong> The first argument passed to
                            the SQL function. <strong>$values</strong> Further arguments passed to the SQL function.
                            
                            The first argument passed to the SQL function.
                            
                            Further arguments passed to the SQL function.
  <info>mixed</info>     <strong>$value</strong>          The first argument passed to the SQL function.
  <info>mixed</info>     <strong>$values</strong>         Further arguments passed to the SQL function.
  <info>int</info>       <strong>$num_args</strong>       The number of arguments that the SQL function takes. If this parameter
                            is <return>-1</return>, then the SQL function may take any number of arguments.
  <info>int</info>       <strong>$flags</strong>          A bitwise conjunction of flags. Currently, only
                            <info>PDO::SQLITE_DETERMINISTIC</info> is supported, which specifies that the
                            function always returns the same result given the same inputs within a
                            single SQL statement.

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

<comment>See Also:</comment>
   * 
   * <strong>sqlite_create_function()</strong>
   * <strong>sqlite_create_aggregate()</strong>


id: PDOStatement::bindColumn
type: function
doc:
<comment>Description:</comment>
  绑定一列到一个 PHP 变量
    
  
  PDOStatement::bindColumn 安排特定变量绑定到查询结果集中的指定列。每次调用 PDOStatement::fetch 或
  PDOStatement::fetchAll 都将更新所有绑定到列的变量。
  
  在语句执行前 PDO 有关列的信息并非总是可用，可移植的应用应在 PDOStatement::execute 之后 调用此函数
  （方法）。
  
  但是，当使用 PgSQL 驱动时，要想能绑定 LOB 列作为流，应用程序必须在调用 PDOStatement::execute 之前
  调用此方法，否则大对象 OID 作为整数返回。

<comment>Param:</comment>
  <info>string|int</info>  <strong>$column</strong>         结果集中的列号（从1开始索引）或列名。如果使用列名，注意名称应该与由驱
                              动返回的列名大小写保持一致。
  <info>mixed</info>       <strong>$var</strong>            将绑定到列的 PHP 变量名称
  <info>int</info>         <strong>$type</strong>           通过 <return>PDO::PARAM_*</return> 常量指定的参数的数据类型。
  <info>int</info>         <strong>$maxLength</strong>      预分配提示。
  <info>mixed</info>       <strong>$driverOptions</strong>  驱动的可选参数。

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

<comment>See Also:</comment>
   * PDOStatement::execute
   * PDOStatement::fetch
   * PDOStatement::fetchAll
   * PDOStatement::fetchColumn


id: PDOStatement::bindParam
type: function
doc:
<comment>Description:</comment>
  绑定一个参数到指定的变量名
    
  
  绑定一个PHP变量到用作预处理的SQL语句中的对应命名占位符或问号占位符。 不同于
  PDOStatement::bindValue ，此变量作为引用被绑定，并只在 PDOStatement::execute 被调用的时候才取其
  值。
  
  大多数参数是输入参数，即，参数以只读的方式用来建立查询（但仍然可以根据 <strong>$type</strong> 进行转换）。一些驱动
  支持调用存储过程并作为输出参数返回数据，一些支持作为输入/输出参数，既发送数据又接收更新后的数据。

<comment>Param:</comment>
  <info>string|int</info>  <strong>$param</strong>          参数标识符。对于使用命名占位符的预处理语句，应是类似 :name 形式的参数
                              名。对于使用问号占位符的预处理语句，应是以1开始索引的参数位置。
  <info>mixed</info>       <strong>$var</strong>            绑定到 SQL 语句参数的 PHP 变量名。
  <info>int</info>         <strong>$type</strong>           使用 <return>PDO::PARAM_*</return> 常量明确地指定参数的类型。要从存储过程中返回 INOUT
                              参数，需要为 <strong>$type</strong> 参数使用按位或操作符去设置 <info>PDO::PARAM_INPUT_OUTPUT</info>
                              位。
  <info>int</info>         <strong>$maxLength</strong>      数据类型的长度。为表明参数是一个存储过程的  OUT 参数，必须明确地设置此
                              长度。 仅当 <strong>$type</strong> 参数为 <info>PDO::PARAM_INPUT_OUTPUT</info> 时才有意义。
  <info>mixed</info>       <strong>$driverOptions</strong>  

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

<comment>See Also:</comment>
   * PDO::prepare
   * PDOStatement::execute
   * PDOStatement::bindValue


id: PDOStatement::bindValue
type: function
doc:
<comment>Description:</comment>
  把一个值绑定到一个参数
    
  
  绑定一个值到用作预处理的 SQL 语句中的对应命名占位符或问号占位符。

<comment>Param:</comment>
  <info>string|int</info>  <strong>$param</strong>  参数标识符。对于使用命名占位符的预处理语句，应是类似 :name 形式的参数名。对于
                      使用问号占位符的预处理语句，应是以1开始索引的参数位置。
  <info>mixed</info>       <strong>$value</strong>  绑定到参数的值
  <info>int</info>         <strong>$type</strong>   使用 <return>PDO::PARAM_*</return> 常量明确地指定参数的类型。

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

<comment>See Also:</comment>
   * PDO::prepare
   * PDOStatement::execute
   * PDOStatement::bindParam


id: PDOStatement::closeCursor
type: function
doc:
<comment>Description:</comment>
  关闭游标，使语句能再次被执行
    
  
  PDOStatement::closeCursor 释放到数据库服务的连接，以便发出其他 SQL 语句，但使语句处于一个可以被再
  次执行的状态。
  
  当上一个执行的 PDOStatement 对象仍有未取行时，此方法对那些不支持再执行一个 PDOStatement 对象的数据
  库驱动非常有用。 如果数据库驱动受此限制，则可能出现失序错误的问题。
  
  PDOStatement::closeCursor 要么是一个可选驱动的特有方法（效率最高）来实现，要么是在没有驱动特定的功
  能时作为一般的PDO 备用来实现。一般的备用语义上与下面的 PHP 代码相同： fetch()) ; if
  (!$stmt->nextRowset()) break;
  } while (true);
  ?>
  ]]>

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

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


id: PDOStatement::columnCount
type: function
doc:
<comment>Description:</comment>
  返回结果集中的列数
    
  
  使用 PDOStatement::columnCount 返回由 PDOStatement 对象代表的结果集中的列数。
  
  如果是由 PDO::query 返回的 PDOStatement 对象，则列数计算立即可用。
  
  如果是由 PDO::prepare 返回的 PDOStatement 对象，则在调用 PDOStatement::execute 之前都不能准确地计
  算出列数。

<comment>Return:</comment>
  <info>int</info>  返回由 PDOStatement 对象代表的结果集中的列数，即便结果集为空。如果没有结果集，则
       PDOStatement::columnCount 返回 <return>0</return>。

<comment>See Also:</comment>
   * PDO::prepare
   * PDOStatement::execute
   * PDOStatement::rowCount


id: PDOStatement::debugDumpParams
type: function
doc:
<comment>Description:</comment>
  打印一条 SQL 预处理命令
    
  
  直接打印出一条预处理语句包含的信息。提供正在使用的 <return>SQL</return> 查询、所用参数（<return>Params</return>）的数目、参数列表及
  其键名或位置、名称以及查询中的位置（如果当前 POD 驱动不支持，则为 -1），类型（<return>param_type</return>）为整数且
  <return>is_param</return> 为布尔值。
  
  这是调试函数，在正常输出的情况下直接输出数据。 和直接将结果输出到浏览器一样，可使用输出控制函数来
  捕获当前函数的输出，然后(例如)保存到一个 <info>string</info> 中。
  
  和直接将结果输出到浏览器一样，可使用输出控制函数来捕获当前函数的输出，然后(例如)保存到一个 <info>string</info>
  中。
  
  只打印此时此刻语句中的参数。额外的参数不存储在语句中，也就不会被输出。

<comment>Return:</comment>
  <info>bool|null</info>  返回 <info>null</info>, 或者错误时返回 <info>false</info>。

<comment>See Also:</comment>
   * PDO::prepare
   * PDOStatement::bindParam
   * PDOStatement::bindValue


id: PDOStatement::errorCode
type: function
doc:
<comment>Description:</comment>
  获取跟上一次语句句柄操作相关的 SQLSTATE

<comment>Return:</comment>
  <info>string|null</info>  与 PDO::errorCode 相同，只是 PDOStatement::errorCode 只取回 PDOStatement 对象执行操作
               中的错误码。

<comment>See Also:</comment>
   * PDO::errorCode
   * PDO::errorInfo
   * PDOStatement::errorInfo


id: PDOStatement::errorInfo
type: function
doc:
<comment>Description:</comment>
  获取跟上一次语句句柄操作相关的扩展错误信息

<comment>Return:</comment>
  <info>array</info>  PDOStatement::errorInfo 返回一个关于上一次语句句柄执行操作的错误信息的数组。该数组至少包含
         下列字段： ElementInformation0SQLSTATE 错误码（一个由5个字母或数字组成的在 ANSI SQL 标准中
         定义的标识符）。1具体驱动错误码。2具体驱动错误信息。

<comment>See Also:</comment>
   * PDO::errorCode
   * PDO::errorInfo
   * PDOStatement::errorCode


id: PDOStatement::execute
type: function
doc:
<comment>Description:</comment>
  执行预处理语句
    
  
  执行预处理语句。如果预处理语句含有参数标记，必须选择下面其中一种做法：  必须调用
  PDOStatement::bindParam 和/或 PDOStatement::bindValue 以将变量或值（分别）绑定到参数标记。如果有的
  话，通过关联参数标记绑定的变量来传递输入值和取得输出值或必须传递只作为输入参数值的数组
  
  必须调用 PDOStatement::bindParam 和/或 PDOStatement::bindValue 以将变量或值（分别）绑定到参数标
  记。如果有的话，通过关联参数标记绑定的变量来传递输入值和取得输出值
  
  或必须传递只作为输入参数值的数组

<comment>Param:</comment>
  <info>array|null</info>  <strong>$params</strong>  一个元素个数和将被执行的 SQL 语句中绑定的参数一样多的数组。所有的值作为
                       <info>PDO::PARAM_STR</info> 对待。
                       
                       多个值不能绑定到一个参数；比如，不允许绑定两个值到 IN（）子句中一个单独的命名
                       参数。
                       
                       绑定的值不能比指定的多；如果在 <strong>$params</strong> 中存在比 PDO::prepare 预处理的SQL 指定
                       的多的键名，则此语句将会失败并发出一个错误。

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

<comment>See Also:</comment>
   * PDO::prepare
   * PDOStatement::bindParam
   * PDOStatement::fetch
   * PDOStatement::fetchAll
   * PDOStatement::fetchColumn


id: PDOStatement::fetch
type: function
doc:
<comment>Description:</comment>
  从结果集中获取下一行
    
  
  从一个 PDOStatement 对象相关的结果集中获取下一行。<strong>$mode</strong> 参数决定 POD 如何返回行。

<comment>Param:</comment>
  <info>int</info>  <strong>$mode</strong>               控制下一行如何返回给调用者。此值必须是 <return>PDO::FETCH_*</return> 系列常量中的一个，缺
                           省为 <return>PDO::ATTR_DEFAULT_FETCH_MODE</return> 的值 （默认为 <return>PDO::FETCH_BOTH</return> ）。
                           <return>PDO::FETCH_ASSOC</return>：返回一个索引为结果集列名的数组 <return>PDO::FETCH_BOTH</return>（默
                           认）：返回一个索引为结果集列名和以0开始的列号的数组 <return>PDO::FETCH_BOUND</return>：返
                           回 <info>true</info> ，并分配结果集中的列值给 PDOStatement::bindColumn 方法绑定的 PHP
                           变量。 <return>PDO::FETCH_CLASS</return>：返回一个请求类的新实例，映射结果集中的列名到类中
                           对应的属性名，然后调用构造函数，除非指定 <return>PDO::FETCH_PROPS_LATE</return>。如果
                           <strong>$mode</strong> 包含 PDO::FETCH_CLASSTYPE（例如：<return>PDO::FETCH_CLASS |
                           PDO::FETCH_CLASSTYPE</return>），则类名由第一列的值决定 <return>PDO::FETCH_INTO</return>：更新一个
                           被请求类已存在的实例，映射结果集中的列到类中命名的属性 <return>PDO::FETCH_LAZY</return>：
                           结合使用 <return>PDO::FETCH_BOTH</return> 和 <return>PDO::FETCH_OBJ</return>，创建供用来访问的对象变量名
                           <return>PDO::FETCH_NAMED</return>：返回与 <return>PDO::FETCH_ASSOC</return> 具有相同形式的数组，除了如果有
                           多个同名列，则该键引用的值将是具有该列名的行中所有值的数组
                           <return>PDO::FETCH_NUM</return>：返回一个索引为以0开始的结果集列号的数组 <return>PDO::FETCH_OBJ</return>：
                           返回一个属性名对应结果集列名的匿名对象 <return>PDO::FETCH_PROPS_LATE</return>：当与
                           <return>PDO::FETCH_CLASS</return> 一起使用时，类的构造方法在从相应的列值分配属性之前被调
                           用。
                           
                           <return>PDO::FETCH_ASSOC</return>：返回一个索引为结果集列名的数组
                           
                           <return>PDO::FETCH_BOTH</return>（默认）：返回一个索引为结果集列名和以0开始的列号的数组
                           
                           <return>PDO::FETCH_BOUND</return>：返回 <info>true</info> ，并分配结果集中的列值给
                           PDOStatement::bindColumn 方法绑定的 PHP 变量。
                           
                           <return>PDO::FETCH_CLASS</return>：返回一个请求类的新实例，映射结果集中的列名到类中对应的
                           属性名，然后调用构造函数，除非指定 <return>PDO::FETCH_PROPS_LATE</return>。如果 <strong>$mode</strong> 包含
                           PDO::FETCH_CLASSTYPE（例如：<return>PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE</return>），则
                           类名由第一列的值决定
                           
                           <return>PDO::FETCH_INTO</return>：更新一个被请求类已存在的实例，映射结果集中的列到类中命名
                           的属性
                           
                           <return>PDO::FETCH_LAZY</return>：结合使用 <return>PDO::FETCH_BOTH</return> 和 <return>PDO::FETCH_OBJ</return>，创建供用来访
                           问的对象变量名
                           
                           <return>PDO::FETCH_NAMED</return>：返回与 <return>PDO::FETCH_ASSOC</return> 具有相同形式的数组，除了如果有
                           多个同名列，则该键引用的值将是具有该列名的行中所有值的数组
                           
                           <return>PDO::FETCH_NUM</return>：返回一个索引为以0开始的结果集列号的数组
                           
                           <return>PDO::FETCH_OBJ</return>：返回一个属性名对应结果集列名的匿名对象
                           
                           <return>PDO::FETCH_PROPS_LATE</return>：当与 <return>PDO::FETCH_CLASS</return> 一起使用时，类的构造方法在从
                           相应的列值分配属性之前被调用。
  <info>int</info>  <strong>$cursorOrientation</strong>  对于 一个 PDOStatement 对象表示的可滚动游标，该值决定了哪一行将被返回给调
                           用者。此值必须是 <return>PDO::FETCH_ORI_*</return> 系列常量中的一个，默认为
                           <return>PDO::FETCH_ORI_NEXT</return>。要想让 PDOStatement 对象使用可滚动游标，必须在用
                           PDO::prepare 预处理SQL语句时，设置 <return>PDO::ATTR_CURSOR</return> 属性为
                           <return>PDO::CURSOR_SCROLL</return>。
  <info>int</info>  <strong>$cursorOffset</strong>       对于一个 <strong>$cursorOrientation</strong> 参数设置为 <return>PDO::FETCH_ORI_ABS</return> 的 PDOStatement
                           对象代表的可滚动游标，此值指定结果集中想要获取行的绝对行号。
                           
                           对于一个 <strong>$cursorOrientation</strong> 参数设置为 <return>PDO::FETCH_ORI_REL</return> 的 PDOStatement
                           对象代表的可滚动游标，此值指定想要获取行相对于调用 PDOStatement::fetch 前
                           游标的位置

<comment>Return:</comment>
  <info>mixed</info>  此方法成功时返回的值依赖于获取类型。在所有情况下，失败或没有更多记录时都返回 <info>false</info>。

<comment>See Also:</comment>
   * PDO::prepare
   * PDOStatement::execute
   * PDOStatement::fetchAll
   * PDOStatement::fetchColumn
   * PDOStatement::fetchObject
   * PDOStatement::setFetchMode


id: PDOStatement::fetchAll
type: function
doc:
<comment>Description:</comment>
  从结果集中获取剩余的行

<comment>Param:</comment>
  <info>int</info>         <strong>$mode</strong>             控制返回数组的内容如同 PDOStatement::fetch 文档中记载的一样。默认为
                                <info>PDO::ATTR_DEFAULT_FETCH_MODE</info> 的值（ 其缺省值为 <info>PDO::FETCH_BOTH</info> ）
                                
                                想要返回一个包含结果集中单独一列所有值的数组，需要指定
                                <info>PDO::FETCH_COLUMN</info> 。通过指定 <strong>$column</strong> 参数获取想要的列。
                                
                                想要获取结果集中单独一列的唯一值，需要将 <info>PDO::FETCH_COLUMN</info> 和
                                <info>PDO::FETCH_UNIQUE</info> 按位或。
                                
                                想要返回一个根据指定列把值分组后的关联数组，需要将 <info>PDO::FETCH_COLUMN</info>
                                和 <info>PDO::FETCH_GROUP</info> 按位或。
  <info>int</info>         <strong>$column</strong>           与 <info>PDO::FETCH_COLUMN</info> 一起使用。返回指定以 0 开始索引的列。
  <info>string</info>      <strong>$class</strong>            与 <info>PDO::FETCH_CLASS</info>一起使用。返回指定类的实例，映射每行的列到类中对
                                应的属性名。
  <info>array|null</info>  <strong>$constructorArgs</strong>  当 <strong>$mode</strong> 参数为 <info>PDO::FETCH_CLASS</info> 时自定义类构造方法的参数。
  <info>callable</info>    <strong>$callback</strong>         与 <info>PDO::FETCH_FUNC</info>一起使用。将每行的列作为参数传递给指定的函数，并返
                                回调用函数后的结果。

<comment>Return:</comment>
  <info>array</info>  PDOStatement::fetchAll 返回一个包含结果集中所有剩余行的数组。此数组的每一行要么是一个列值的
         数组，要么是属性对应每个列名的一个对象。如果获取到的结果为 0，则返回空数组。
         
         使用此方法获取大结果集将导致系统负担加重且可能占用大量网络资源。与其取回所有数据后用PHP来操
         作，倒不如考虑使用数据库服务来处理结果集。例如，在取回数据并通过PHP处理前，在 SQL 中使用
         WHERE  和 ORDER BY 子句来限定结果。

<comment>See Also:</comment>
   * PDO::query
   * PDOStatement::fetch
   * PDOStatement::fetchColumn
   * PDO::prepare
   * PDOStatement::setFetchMode


id: PDOStatement::fetchColumn
type: function
doc:
<comment>Description:</comment>
  从结果集中的下一行返回单独的一列
    
  
  从结果集中的下一行返回单独的一列，如果没有了，则返回 <info>false</info> 。
  
  PDOStatement::fetchColumn 不应该用于检索 boolean 列，因为无法区分 <info>false</info> 值和没有更多行可检索。请改
  用 PDOStatement::fetch。

<comment>Param:</comment>
  <info>int</info>  <strong>$column</strong>  你想从行里取回的列的索引数字（以0开始的索引）。如果没有提供值，则
                PDOStatement::fetchColumn 获取第一列。

<comment>Return:</comment>
  <info>mixed</info>  PDOStatement::fetchColumn 从结果集中的下一行返回单独的一列，如果没有更多行，则返回 <info>false</info>。
         
         如果使用 PDOStatement::fetchColumn 取回数据，则没有办法返回同一行的另外一列。

<comment>See Also:</comment>
   * PDO::query
   * PDOStatement::fetch
   * PDOStatement::fetchAll
   * PDO::prepare
   * PDOStatement::setFetchMode


id: PDOStatement::fetchObject
type: function
doc:
<comment>Description:</comment>
  获取下一行并作为一个对象返回
  
  获取下一行并作为一个对象返回。此函数（方法）是使用 <info>PDO::FETCH_CLASS</info> 或 <info>PDO::FETCH_OBJ</info> 风格的
  PDOStatement::fetch 的一种替代。
  
  当获取对象时，它的属性从各自的列值中分配，然后调用它的构造函数。

<comment>Param:</comment>
  <info>string|null</info>  <strong>$class</strong>            创建类的名称。
  <info>array</info>        <strong>$constructorArgs</strong>  此数组的元素被传递给构造方法。

<comment>Return:</comment>
  <info>object|false</info>  返回一个属性名对应于列名的所要求类的实例，  或者在失败时返回 <info>false</info>.

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


id: PDOStatement::getAttribute
type: function
doc:
<comment>Description:</comment>
  检索语句属性
    
  
  得到语句的属性。当前，不存在通用的属性，只有驱动特定的属性： <return>PDO::ATTR_CURSOR_NAME</return> （Firebird 和
  ODBC 特性）： 获取 <return>UPDATE ... WHERE CURRENT OF</return> 的游标名称。  请注意，驱动特定的属性不得与其他驱动
  程序一起使用。
  
  <return>PDO::ATTR_CURSOR_NAME</return> （Firebird 和 ODBC 特性）： 获取 <return>UPDATE ... WHERE CURRENT OF</return> 的游标名称。

<comment>Param:</comment>
  <info>int</info>  <strong>$name</strong>  要查询的属性。

<comment>Return:</comment>
  <info>mixed</info>  返回属性值。

<comment>See Also:</comment>
   * PDO::getAttribute
   * PDO::setAttribute
   * PDOStatement::setAttribute


id: PDOStatement::getColumnMeta
type: function
doc:
<comment>Description:</comment>
  返回结果集中一列的元数据
    
  
  检索一个在结果集中以0开始索引的列的元数据作为一个关联数组。
  
  一些驱动程序可能没有实现 PDOStatement::getColumnMeta，因为它是可选的。但是，手册中记录的所有 PDO
  驱动程序都实现了此功能。

<comment>Param:</comment>
  <info>int</info>  <strong>$column</strong>  结果集中以0开始索引的列。

<comment>Return:</comment>
  <info>array|false</info>  返回一个关联数组，它包含了下列表示一个单独列的元数据的值：
               
               如果结果集不存在，或者是请求的列在结果集中不存在，则返回 <info>false</info>。

<comment>See Also:</comment>
   * PDOStatement::columnCount
   * PDOStatement::rowCount


id: PDOStatement::getIterator
type: function
doc:
<comment>Description:</comment>
  Gets result set iterator
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>Iterator</info>  


id: PDOStatement::nextRowset
type: function
doc:
<comment>Description:</comment>
  在一个多行集合语句句柄中推进到下一个行集合
    
  
  一些数据库服务支持返回一个以上行集合（也被称为结果集）的存储过程。PDOStatement::nextRowset 使你能
  够结合一个 PDOStatement 对象访问第二个以及后续的行集合。上述的每个行集合可以有不同的列集合。

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

<comment>See Also:</comment>
   * PDOStatement::columnCount
   * PDOStatement::execute
   * PDOStatement::getColumnMeta
   * PDO::query


id: PDOStatement::rowCount
type: function
doc:
<comment>Description:</comment>
  返回受上一个 SQL 语句影响的行数
    
  
  PDOStatement::rowCount 返回上一个由对应的 <return>PDOStatement</return> 对象执行 DELETE、INSERT 或 UPDATE 语句受影
  响的行数。
  
  对于生成结果集的语句，例如 <return>SELECT</return>，行为是未定义的，并且对于每个驱动程序可能不同。某些数据库可能会
  返回该语句生成的行数（例如缓冲模式下的 MySQL），但不能保证所有数据库都具有这种行为，并且对于可移植
  的应用不应依赖于此方式。
  
  对 SQLite 驱动程序，此方法始终返回“0”（零），并且 PostgreSQL 驱动程序仅当将 <info>PDO::ATTR_CURSOR</info> 语句
  属性设置为 <info>PDO::CURSOR_SCROLL</info> 时返回“0”（零）。

<comment>Return:</comment>
  <info>int</info>  返回行数。

<comment>See Also:</comment>
   * PDOStatement::columnCount
   * PDOStatement::fetchColumn
   * PDO::query


id: PDOStatement::setAttribute
type: function
doc:
<comment>Description:</comment>
  设置一个语句属性
    
  
  给语句设置一个属性。当前，没有通用的属性可以设置，只有驱动特定的属性： <return>PDO::ATTR_CURSOR_NAME</return>
  （Firebird 和 ODBC 特性）： 为 <return>UPDATE ... WHERE CURRENT OF</return> 设置游标名称。  请注意，驱动特定的属性
  不得与其他驱动程序一起使用。
  
  <return>PDO::ATTR_CURSOR_NAME</return> （Firebird 和 ODBC 特性）： 为 <return>UPDATE ... WHERE CURRENT OF</return> 设置游标名称。

<comment>Param:</comment>
  <info>int</info>    <strong>$attribute</strong>  要修改的属性。
  <info>mixed</info>  <strong>$value</strong>      设置 <strong>$attribute</strong> 的值，属性的不同导致需要的类型也会不同。

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

<comment>See Also:</comment>
   * PDO::getAttribute
   * PDO::setAttribute
   * PDOStatement::getAttribute


id: PDOStatement::setFetchMode
type: function
doc:
<comment>Description:</comment>
  为语句设置默认的获取模式

<comment>Param:</comment>
  <info>int</info>         <strong>$mode</strong>             获取模式必须是 <return>PDO::FETCH_*</return> 系列常量中的一个。
  <info>int</info>         <strong>$colno</strong>            列号。
  <info>string</info>      <strong>$class</strong>            类名。
  <info>array|null</info>  <strong>$constructorArgs</strong>  构造方法参数。
  <info>object</info>      <strong>$object</strong>           对象。

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


id: PGSQL_BOTH
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_fetch_array()</strong>。返回字段值数组，这些字段值既有数字索引（按字段编号）也有关联索引（按字段
  名称）。


id: PGSQL_CONV_FORCE_NULL
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_convert()</strong>。使用 SQL <return>NULL</return> 代替空 <info>string</info>。


id: PGSQL_CONV_IGNORE_NOT_NULL
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_convert()</strong>。不会将 <info>null</info> 转换为 SQL <return>NOT NULL</return> 列。


id: PGSQL_DIAG_CONTEXT
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_result_error_field()</strong>。 An indication of the context in which the error occurred.
  Presently  this includes a call stack traceback of active procedural language  functions and
  internally-generated queries. The trace is one entry  per line, most recent first.


id: PGSQL_DIAG_INTERNAL_POSITION
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_result_error_field()</strong>。 This is defined the same as the <info>PG_DIAG_STATEMENT_POSITION</info> field,
  but  it is used when the cursor position refers to an internally generated  command rather than
  the one submitted by the client. The  <info>PG_DIAG_INTERNAL_QUERY</info> field will always appear when this
  field appears.


id: PGSQL_DIAG_INTERNAL_QUERY
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_result_error_field()</strong>。 失败的内部生成命令的文本。例如，这可能是由 PL/pgSQL 函数发出的
  SQL 查询。


id: PGSQL_DIAG_MESSAGE_DETAIL
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_result_error_field()</strong>。 详细信息：可选的次要错误消息，其中包含有关该问题的更多详细信息。
  可能会有多行。


id: PGSQL_DIAG_MESSAGE_HINT
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_result_error_field()</strong>。 提示：关于如何处理该问题的可选建议。这与细节不同，因为它提供建议
  （可能不合适）而不是确凿的事实。可能会有多行。


id: PGSQL_DIAG_MESSAGE_PRIMARY
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_result_error_field()</strong>。 人可读的主要错误消息（通常是一行）。始终存在。


id: PGSQL_DIAG_SEVERITY
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_result_error_field()</strong>。 严重程度；字段内容是 <return>ERROR</return>、<return>FATAL</return> 或 <return>PANIC</return>（在 error 消息中）或
  <return>WARNING</return>、<return>NOTICE</return>、<return>DEBUG</return>、<return>INFO</return> 或 <return>LOG</return>（在 notice 消息中），或其中之一的本地化翻译。始终存在。


id: PGSQL_DIAG_SEVERITY_NONLOCALIZED
type: constant
doc:
<comment>Description:</comment>
  严重程度；字段内容是 ERROR、FATAL 或 PANIC（在错误消息中）或 WARNING、NOTICE、DEBUG、INFO 或
  LOG（在通知消息中）。这与 PG_DIAG_SEVERITY 字段相同，只是内容从未本地化。这仅存在于 9.6 及更高版本
  /PHP 7.3.0 及更高版本中。


id: PGSQL_DIAG_SOURCE_FILE
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_result_error_field()</strong>。 报告错误的 PostgreSQL 源代码位置的文件名。


id: PGSQL_DIAG_SOURCE_FUNCTION
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_result_error_field()</strong>。 报告错误的 PostgreSQL 源代码函数的名称。


id: PGSQL_DIAG_SOURCE_LINE
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_result_error_field()</strong>。 报告错误的 PostgreSQL 源代码位置的行号。


id: PGSQL_DIAG_SQLSTATE
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_result_error_field()</strong>。 error 的 SQLSTATE 代码。SQLSTATE 代码标识已发生的错误类型；前端应
  用程序可以使用它来执行特定操作（例如错误处理）以响应特定的数据库错误。该字段不可本地化，并且始终存
  在。


id: PGSQL_DIAG_STATEMENT_POSITION
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_result_error_field()</strong>。 包含十进制整数的字符串，指示错误游标位置作为原始语句字符串的索
  引。第一个字符的索引为 1，位置以字符而不是字节为单位进行测量。


id: PGSQL_DML_ASYNC
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_insert()</strong>、<strong>pg_select()</strong>、<strong>pg_update()</strong> 和 <strong>pg_delete()</strong>。通过这些函数执行异步查询。


id: PGSQL_DML_ESCAPE
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_insert()</strong>、<strong>pg_select()</strong>、<strong>pg_update()</strong> 和 <strong>pg_delete()</strong>。将转义应用于所有参数，而不是在内部调
  用 <strong>pg_convert()</strong>。此选项省略元数据查找。查询可能与 <strong>pg_query()</strong> 和 <strong>pg_send_query()</strong> 一样快。


id: PGSQL_DML_EXEC
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_insert()</strong>、<strong>pg_select()</strong>、<strong>pg_update()</strong> 和 <strong>pg_delete()</strong>。通过这些函数执行查询。


id: PGSQL_DML_NO_CONV
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_insert()</strong>、<strong>pg_select()</strong>、<strong>pg_update()</strong> 和 <strong>pg_delete()</strong>。所有参数按原样传递。如果参数包含用户
  提供的数据，则需要使用 <strong>pg_escape_string()</strong> 手动转义。


id: PGSQL_DML_STRING
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_insert()</strong>、<strong>pg_select()</strong>、<strong>pg_update()</strong> 和 <strong>pg_delete()</strong>。返回执行的查询字符串。


id: PGSQL_ERRORS_DEFAULT
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_set_error_verbosity()</strong>。默认模式生成的消息包括上述内容以及所有的详细信息、提示或上下文字
  段（这些可能会有多行）。


id: PGSQL_ERRORS_TERSE
type: constant
doc:
<comment>Description:</comment>
  传递给 <strong>pg_set_error_verbosity()</strong>。指定返回的消息，仅包括严重性、主要文本和位置；通常适合单行。


id: PGSQL_LIBPQ_VERSION_STR
type: constant
doc:
<comment>Description:</comment>
  PHP 8.0.0 之前为包含编译信息的长 libpq 版本号。自 PHP 8.0.0 起，此值与 <info>PGSQL_LIBPQ_VERSION</info> 相同，
  并且弃用 <info>PGSQL_LIBPQ_VERSION_STR</info>。


id: PGSQL_POLLING_READING
type: constant
doc:
<comment>Description:</comment>
  由 <strong>pg_connect_poll()</strong> 返回，表示该连接正在等待 PostgreSQL 套接字可读。


id: PGSQL_POLLING_WRITING
type: constant
doc:
<comment>Description:</comment>
  由 <strong>pg_connect_poll()</strong> 返回，表示该连接正在等待 PostgreSQL 套接字可写。


id: PGSQL_SHOW_CONTEXT_ALWAYS
type: constant
doc:
<comment>Description:</comment>
  跟 <strong>pg_set_error_context_set_visibility()</strong> 一起使用，，上下文字段包含在 error、notice 和 warning 消
  息中。自 PHP 8.3.0 起可用。


id: PGSQL_SHOW_CONTEXT_ERRORS
type: constant
doc:
<comment>Description:</comment>
  跟 <strong>pg_set_error_context_set_visibility()</strong> 一起使用，上下文字段仅包含在错误消息中。这是默认行为。自
  PHP 8.3.0 起可用。


id: PGSQL_SHOW_CONTEXT_NEVER
type: constant
doc:
<comment>Description:</comment>
  跟 <strong>pg_set_error_context_set_visibility()</strong> 一起使用，上下文永远不会显示。自 PHP 8.3.0 起可用。


id: PGSQL_TRACE_REGRESS_MODE
type: constant
doc:
<comment>Description:</comment>
  跟 <strong>pg_trace()</strong> 一起使用，比如 OID 等字段包含在跟踪消息中。自 PHP 8.3.0 起可用。


id: PGSQL_TRANSACTION_ACTIVE
type: constant
doc:
<comment>Description:</comment>
  由 <strong>pg_transaction_status()</strong> 返回。连接正在执行命令。查询（query）已通过连接发送但尚未完成。


id: PGSQL_TRANSACTION_INERROR
type: constant
doc:
<comment>Description:</comment>
  由 <strong>pg_transaction_status()</strong> 返回。连接处于空闲状态且处于失败的事务块中。


id: PGSQL_TUPLES_OK
type: constant
doc:
<comment>Description:</comment>
  由 <strong>pg_result_status()</strong> 返回。成功完成一个返回数据的命令（例如 <return>SELECT</return> 或 <return>SHOW</return>）。


id: PHP_BINDIR
type: constant
doc:
<comment>Description:</comment>
  配置（configure）时设置的 --bindir 值。 在 Windows 上，它是配置（configure）时设置的 --with-prefix
  值。


id: PHP_EXTENSION_DIR
type: constant
doc:
<comment>Description:</comment>
  寻找可动态加载扩展的默认目录（除非被 extension_dir覆盖）。 默认为 <info>PHP_PREFIX</info> （在 Windows 上是
  PHP_PREFIX . "\\ext"）。


id: PHP_EXTRA_VERSION
type: constant
doc:
<comment>Description:</comment>
  当前 PHP 版本的"扩展信息"信息，为字符串形式（例如：“5.2.7-extra” 版本是 '-extra' ）。 通常由发行版
  供应商用来指示包的版本。


id: PHP_FLOAT_MIN
type: constant
doc:
<comment>Description:</comment>
  最小可表示的正浮点数。 如果你需要最小的可表示负浮点数，可以使用 <return>- PHP_FLOAT_MAX</return>。 从 PHP 7.2.0 起
  可用。


id: PHP_INT_MAX
type: constant
doc:
<comment>Description:</comment>
  当前 PHP 版本支持的最大整型数字。在 32 位系统中通常为 int(2147483647)，64 位系统中为
  int(9223372036854775807)。


id: PHP_INT_MIN
type: constant
doc:
<comment>Description:</comment>
  当前 PHP 版本支持的最小整型数字。在 32 位系统中通常为 int(-2147483648)，64 系统中为
  int(-9223372036854775808)。通常情况下 PHP_INT_MIN === ~PHP_INT_MAX。


id: PHP_OS_FAMILY
type: constant
doc:
<comment>Description:</comment>
  运行 PHP 的操作系统家族。 <return>'Windows'</return>、 <return>'BSD'</return>、 <return>'Darwin'</return>、 <return>'Solaris'</return>、 <return>'Linux'</return> 或 <return>'Unknown'</return> 中的一
  个。 从 PHP 7.2.0 起可用。


id: PHP_OUTPUT_HANDLER_CONT
type: constant
doc:
<comment>Description:</comment>
  表示缓冲已清空，但输出缓冲将继续。
  
  这是 <info>PHP_OUTPUT_HANDLER_WRITE</info> 的别名。


id: PHP_OUTPUT_HANDLER_STDFLAGS
type: constant
doc:
<comment>Description:</comment>
  输出缓冲 flag 的默认设置；当前等同于 <info>PHP_OUTPUT_HANDLER_CLEANABLE</info> | <info>PHP_OUTPUT_HANDLER_FLUSHABLE</info> |
  <info>PHP_OUTPUT_HANDLER_REMOVABLE</info>.


id: PHP_PREFIX
type: constant
doc:
<comment>Description:</comment>
  配置（configure）时设置的 --prefix 值。 在 Windows 上，它是配置（configure）时设置的 --with-prefix
  值。


id: PHP_QUERY_RFC1738
type: constant
doc:
<comment>Description:</comment>
  根据 RFC 1738 和 <return>application/x-www-form-urlencoded</return> 媒体类型执行编码，这意味着空格会编码为加号
  （<return>+</return>）。


id: PHP_WINDOWS_EVENT_CTRL_BREAK
type: constant
doc:
<comment>Description:</comment>
  Windows <return>CTRL+BREAK</return> 事件。 从 PHP 7.4.0 起可用（仅限 Windows）。


id: PHP_WINDOWS_NT_SERVER
type: constant
doc:
<comment>Description:</comment>
  这是一个服务器系统（例如 Server 2008/2003/2000），注意，如果这是一个域控制器，通过
  <info>PHP_WINDOWS_NT_DOMAIN_CONTROLLER</info> 报告。


id: PHP_WINDOWS_VERSION_MAJOR
type: constant
doc:
<comment>Description:</comment>
  windows 主版本，可以是 <return>4</return> (NT4/Me/98/95)、  <return>5</return> (XP/2003 R2/2003/2000) 或 <return>6</return> (Vista/2008/7/8/8.1)。


id: PHP_WINDOWS_VERSION_MINOR
type: constant
doc:
<comment>Description:</comment>
  Windows 副版本号，可以是 <return>0</return> (Vista/2008/2000/NT4/95)、  <return>1</return> (XP)、<return>2</return> (2003 R2/2003/XP x64)、 <return>10</return> (98)
  或 <return>90</return> (ME)。


id: PHP_WINDOWS_VERSION_PLATFORM
type: constant
doc:
<comment>Description:</comment>
  PHP 当前运行的平台， Windows  Vista/XP/2000/NT4、Server 2008/2003 的值是 <return>2</return>，Windows ME/98/95 下值
  是 <return>1</return>。


id: PHP_WINDOWS_VERSION_PRODUCTTYPE
type: constant
doc:
<comment>Description:</comment>
  包含用于确定 <return>PHP_WINDOWS_NT_*</return> 常量的值。该值可能是 <return>PHP_WINDOWS_NT_*</return> 常量之一，表示平台类型的值。


id: PHP_WINDOWS_VERSION_SP_MAJOR
type: constant
doc:
<comment>Description:</comment>
  安装的 service pack 主版本号，没有安装是 <return>0</return>。 例如，Windows XP service pack 3 上这个值是 <return>3</return>。


id: PKCS7_BINARY
type: constant
doc:
<comment>Description:</comment>
  通常输入消息将被转成以<return>CR</return>和<return>LF</return>作行末的 "canonical" 格式(S/MIME规范中的声明)。当该选项出现时，消息将
  不会被转化。 当处理非MIME格式的二进制数据时，这个选项会很有用。


id: PKCS7_DETACHED
type: constant
doc:
<comment>Description:</comment>
  当签名消息时，使用 MIME 类型(<return>"multipart/signed"</return>)的明文签名。如果你为<strong>openssl_pkcs7_sign()</strong>函数没有指
  定任何<strong>$flags</strong>，这个将会是默认的值。 如果你关闭这个选项，消息将使用不透明的签名来签名, 这将会使消息
  更能抵抗邮件中继的翻译，但是不支持 S/MIME 的邮件客户端将不能读取该消息。


id: PKCS7_NOCERTS
type: constant
doc:
<comment>Description:</comment>
  在签署消息时，签名者的证书通常包括在内，但是有了这个选项后，就不需要包括证书了。这将会缩小被签名消
  息的大小，但是验证人在本地必须有可用的签名者证书副本(比如由<strong>openssl_pkcs7_verify()</strong>函数中的
  <strong>$extracerts</strong>参数传递) 。


id: PKCS7_NOINTERN
type: constant
doc:
<comment>Description:</comment>
  在验证消息时，在消息中包含的证书(如果有的话)通常会被搜索签名证书。 对于该选项，只有当
  <strong>openssl_pkcs7_verify()</strong> 函数的参数<strong>$extracerts</strong>指定了的证书才会被使用。然而提供的证书仍然被当做不受信
  任的证书使用。


id: PKCS7_NOOLDMIMETYPE
type: constant
doc:
<comment>Description:</comment>
  自 PHP 8.3.0 起可用。 将 content-type 设置为 <return>application/pkcs7-mime</return>，而不是
  <return>application/x-pkcs7-mime</return> 来加密消息。


id: PKCS7_TEXT
type: constant
doc:
<comment>Description:</comment>
  把纯文本类型的header头添加到加密/签名的消息中。如果解密或者验证，将会从输出中剥离这些header头 - 如
  果这些被解密或验证的消息不是 MIME 类型的纯文本文件将会导致一个错误。


id: PNG_ALL_FILTERS
type: constant
doc:
<comment>Description:</comment>
  A special PNG filter, used by the <strong>imagepng()</strong> function.


id: POSIX_PC_ALLOC_SIZE_MIN
type: constant
doc:
<comment>Description:</comment>
  The minimum number of bytes of storage allocated for any portion of a file. Available as of PHP
  8.3.0.


id: POSIX_PC_ALLOC_SYMLINK_MAX
type: constant
doc:
<comment>Description:</comment>
  The maximum number of symbolic links a given file or directory can have. Available as of PHP
  8.3.0.


id: POSIX_PC_CHOWN_RESTRICTED
type: constant
doc:
<comment>Description:</comment>
  If privileges are required to be allow <strong>chown()</strong> to work. Available as of PHP 8.3.0.


id: POSIX_PC_LINK_MAX
type: constant
doc:
<comment>Description:</comment>
  The maximum number of links a given file or directory can have. Available as of PHP 8.3.0.


id: POSIX_PC_MAX_CANON
type: constant
doc:
<comment>Description:</comment>
  The maximum number of bytes in a terminal canonical input buffer (pathname being then a character
  special file). Available as of PHP 8.3.0.


id: POSIX_PC_MAX_INPUT
type: constant
doc:
<comment>Description:</comment>
  The maximum number of bytes of a terminal input queue (pathname being then a character special
  file). Available as of PHP 8.3.0.


id: POSIX_PC_NAME_MAX
type: constant
doc:
<comment>Description:</comment>
  The maximum number of characters for a file name alone, not its path. Available as of PHP 8.3.0.


id: POSIX_PC_NO_TRUNC
type: constant
doc:
<comment>Description:</comment>
  If a file name (or files under a directory) is longer than <info>POSIX_PC_NAME_MAX</info>. Available as of PHP
  8.3.0.


id: POSIX_PC_PATH_MAX
type: constant
doc:
<comment>Description:</comment>
  The maximum number of characters for a full path name. Available as of PHP 8.3.0.


id: POSIX_PC_PIPE_BUF
type: constant
doc:
<comment>Description:</comment>
  The maximum number of bytes that can be written to a pipe in one operation. Available as of PHP
  8.3.0.


id: POSIX_RLIMIT_AS
type: constant
doc:
<comment>Description:</comment>
  The maximum size of the process's address space in bytes. See also PHP's memory_limit
  configuration directive.


id: POSIX_RLIMIT_CORE
type: constant
doc:
<comment>Description:</comment>
  The maximum size of a core file. If the limit is set to 0, no core file will be generated.


id: POSIX_RLIMIT_CPU
type: constant
doc:
<comment>Description:</comment>
  The maximum amount of CPU time that the process can use, in seconds. When the soft limit is hit, a
  <return>SIGXCPU</return> signal will be sent, which can be caught with <strong>pcntl_signal()</strong>. Depending on the operating
  system, additional <return>SIGXCPU</return> signals may be sent each second until the hard limit is hit, at which
  point an uncatchable <return>SIGKILL</return> signal is sent.
  
  See also <strong>set_time_limit()</strong>.


id: POSIX_RLIMIT_DATA
type: constant
doc:
<comment>Description:</comment>
  The maximum size of the process's data segment, in bytes. It is extremely unlikely that this will
  have any effect on the execution of PHP unless an extension is in use that calls <strong>brk()</strong> or <strong>sbrk()</strong>.


id: POSIX_RLIMIT_KQUEUES
type: constant
doc:
<comment>Description:</comment>
  The maximum number of kqueues this user id is allowed to create (FreeBSD). Available as of PHP
  8.1.0.


id: POSIX_RLIMIT_LOCKS
type: constant
doc:
<comment>Description:</comment>
  The maximum number of locks that the process can create. This is only supported on extremely old
  Linux kernels.


id: POSIX_RLIMIT_MSGQUEUE
type: constant
doc:
<comment>Description:</comment>
  The maximum number of bytes that can be allocated for POSIX message queues. PHP does not ship with
  support for POSIX message queues, so this limit will not have any effect unless you are using an
  extension that implements that support.


id: POSIX_RLIMIT_NICE
type: constant
doc:
<comment>Description:</comment>
  The maximum value to which the process can be reniced to. The value that will be used will be <return>20 -
  limit</return>, as resource limit values cannot be negative.


id: POSIX_RLIMIT_NOFILE
type: constant
doc:
<comment>Description:</comment>
  A value one greater than the maximum file descriptor number that can be opened by this process.


id: POSIX_RLIMIT_NPROC
type: constant
doc:
<comment>Description:</comment>
  The maximum number of processes (and/or threads, on some operating systems) that can be created
  for the real user ID of the process.


id: POSIX_RLIMIT_NPTS
type: constant
doc:
<comment>Description:</comment>
  The maximum number of pseudo-terminals this user id is allowed to create (FreeBSD). Available as
  of PHP 8.1.0.


id: POSIX_RLIMIT_RTPRIO
type: constant
doc:
<comment>Description:</comment>
  The maximum real time priority that can be set via the <strong>sched_setscheduler()</strong> and <strong>sched_setparam()</strong>
  system calls.


id: POSIX_RLIMIT_RTTIME
type: constant
doc:
<comment>Description:</comment>
  The maximum amount of CPU time, in microseconds, that the process can consume without making a
  blocking system call if it is using real time scheduling.


id: POSIX_RLIMIT_SIGPENDING
type: constant
doc:
<comment>Description:</comment>
  The maximum number of signals that can be queued for the real user ID of the process.


id: POSIX_SC_ARG_MAX
type: constant
doc:
<comment>Description:</comment>
  The maximum number of bytes the arguments (and environment variables) can have. Available as of
  PHP 8.3.0.


id: POSIX_SC_NPROCESSORS_CONF
type: constant
doc:
<comment>Description:</comment>
  The number of cpus configured system wise. Available as of PHP 8.3.0.


id: POSIX_SC_NPROCESSORS_ONLN
type: constant
doc:
<comment>Description:</comment>
  The number of cpus currently active system wise. Available as of PHP 8.3.0.


id: POSIX_SC_PAGESIZE
type: constant
doc:
<comment>Description:</comment>
  The number of bytes of the current page. Available as of PHP 8.3.0.


id: PREG_BAD_UTF8_ERROR
type: constant
doc:
<comment>Description:</comment>
  如果最后一个错误是由格式错误的 UTF-8 数据引起的（仅在 UTF-8 模式下运行正则表达式时），则由
  <strong>preg_last_error()</strong> 返回。
  
  5.2.0


id: PREG_BAD_UTF8_OFFSET_ERROR
type: constant
doc:
<comment>Description:</comment>
  如果偏移量不对应可用的 UTF-8 开始码位（仅在 UTF-8 模式下运行正则表达式时），则由 <strong>preg_last_error()</strong>
  返回。
  
  5.3.0


id: PREG_INTERNAL_ERROR
type: constant
doc:
<comment>Description:</comment>
  如果有 PCRE 内部错误，则由 <strong>preg_last_error()</strong> 返回。
  
  5.2.0


id: PREG_JIT_STACKLIMIT_ERROR
type: constant
doc:
<comment>Description:</comment>
  当最后一个 PCRE 函数因 JIT 栈空间限制而失败，则由 <strong>preg_last_error()</strong> 返回。
  
  7.0.0


id: PREG_PATTERN_ORDER
type: constant
doc:
<comment>Description:</comment>
  对结果进行排序，以便 $matches[0] 是完整模式匹配的数组，$matches[1] 是第一个括号子模式匹配的字符串
  数组，以此类推。此 flag 仅与 <strong>preg_match_all()</strong> 一起使用。


id: PREG_SET_ORDER
type: constant
doc:
<comment>Description:</comment>
  对结果进行排序，以便 $matches[0] 是第一组匹配的数组，$matches[1] 是第二组匹配的数组，以此类推。此
  flag 仅与 <strong>preg_match_all()</strong> 一起使用。


id: PREG_SPLIT_OFFSET_CAPTURE
type: constant
doc:
<comment>Description:</comment>
  如果设置了此 flag，则对于每次发生的匹配，还将附带返回字符串偏移量。注意，这会改变返回数组中的值，
  每个元素都是由匹配子串作为第 0 个元素，它相对目标字符串的偏移量作为第 1 个元素的数组。这个 flag 只
  能用于 <strong>preg_split()</strong>。


id: PREG_UNMATCHED_AS_NULL
type: constant
doc:
<comment>Description:</comment>
  此 flag 告诉 <strong>preg_match()</strong> 和 <strong>preg_match_all()</strong> 在 $matches 将包含的未匹配子模式作为 <info>null</info> 值。没有此
  flag，未匹配的子模式将报告为空字符串，就像是空匹配一样。设置此 flag 可以区分这两种情况。
  
  7.2.0


id: PSFS_ERR_FATAL
type: constant
doc:
<comment>Description:</comment>
  <return>Return Code</return> indicating that the userspace filter encountered an unrecoverable error (i.e. Invalid
  data received).


id: PSFS_FEED_ME
type: constant
doc:
<comment>Description:</comment>
  <return>Return Code</return> indicating that the userspace filter did not return buckets in <strong>$out</strong> (i.e. No data
  available).


id: PSFS_PASS_ON
type: constant
doc:
<comment>Description:</comment>
  <return>Return Code</return> indicating that the userspace filter returned buckets in <strong>$out</strong>.


id: PSpell\Config
type: class
doc:
<comment>Description:</comment>
  A fully opaque class which replaces a <return>pspell config</return> resource as of PHP 8.1.0.


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


id: ParentIterator
type: class
doc:
<comment>Description:</comment>
  This extended <class>FilterIterator</class> allows a recursive iteration using <class>RecursiveIteratorIterator</class> that
  only shows those elements which have children.


id: ParentIterator::__construct
type: function
doc:
<comment>Description:</comment>
  Constructs a ParentIterator
  
  Constructs a <class>ParentIterator</class> on an iterator.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>RecursiveIterator</info>  <strong>$iterator</strong>  The iterator being constructed upon.


id: ParentIterator::accept
type: function
doc:
<comment>Description:</comment>
  Determines acceptability
  
  Determines if the current element has children.
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if the current element is acceptable, otherwise <info>false</info>.

<comment>See Also:</comment>
   * ParentIterator::hasChildren
   * FilterIterator::accept


id: ParentIterator::getChildren
type: function
doc:
<comment>Description:</comment>
  Return the inner iterator's children contained in a ParentIterator
  
  Get the inner iterator's children contained in a ParentIterator.
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>ParentIterator</info>  An <info>object</info>.


id: ParentIterator::hasChildren
type: function
doc:
<comment>Description:</comment>
  Check whether the inner iterator's current element has children
  
  Check whether the inner iterator's current element has children.
  
  本函数还未编写文档，仅有参数列表。

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


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

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


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

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


id: Parle\ErrorInfo
type: class
doc:
<comment>Description:</comment>
  The class represents detailed error information as supplied by Parle\Parser::errorInfo


id: Parle\INTERNAL_UTF32
type: constant
doc:
<comment>Description:</comment>
  Flag whether the internal UTF-32 support is compiled in. Available since parle 0.7.2.


id: Parle\Lexer
type: class
doc:
<comment>Description:</comment>
  Single state lexer class. Lexemes can be defined on the fly. If the particular lexer instance is
  meant to be used with <class>Parle\Parser</class>, the token IDs need to be taken from there. Otherwise,
  arbitrary token IDs can be supplied. This lexer can give a certain performance advantage over
  <class>Parle\RLexer</class>, if no multiple states are required. Note, that <class>Parle\RParser</class> is not compatible with
  this lexer.


id: Parle\Lexer::advance
type: function
doc:
<comment>Description:</comment>
  Process next lexer rule
  
  Processes the next rule and prepares the resulting token data.

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


id: Parle\Lexer::build
type: function
doc:
<comment>Description:</comment>
  Finalize the lexer rule set
  
  Rules, previously added with Parle\Lexer::push are finalized. This method call has to be done
  after all the necessary rules was pushed. The rule set becomes read only. The lexing can begin.

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


id: Parle\Lexer::callout
type: function
doc:
<comment>Description:</comment>
  Define token callback
  
  Define a callback to be invoked once lexer encounters a particular token.

<comment>Param:</comment>
  <info>int</info>       <strong>$id</strong>        Token id.
  <info>callable</info>  <strong>$callback</strong>  Callable to be invoked. The callable doesn't receive any arguments and its
                       return value is ignored.

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


id: Parle\Lexer::consume
type: function
doc:
<comment>Description:</comment>
  Pass the data for processing
  
  Consume the data for lexing.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  Data to be lexed.

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


id: Parle\Lexer::dump
type: function
doc:
<comment>Description:</comment>
  Dump the state machine
  
  Dump the current state machine to stdout.

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


id: Parle\Lexer::getToken
type: function
doc:
<comment>Description:</comment>
  Retrieve the current token
  
  Retrieve the current token.

<comment>Return:</comment>
  <info>Parle\Token</info>  Returns an instance of <class>Parle\Token</class>.


id: Parle\Lexer::insertMacro
type: function
doc:
<comment>Description:</comment>
  Insert regex macro
  
  Insert a regex macro, that can be later used as a shortcut and included in other regular
  expressions.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>   Name of the macros.
  <info>string</info>  <strong>$regex</strong>  Regular expression.

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


id: Parle\Lexer::push
type: function
doc:
<comment>Description:</comment>
  Add a lexer rule
  
  Push a pattern for lexeme recognition.

<comment>Param:</comment>
  <info>string</info>  <strong>$regex</strong>  Regular expression used for token matching.
  <info>int</info>     <strong>$id</strong>     Token id. If the lexer instance is meant to be used standalone, this can be an
                  arbitrary number. If the lexer instance is going to be passed to the parser, it
                  has to be an id returned by Parle\Parser::tokenid.

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


id: Parle\Lexer::reset
type: function
doc:
<comment>Description:</comment>
  Reset lexer
  
  Reset lexing optionally supplying the desired offset.

<comment>Param:</comment>
  <info>int</info>  <strong>$pos</strong>  Reset position.

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


id: Parle\Parser
type: class
doc:
<comment>Description:</comment>
  Parser class. Rules can be defined on the fly. Once finalized, a <class>Parle\Lexer</class> instance is required
  to deliver the token stream.


id: Parle\Parser::advance
type: function
doc:
<comment>Description:</comment>
  Process next parser rule
  
  Process next parser rule.

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


id: Parle\Parser::build
type: function
doc:
<comment>Description:</comment>
  Finalize the grammar rules
  
  Any tokens and grammar rules previously added are finalized. The rule set becomes readonly and the
  parser is ready to start.

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


id: Parle\Parser::consume
type: function
doc:
<comment>Description:</comment>
  Consume the data for processing
  
  Consume the data for parsing.

<comment>Param:</comment>
  <info>string</info>       <strong>$data</strong>   Data to be parsed.
  <info>Parle\Lexer</info>  <strong>$lexer</strong>  A lexer object containing the lexing rules prepared for the particular
                       grammar.

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


id: Parle\Parser::dump
type: function
doc:
<comment>Description:</comment>
  Dump the grammar
  
  Dump the current grammar to stdout.

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


id: Parle\Parser::errorInfo
type: function
doc:
<comment>Description:</comment>
  Retrieve the error information
  
  Retrieve the error information in case Parle\Parser::action returned the error action.

<comment>Return:</comment>
  <info>Parle\ErrorInfo</info>  Returns an instance of <class>Parle\ErrorInfo</class>.


id: Parle\Parser::left
type: function
doc:
<comment>Description:</comment>
  Declare a token with left-associativity
  
  Declare a terminal with left associativity.

<comment>Param:</comment>
  <info>string</info>  <strong>$tok</strong>  Token name.

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


id: Parle\Parser::nonassoc
type: function
doc:
<comment>Description:</comment>
  Declare a token with no associativity
  
  Declare a terminal, that cannot appear more than once in the row.

<comment>Param:</comment>
  <info>string</info>  <strong>$tok</strong>  Token name.

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


id: Parle\Parser::precedence
type: function
doc:
<comment>Description:</comment>
  Declare a precedence rule
  
  Declares a precedence rule for a fictitious terminal symbol. This rule can be later used in the
  specific grammar rules.

<comment>Param:</comment>
  <info>string</info>  <strong>$tok</strong>  Token name.

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


id: Parle\Parser::push
type: function
doc:
<comment>Description:</comment>
  Add a grammar rule
  
  Push a grammar rule. The production id returned can be used later in the parsing process to
  identify the rule matched.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  Rule name.
  <info>string</info>  <strong>$rule</strong>  The rule to be added. The syntax is Bison compatible.

<comment>Return:</comment>
  <info>int</info>  Returns <info>int</info> representing the rule index.


id: Parle\Parser::reset
type: function
doc:
<comment>Description:</comment>
  Reset parser state
  
  Reset parser state using the given token id.

<comment>Param:</comment>
  <info>int</info>  <strong>$tokenId</strong>  Token id.

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


id: Parle\Parser::right
type: function
doc:
<comment>Description:</comment>
  Declare a token with right-associativity
  
  Declare a terminal with right associativity.

<comment>Param:</comment>
  <info>string</info>  <strong>$tok</strong>  Token name.

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


id: Parle\Parser::sigil
type: function
doc:
<comment>Description:</comment>
  Retrieve a matching part of a rule
  
  Retrieve a part of the match by a rule. This method is equivalent to the pseudo variable
  functionality in Bison.

<comment>Param:</comment>
  <info>int</info>  <strong>$idx</strong>  Match index, zero based.

<comment>Return:</comment>
  <info>string</info>  Returns a <info>string</info> with the matched part.


id: Parle\Parser::sigilCount
type: function
doc:
<comment>Description:</comment>
  Number of elements in matched rule
  
  Get number of elements in the matched rule.

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


id: Parle\Parser::sigilName
type: function
doc:
<comment>Description:</comment>
  Retrieve a rule or token name
  
  Retrieve a partial rule name or token name corresponding to the sigil index.

<comment>Param:</comment>
  <info>int</info>  <strong>$idx</strong>  Match index, zero based.

<comment>Return:</comment>
  <info>string</info>  Returns a <info>string</info> with the matched part.


id: Parle\Parser::token
type: function
doc:
<comment>Description:</comment>
  Declare a token
  
  Declare a terminal to be used in the grammar.

<comment>Param:</comment>
  <info>string</info>  <strong>$tok</strong>  Token name.

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


id: Parle\Parser::tokenId
type: function
doc:
<comment>Description:</comment>
  Get token id
  
  Retrieve the id of the named token.

<comment>Param:</comment>
  <info>string</info>  <strong>$tok</strong>  Name of the token as used in Parle\Parser::token.

<comment>Return:</comment>
  <info>int</info>  Returns <info>int</info> representing the token id.


id: Parle\Parser::trace
type: function
doc:
<comment>Description:</comment>
  Trace the parser operation
  
  Retrieve the current parser operation description. This can be especially useful for studying the
  parser and to optimize the grammar.

<comment>Return:</comment>
  <info>string</info>  Returns a <info>string</info> with the trace information.


id: Parle\Parser::validate
type: function
doc:
<comment>Description:</comment>
  Validate input
  
  Validate an input string. The string is parsed internally, thus this method is useful for the
  quick input validation.

<comment>Param:</comment>
  <info>string</info>       <strong>$data</strong>   String to be validated.
  <info>Parle\Lexer</info>  <strong>$lexer</strong>  A lexer object containing the lexing rules prepared for the particular
                       grammar.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>bool</info> witnessing whether the input chimes or not with the defined rules.


id: Parle\RLexer
type: class
doc:
<comment>Description:</comment>
  Multistate lexer class. Lexemes can be defined on the fly. If the particular lexer instance is
  meant to be used with <class>Parle\RParser</class>, the token IDs need to be taken from there. Otherwise,
  arbitrary token IDs can be supplied. Note, that <class>Parle\Parser</class> is not compatible with this lexer.


id: Parle\RLexer::build
type: function
doc:
<comment>Description:</comment>
  Finalize the lexer rule set
  
  Rules, previously added with Parle\RLexer::push are finalized. This method call has to be done
  after all the necessary rules was pushed. The rule set becomes read only. The lexing can begin.

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


id: Parle\RLexer::getToken
type: function
doc:
<comment>Description:</comment>
  Retrieve the current token
  
  Retrive the current token.

<comment>Return:</comment>
  <info>Parle\Token</info>  Returns an instance of <class>Parle\Token</class>.


id: Parle\RLexer::push
type: function
doc:
<comment>Description:</comment>
  Add a lexer rule
  
  Push a pattern for lexeme recognition.
  
  A 'start state' and 'exit state' can be specified by using a suitable signature.

<comment>Param:</comment>
  <info>string</info>  <strong>$regex</strong>     Regular expression used for token matching.
  <info>int</info>     <strong>$id</strong>        Token id. If the lexer instance is meant to be used standalone, this can be an
                     arbitrary number. If the lexer instance is going to be passed to the parser, it
                     has to be an id returned by Parle\RParser::tokenid.
  <info>string</info>  <strong>$state</strong>     State name. If '*' is used as start state, then the rule is applied to all
                     lexer states.
  <info>string</info>  <strong>$newState</strong>  New state name, after the rule was applied.
                     
                     If '.' is specified as the exit state, then the lexer state is unchanged when
                     that rule matches. An exit state with '&gt;' before the name means push. Use
                     the signature without id for either continuation or to start matching, when a
                     continuation or recursion is required.
                     
                     If '\<' is specified as exit state, it means pop. In that case, the signature containing the id can be used to identify the match. Note that even in the case an id is specified, the rule will finish first when all the previous pushes popped.

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


id: Parle\RLexer::pushState
type: function
doc:
<comment>Description:</comment>
  Push a new start state
  
  This lexer type can have more than one state machine. This allows you to lex different tokens
  depending on context, thus allowing simple parsing to take place. Once a state pushed, it can be
  used with a suitable Parle\RLexer::push signature variant.

<comment>Param:</comment>
  <info>string</info>  <strong>$state</strong>  Name of the state.

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


id: Parle\RParser
type: class
doc:
<comment>Description:</comment>
  Parser class. Rules can be defined on the fly. Once finalized, a <class>Parle\RLexer</class> instance is required
  to deliver the token stream.


id: Parle\RParser::advance
type: function
doc:
<comment>Description:</comment>
  Process next parser rule
  
  Prosess next parser rule.

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


id: Parle\RParser::consume
type: function
doc:
<comment>Description:</comment>
  Consume the data for processing
  
  Consume the data for parsing.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>   Data to be parsed.
  <info></info>        <strong>$lexer</strong>  A lexer object containing the lexing rules prepared for the particular grammar.

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


id: Parle\RParser::errorInfo
type: function
doc:
<comment>Description:</comment>
  Retrieve the error information
  
  Retrieve the error information in case Parle\RParser::action returned the error action.

<comment>Return:</comment>
  <info>Parle\ErrorInfo</info>  Returns an instance of <class>Parle\ErrorInfo</class>.


id: Parle\RParser::precedence
type: function
doc:
<comment>Description:</comment>
  Declare a precedence rule
  
  Declares a precedence rule for a fictious terminal symbol. This rule can be later used in the
  specific grammar rules.

<comment>Param:</comment>
  <info>string</info>  <strong>$tok</strong>  Token name.

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


id: Parle\RParser::tokenId
type: function
doc:
<comment>Description:</comment>
  Get token id
  
  Retrieve the id of the named token.

<comment>Param:</comment>
  <info>string</info>  <strong>$tok</strong>  Name of the token as used in Parle\RParser::token.

<comment>Return:</comment>
  <info>int</info>  Returns <info>int</info> representing the token id.


id: Parle\RParser::trace
type: function
doc:
<comment>Description:</comment>
  Trace the parser operation
  
  Retrieve the current parser operation description. This can be especially useful to study the
  parser and to optimize the grammar.

<comment>Return:</comment>
  <info>string</info>  Returns a <info>string</info> with the trace information.


id: Parle\RParser::validate
type: function
doc:
<comment>Description:</comment>
  Validate input
  
  Validate an input string. The string is parsed internally, thus this method is useful for the
  quick input validation.

<comment>Param:</comment>
  <info>string</info>        <strong>$data</strong>   String to be validated.
  <info>Parle\RLexer</info>  <strong>$lexer</strong>  A lexer object containing the lexing rules prepared for the particular
                        grammar.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>bool</info> whitnessing whether the input chimes or not with the defined rules.


id: Parle\Stack
type: class
doc:
<comment>Description:</comment>
  <class>Parle\Stack</class> is a LIFO stack. The elements are inserted and removed only from one end.


id: Parle\Stack::pop
type: function
doc:
<comment>Description:</comment>
  Pop an item from the stack

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


id: Parle\Stack::push
type: function
doc:
<comment>Description:</comment>
  Push an item into the stack

<comment>Param:</comment>
  <info>mixed</info>  <strong>$item</strong>  Variable to be pushed.

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


id: Parle\Token
type: class
doc:
<comment>Description:</comment>
  This class represents a token. Lexer returns instances of this class.


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


id: PgSql\Lob
type: class
doc:
<comment>Description:</comment>
  A fully opaque class which replaces a <return>pgsql large object</return> resource as of PHP 8.1.0.


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


id: Phar
type: class
doc:
<comment>Description:</comment>
  The Phar class provides a high-level interface to accessing and creating phar archives.


id: Phar::COMPRESSED
type: constant
doc:
<comment>Description:</comment>
  0x0000F000
  
  bitmask that can be used with file flags to determine if any compression is present


id: Phar::OPENSSL
type: constant
doc:
<comment>Description:</comment>
  signature with OpenSSL public/private key pair.  This is a true, asymmetric key signature.


id: Phar::PHP
type: constant
doc:
<comment>Description:</comment>
  used to instruct the mimeoverrides parameter of <strong>Phar::webPhar()</strong> that the extension should be
  parsed as a PHP file


id: Phar::PHPS
type: constant
doc:
<comment>Description:</comment>
  used to instruct the mimeoverrides parameter of <strong>Phar::webPhar()</strong> that the extension should be
  parsed as a PHP source file through <strong>highlight_file()</strong>


id: Phar::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a Phar archive object

<comment>Param:</comment>
  <info>string</info>       <strong>$filename</strong>  Path to an existing Phar archive or to-be-created archive. The file name's
                          extension must contain .phar.
  <info>int</info>          <strong>$flags</strong>     Flags to pass to parent class <class>RecursiveDirectoryIterator</class>.
  <info>string|null</info>  <strong>$alias</strong>     Alias with which this Phar archive should be referred to in calls to
                          stream functionality.


id: Phar::addEmptyDir
type: function
doc:
<comment>Description:</comment>
  添加一个空目录到 phar 档案
  
  此方法需要
  将 php.ini 中的 <return>phar.readonly</return> 设为
  <return>0</return> 以适合 <class>Phar</class>
  对象.  否则, 将抛出<class>PharException</class>.
  
  通过这个方法，可以创建一个以 <return>dirname</return> 为路径名的空目录。 这个方法和 <strong>ZipArchive::addEmptyDir()</strong> 类
  似。

<comment>Param:</comment>
  <info>string</info>  <strong>$directory</strong>  需要在 phar 档案中创建的空目录名称

<comment>Return:</comment>
  <info>void</info>  没有返回值, 失败时抛出异常（exception）。

<comment>See Also:</comment>
   * <strong>PharData::addEmptyDir()</strong>
   * <strong>Phar::addFile()</strong>
   * <strong>Phar::addFromString()</strong>


id: Phar::addFile
type: function
doc:
<comment>Description:</comment>
  将一个文件从文件系统添加到 phar 档案中
  
  此方法需要
  将 php.ini 中的 <return>phar.readonly</return> 设为
  <return>0</return> 以适合 <class>Phar</class>
  对象.  否则, 将抛出<class>PharException</class>.
  
  通过这个方法，任何文件或者 URL 可以被添加到 phar 档案中。如果第二个可选参数 <strong>$localName</strong> 被设定， 那
  么文件则会以该参数为名称保存到档案中，此外，<return>file</return> 参数会被作为路径保存在档案中。 URLs 必须提交
  localname 参数，否则会抛出异常。 这个方法与 <strong>ZipArchive::addFile()</strong> 类似。

<comment>Param:</comment>
  <info>string</info>       <strong>$filename</strong>   需要添加到 phar 档案的文件在磁盘上的完全（绝对）或者相对路径。
  <info>string|null</info>  <strong>$localName</strong>  文件保存到档案时的路径。

<comment>Return:</comment>
  <info>void</info>  没有返回值，失败时会抛出异常。

<comment>See Also:</comment>
   * <strong>Phar::offsetSet()</strong>
   * <strong>PharData::addFile()</strong>
   * <strong>Phar::addFromString()</strong>
   * <strong>Phar::addEmptyDir()</strong>


id: Phar::addFromString
type: function
doc:
<comment>Description:</comment>
  以字符串的形式添加一个文件到 phar 档案
  
  此方法需要
  将 php.ini 中的 <return>phar.readonly</return> 设为
  <return>0</return> 以适合 <class>Phar</class>
  对象.  否则, 将抛出<class>PharException</class>.
  
  通过这个方法，任何字符串都可以被添加到 phar 档案中。 文件将会以 <return>localname</return> 为路径保存到档案中。 这
  个方法与 <strong>ZipArchive::addFromString()</strong> 类似。

<comment>Param:</comment>
  <info>string</info>  <strong>$localName</strong>  文件保存到档案时的路径。
  <info>string</info>  <strong>$contents</strong>   要保存的文件内容。

<comment>Return:</comment>
  <info>void</info>  没有返回值，失败时会抛出异常。

<comment>See Also:</comment>
   * <strong>Phar::offsetSet()</strong>
   * <strong>PharData::addFromString()</strong>
   * <strong>Phar::addFile()</strong>
   * <strong>Phar::addEmptyDir()</strong>


id: Phar::apiVersion
type: function
doc:
<comment>Description:</comment>
  Returns the api version
  
  Return the API version of the phar file format that will be used when creating phars.  The Phar
  extension supports reading API version 1.0.0 or newer.  API version 1.1.0 is required for SHA-256
  and SHA-512 hash, and API version 1.1.1 is required to store empty directories.

<comment>Return:</comment>
  <info>string</info>  The API version string as in <return>"1.0.0"</return>.


id: Phar::buildFromDirectory
type: function
doc:
<comment>Description:</comment>
  Construct a phar archive from the files within a directory
  
  此方法需要
  将 php.ini 中的 <return>phar.readonly</return> 设为
  <return>0</return> 以适合 <class>Phar</class>
  对象.  否则, 将抛出<class>PharException</class>.
  
  Populate a phar archive from directory contents.  The optional second parameter is a regular
  expression (pcre) that is used to exclude files. Any filename that matches the regular expression
  will be included, all others will be excluded.  For more fine-grained control, use
  <strong>Phar::buildFromIterator()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$directory</strong>  The full or relative path to the directory that contains all files to add to
                      the archive.
  <info>string</info>  <strong>$pattern</strong>    An optional pcre regular expression that is used to filter the list of files.
                      Only file paths matching the regular expression will be included in the
                      archive.

<comment>Return:</comment>
  <info>array</info>  <strong>Phar::buildFromDirectory()</strong> returns an associative array mapping internal path of file to
         the full path of the file on the filesystem.

<comment>See Also:</comment>
   * <strong>Phar::buildFromIterator()</strong>


id: Phar::buildFromIterator
type: function
doc:
<comment>Description:</comment>
  Construct a phar archive from an iterator
  
  此方法需要
  将 php.ini 中的 <return>phar.readonly</return> 设为
  <return>0</return> 以适合 <class>Phar</class>
  对象.  否则, 将抛出<class>PharException</class>.
  
  Populate a phar archive from an iterator.  Two styles of iterators are supported, iterators that
  map the filename within the phar to the name of a file on disk, and iterators like
  DirectoryIterator that return SplFileInfo objects.  For iterators that return SplFileInfo objects,
  the second parameter is required.

<comment>Param:</comment>
  <info>Traversable</info>  <strong>$iterator</strong>       Any iterator that either associatively maps phar file to location or
                               returns SplFileInfo objects
  <info>string|null</info>  <strong>$baseDirectory</strong>  For iterators that return SplFileInfo objects, the portion of each
                               file's full path to remove when adding to the phar archive

<comment>Return:</comment>
  <info>array</info>  <strong>Phar::buildFromIterator()</strong> returns an associative array mapping internal path of file to the
         full path of the file on the filesystem.

<comment>See Also:</comment>
   * <strong>Phar::buildFromDirectory()</strong>


id: Phar::canCompress
type: function
doc:
<comment>Description:</comment>
  Returns whether phar extension supports compression using either zlib or bzip2
  
  This should be used to test whether compression is possible prior to loading a phar archive
  containing compressed files.

<comment>Param:</comment>
  <info>int</info>  <strong>$compression</strong>  Either <return>Phar::GZ</return> or <return>Phar::BZ2</return> can be used to test whether compression is
                     possible with a specific compression algorithm (zlib or bzip2).

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if compression/decompression is available, <info>false</info> if not.

<comment>See Also:</comment>
   * <strong>PharFileInfo::getCompressedSize()</strong>
   * <strong>PharFileInfo::isCompressed()</strong>
   * <strong>PharFileInfo::compress()</strong>
   * <strong>PharFileInfo::decompress()</strong>
   * <strong>Phar::isCompressed()</strong>
   * <strong>Phar::compressFiles()</strong>
   * <strong>Phar::decompressFiles()</strong>
   * <strong>Phar::getSupportedCompression()</strong>
   * <strong>Phar::convertToExecutable()</strong>
   * <strong>Phar::convertToData()</strong>


id: Phar::canWrite
type: function
doc:
<comment>Description:</comment>
  Returns whether phar extension supports writing and creating phars
  
  This static method determines whether write access has been disabled in the system php.ini via the
  phar.readonly ini variable.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if write access is enabled, <info>false</info> if it is disabled.

<comment>See Also:</comment>
   * phar.readonly
   * <strong>Phar::isWritable()</strong>


id: Phar::compress
type: function
doc:
<comment>Description:</comment>
  Compresses the entire Phar archive using Gzip or Bzip2 compression
  
  此方法需要
  将 php.ini 中的 <return>phar.readonly</return> 设为
  <return>0</return> 以适合 <class>Phar</class>
  对象.  否则, 将抛出<class>PharException</class>.
  
  For tar-based and phar-based phar archives, this method compresses the entire archive using gzip
  compression or bzip2 compression.  The resulting file can be processed with the gunzip
  command/bunzip command, or accessed directly and transparently with the Phar extension.
  
  For Zip-based phar archives, this method fails with an exception. The zlib extension must be
  enabled to compress with gzip compression, the bzip2 extension must be enabled in order to
  compress with bzip2 compression. As with all functionality that modifies the contents of a phar,
  the phar.readonly INI variable must be off in order to succeed.
  
  In addition, this method automatically renames the archive, appending <return>.gz</return>, <return>.bz2</return> or removing the
  extension if passed <return>Phar::NONE</return> to remove compression.  Alternatively, a file extension may be
  specified with the second parameter.

<comment>Param:</comment>
  <info>int</info>          <strong>$compression</strong>  Compression must be one of <return>Phar::GZ</return>, <return>Phar::BZ2</return> to add compression, or
                             <return>Phar::NONE</return> to remove compression.
  <info>string|null</info>  <strong>$extension</strong>    By default, the extension is <return>.phar.gz</return> or <return>.phar.bz2</return> for compressing phar
                             archives, and <return>.phar.tar.gz</return> or <return>.phar.tar.bz2</return> for compressing tar
                             archives.  For decompressing, the default file extensions are <return>.phar</return> and
                             <return>.phar.tar</return>.

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

<comment>See Also:</comment>
   * <strong>PharFileInfo::getCompressedSize()</strong>
   * <strong>PharFileInfo::isCompressed()</strong>
   * <strong>PharFileInfo::compress()</strong>
   * <strong>PharFileInfo::decompress()</strong>
   * <strong>PharData::compress()</strong>
   * <strong>Phar::canCompress()</strong>
   * <strong>Phar::isCompressed()</strong>
   * <strong>Phar::decompress()</strong>
   * <strong>Phar::getSupportedCompression()</strong>
   * <strong>Phar::compressFiles()</strong>
   * <strong>Phar::decompressFiles()</strong>


id: Phar::compressFiles
type: function
doc:
<comment>Description:</comment>
  Compresses all files in the current Phar archive
  
  此方法需要
  将 php.ini 中的 <return>phar.readonly</return> 设为
  <return>0</return> 以适合 <class>Phar</class>
  对象.  否则, 将抛出<class>PharException</class>.
  
  For tar-based phar archives, this method throws a <class>BadMethodCallException</class>, as compression of
  individual files within a tar archive is not supported by the file format.  Use <strong>Phar::compress()</strong>
  to compress an entire tar-based phar archive.
  
  For Zip-based and phar-based phar archives, this method compresses all files in the Phar archive
  using the specified compression. The zlib  or bzip2 extensions must be enabled to take advantage
  of this feature.  In addition, if any files are already compressed using bzip2/zlib compression,
  the respective extension must be enabled in order to decompress the files prior to re-compressing.
  As with all functionality that modifies the contents of a phar, the phar.readonly INI variable
  must be off in order to succeed.

<comment>Param:</comment>
  <info>int</info>  <strong>$compression</strong>  Compression must be one of <return>Phar::GZ</return>, <return>Phar::BZ2</return> to add compression, or
                     <return>Phar::NONE</return> to remove compression.

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

<comment>See Also:</comment>
   * <strong>PharFileInfo::getCompressedSize()</strong>
   * <strong>PharFileInfo::isCompressed()</strong>
   * <strong>PharFileInfo::compress()</strong>
   * <strong>PharFileInfo::decompress()</strong>
   * <strong>Phar::canCompress()</strong>
   * <strong>Phar::isCompressed()</strong>
   * <strong>Phar::decompressFiles()</strong>
   * <strong>Phar::getSupportedCompression()</strong>
   * <strong>Phar::compress()</strong>
   * <strong>Phar::decompress()</strong>


id: Phar::convertToData
type: function
doc:
<comment>Description:</comment>
  Convert a phar archive to a non-executable tar or zip file
  
  This method is used to convert an executable phar archive to either a tar or zip file.  To make
  the tar or zip non-executable, the phar stub and phar alias files are removed from the newly
  created archive.
  
  If no changes are specified, this method throws a <class>BadMethodCallException</class> if the archive is in phar
  file format.  For archives in tar or zip file format, this method converts the archive to a
  non-executable archive.
  
  If successful, the method creates a new archive on disk and returns a <class>PharData</class> object.  The old
  archive is not removed from disk, and should be done manually after the process has finished.

<comment>Param:</comment>
  <info>int|null</info>     <strong>$format</strong>       This should be one of <return>Phar::TAR</return> or <return>Phar::ZIP</return>.  If set to <info>null</info>, the
                             existing file format will be preserved.
  <info>int|null</info>     <strong>$compression</strong>  This should be one of <return>Phar::NONE</return> for no whole-archive compression,
                             <return>Phar::GZ</return> for zlib-based compression, and <return>Phar::BZ2</return> for bzip-based
                             compression.
  <info>string|null</info>  <strong>$extension</strong>    This parameter is used to override the default file extension for a
                             converted archive.  Note that <return>.phar</return> cannot be used anywhere in the
                             filename for a non-executable tar or zip archive.
                             
                             If converting to a tar-based phar archive, the default extensions are
                             <return>.tar</return>, <return>.tar.gz</return>, and <return>.tar.bz2</return> depending on specified compression. For
                             zip-based archives, the default extension is <return>.zip</return>.

<comment>Return:</comment>
  <info>PharData|null</info>  The method returns a <class>PharData</class> object on success, or <info>null</info> on failure.

<comment>See Also:</comment>
   * <strong>Phar::convertToExecutable()</strong>
   * <strong>PharData::convertToExecutable()</strong>
   * <strong>PharData::convertToData()</strong>


id: Phar::convertToExecutable
type: function
doc:
<comment>Description:</comment>
  Convert a phar archive to another executable phar archive file format
  
  此方法需要
  将 php.ini 中的 <return>phar.readonly</return> 设为
  <return>0</return> 以适合 <class>Phar</class>
  对象.  否则, 将抛出<class>PharException</class>.
  
  This method is used to convert a phar archive to another file format.  For instance, it can be
  used to create a tar-based executable phar archive from a zip-based executable phar archive, or
  from an executable phar archive in the phar file format.  In addition, it can be used to apply
  whole-archive compression to a tar or phar-based archive.
  
  If no changes are specified, this method throws a <class>BadMethodCallException</class>.
  
  If successful, the method creates a new archive on disk and returns a <class>Phar</class> object.  The old
  archive is not removed from disk, and should be done manually after the process has finished.

<comment>Param:</comment>
  <info>int|null</info>     <strong>$format</strong>       This should be one of <return>Phar::PHAR</return>, <return>Phar::TAR</return>, or <return>Phar::ZIP</return>.  If set to
                             <info>null</info>, the existing file format will be preserved.
  <info>int|null</info>     <strong>$compression</strong>  This should be one of <return>Phar::NONE</return> for no whole-archive compression,
                             <return>Phar::GZ</return> for zlib-based compression, and <return>Phar::BZ2</return> for bzip-based
                             compression.
  <info>string|null</info>  <strong>$extension</strong>    This parameter is used to override the default file extension for a
                             converted archive.  Note that all zip- and tar-based phar archives must
                             contain <return>.phar</return> in their file extension in order to be processed as a
                             phar archive.
                             
                             If converting to a phar-based archive, the default extensions are
                             <return>.phar</return>, <return>.phar.gz</return>, or <return>.phar.bz2</return> depending on the specified compression.
                             For tar-based phar archives, the default extensions are <return>.phar.tar</return>,
                             <return>.phar.tar.gz</return>, and <return>.phar.tar.bz2</return>.  For zip-based phar archives, the
                             default extension is <return>.phar.zip</return>.

<comment>Return:</comment>
  <info>Phar|null</info>  The method returns a <class>Phar</class> object on success, or <info>null</info> on failure.

<comment>See Also:</comment>
   * <strong>Phar::convertToData()</strong>
   * <strong>PharData::convertToExecutable()</strong>
   * <strong>PharData::convertToData()</strong>


id: Phar::copy
type: function
doc:
<comment>Description:</comment>
  Copy a file internal to the phar archive to another new file within the phar
  
  此方法需要
  将 php.ini 中的 <return>phar.readonly</return> 设为
  <return>0</return> 以适合 <class>Phar</class>
  对象.  否则, 将抛出<class>PharException</class>.
  
  Copy a file internal to the phar archive to another new file within the phar. This is an
  object-oriented alternative to using <strong>copy()</strong> with the phar stream wrapper.

<comment>Param:</comment>
  <info>string</info>  <strong>$from</strong>  
  <info>string</info>  <strong>$to</strong>    

<comment>Return:</comment>
  <info>bool</info>  returns <info>true</info> on success, but it is safer to encase method call in a try/catch block and
        assume success if no exception is thrown.


id: Phar::count
type: function
doc:
<comment>Description:</comment>
  Returns the number of entries (files) in the Phar archive

<comment>Param:</comment>
  <info>int</info>  <strong>$mode</strong>  <strong>$mode</strong> is an integer value specifying the counting mode to be used. By default, it is
              set to <info>COUNT_NORMAL</info>, which counts only the number of items in the archive that have
              not been deleted or hidden. When set to <info>COUNT_RECURSIVE</info>, it counts all items in the
              archive, including those that have been deleted or hidden.

<comment>Return:</comment>
  <info>int</info>  The number of files contained within this phar, or <return>0</return> (the number zero) if none.


id: Phar::createDefaultStub
type: function
doc:
<comment>Description:</comment>
  Create a phar-file format specific stub
  
  This method is intended for creation of phar-file format-specific stubs, and is not intended for
  use with tar- or zip-based phar archives.
  
  Phar archives contain a bootstrap loader, or <return>stub</return> written in PHP that is executed when the archive
  is executed in PHP either via include:  ]]> or by simple execution:
  
  This method provides a simple and easy method to create a stub that will run a startup file from
  the phar archive.  In addition, different files can be specified for running the phar archive from
  the command line versus through a web server.  The loader stub also calls
  <strong>Phar::interceptFileFuncs()</strong> to allow easy bundling of a PHP application that accesses the file
  system.  If the phar extension is not present, the loader stub will extract the phar archive to a
  temporary directory and then operate on the files.  A shutdown function erases the temporary files
  on exit.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$index</strong>     Relative path within the phar archive to run if accessed on the
                          command-line
  <info>string|null</info>  <strong>$webIndex</strong>  Relative path within the phar archive to run if accessed through a web
                          browser

<comment>Return:</comment>
  <info>string</info>  Returns a string containing the contents of a customized bootstrap loader (stub) that
          allows the created Phar archive to work with or without the Phar extension enabled.

<comment>See Also:</comment>
   * <strong>Phar::setStub()</strong>
   * <strong>Phar::getStub()</strong>


id: Phar::decompress
type: function
doc:
<comment>Description:</comment>
  Decompresses the entire Phar archive
  
  此方法需要
  将 php.ini 中的 <return>phar.readonly</return> 设为
  <return>0</return> 以适合 <class>Phar</class>
  对象.  否则, 将抛出<class>PharException</class>.
  
  For tar-based and phar-based phar archives, this method decompresses the entire archive.
  
  For Zip-based phar archives, this method fails with an exception. The zlib extension must be
  enabled to decompress an archive compressed with gzip compression, and the bzip2 extension must be
  enabled in order to decompress an archive compressed with bzip2 compression. As with all
  functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in
  order to succeed.
  
  In addition, this method automatically changes the file extension of the archive, <return>.phar</return> by default
  for phar archives, or <return>.phar.tar</return> for tar-based phar archives. Alternatively, a file extension may
  be specified with the second parameter.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$extension</strong>  For decompressing, the default file extensions are <return>.phar</return> and <return>.phar.tar</return>.
                           Use this parameter to specify another file extension.  Be aware that all
                           executable phar archives must contain <return>.phar</return> in their filename.

<comment>Return:</comment>
  <info>Phar|null</info>  A <class>Phar</class> object is returned on success, and <info>null</info> on failure.

<comment>See Also:</comment>
   * <strong>PharFileInfo::getCompressedSize()</strong>
   * <strong>PharFileInfo::isCompressed()</strong>
   * <strong>PharFileInfo::compress()</strong>
   * <strong>PharFileInfo::decompress()</strong>
   * <strong>PharData::compress()</strong>
   * <strong>Phar::canCompress()</strong>
   * <strong>Phar::isCompressed()</strong>
   * <strong>Phar::compress()</strong>
   * <strong>Phar::getSupportedCompression()</strong>
   * <strong>Phar::compressFiles()</strong>
   * <strong>Phar::decompressFiles()</strong>


id: Phar::decompressFiles
type: function
doc:
<comment>Description:</comment>
  Decompresses all files in the current Phar archive
  
  此方法需要
  将 php.ini 中的 <return>phar.readonly</return> 设为
  <return>0</return> 以适合 <class>Phar</class>
  对象.  否则, 将抛出<class>PharException</class>.
  
  For tar-based phar archives, this method throws a <class>BadMethodCallException</class>, as compression of
  individual files within a tar archive is not supported by the file format.  Use <strong>Phar::compress()</strong>
  to compress an entire tar-based phar archive.
  
  For Zip-based and phar-based phar archives, this method decompresses all files in the Phar
  archive. The zlib  or bzip2 extensions must be enabled to take advantage of this feature if any
  files are compressed using bzip2/zlib compression. As with all functionality that modifies the
  contents of a phar, the phar.readonly INI variable must be off in order to succeed.

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

<comment>See Also:</comment>
   * <strong>PharFileInfo::getCompressedSize()</strong>
   * <strong>PharFileInfo::isCompressed()</strong>
   * <strong>PharFileInfo::compress()</strong>
   * <strong>PharFileInfo::decompress()</strong>
   * <strong>Phar::canCompress()</strong>
   * <strong>Phar::isCompressed()</strong>
   * <strong>Phar::compressFiles()</strong>
   * <strong>Phar::getSupportedCompression()</strong>
   * <strong>Phar::compress()</strong>
   * <strong>Phar::decompress()</strong>


id: Phar::delMetadata
type: function
doc:
<comment>Description:</comment>
  Deletes the global metadata of the phar
  
  此方法需要
  将 php.ini 中的 <return>phar.readonly</return> 设为
  <return>0</return> 以适合 <class>Phar</class>
  对象.  否则, 将抛出<class>PharException</class>.
  
  Deletes the global metadata of the phar

<comment>Return:</comment>
  <info>bool</info>  returns <info>true</info> on success, but it is better to check for thrown exception, and assume success
        if none is thrown.

<comment>See Also:</comment>
   * <strong>Phar::getMetadata()</strong>
   * <strong>Phar::setMetadata()</strong>
   * <strong>Phar::hasMetadata()</strong>


id: Phar::delete
type: function
doc:
<comment>Description:</comment>
  删除 phar 档案中的一个文件
  
  此方法需要
  将 php.ini 中的 <return>phar.readonly</return> 设为
  <return>0</return> 以适合 <class>Phar</class>
  对象.  否则, 将抛出<class>PharException</class>.
  
  删除档案中的一个文件。这个方法与下面示例中调用 <strong>unlink()</strong> 处理数据流包装器的方式等价。

<comment>Param:</comment>
  <info>string</info>  <strong>$localName</strong>  需要删除的文件在档案中的路径。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>，但是最好还是检查一下是否抛出了异常，如果没有抛出，可以认定操作成功。

<comment>See Also:</comment>
   * <strong>PharData::delete()</strong>
   * <strong>Phar::unlinkArchive()</strong>


id: Phar::extractTo
type: function
doc:
<comment>Description:</comment>
  Extract the contents of a phar archive to a directory
  
  Extract all files within a phar archive to disk.  Extracted files and directories preserve
  permissions as stored in the archive.  The optional parameters allow optional control over which
  files are extracted, and whether existing files on disk can be overwritten. The second parameter
  <strong>$files</strong> can be either the name of a file or directory to extract, or an array of names of files and
  directories to extract.  By default, this method will not overwrite existing files, the third
  parameter can be set to true to enable overwriting of files. This method is similar to
  <strong>ZipArchive::extractTo()</strong>.

<comment>Param:</comment>
  <info>string</info>             <strong>$directory</strong>  Path to extract the given <strong>$files</strong> to
  <info>array|string|null</info>  <strong>$files</strong>      The name of a file or directory to extract, or an array of
                                 files/directories to extract, <info>null</info> to skip this param
  <info>bool</info>               <strong>$overwrite</strong>  Set to <info>true</info> to enable overwriting existing files

<comment>Return:</comment>
  <info>bool</info>  returns <info>true</info> on success, but it is better to check for thrown exception, and assume success
        if none is thrown.

<comment>See Also:</comment>
   * <strong>PharData::extractTo()</strong>


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

<comment>Return:</comment>
  <info>string|null</info>  Returns the alias or <info>null</info> if there's no alias.


id: Phar::getMetadata
type: function
doc:
<comment>Description:</comment>
  Returns phar archive meta-data
  
  Retrieve archive meta-data.  Meta-data can be any PHP variable that can be serialized.

<comment>Return:</comment>
  <info>mixed</info>  Any PHP value that can be serialized and is stored as meta-data for the Phar archive, or
         <info>null</info> if no meta-data is stored.

<comment>See Also:</comment>
   * <strong>Phar::setMetadata()</strong>
   * <strong>Phar::delMetadata()</strong>
   * <strong>Phar::hasMetadata()</strong>


id: Phar::getModified
type: function
doc:
<comment>Description:</comment>
  Return whether phar was modified
  
  This method can be used to determine whether a phar has either had an internal file deleted, or
  contents of a file changed in some way.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if the phar has been modified since opened, <info>false</info> if not.


id: Phar::getPath
type: function
doc:
<comment>Description:</comment>
  Get the real path to the Phar archive on disk
  
  本函数还未编写文档，仅有参数列表。

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


id: Phar::getSignature
type: function
doc:
<comment>Description:</comment>
  Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive
  
  Returns the verification signature of a phar archive in a hexadecimal string.

<comment>Return:</comment>
  <info>array|false</info>  Array with the opened archive's signature in <return>hash</return> key and <return>MD5</return>, <return>SHA-1</return>, <return>SHA-256</return>,
               <return>SHA-512</return>, or <return>OpenSSL</return> in <return>hash_type</return>.  This signature is a hash calculated on the entire
               phar's contents, and may be used to verify the integrity of the archive. A valid
               signature is absolutely required of all executable phar archives if the
               phar.require_hash INI variable is set to true. If there is no signature, the function
               returns <info>false</info>.


