# params

function_name: apcu_add
name: key
type: string
description:
<p class="para">
       Store the variable using this name. <code class="parameter">key</code>s are
       cache-unique, so attempting to use <span class="function">apcu_add</span> to
       store data with a key that already exists will not overwrite the
       existing data, and will instead return <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>. (This is the only
       difference between <span class="function">apcu_add</span> and
       <span class="function">apcu_store</span>.)
      </p>


function_name: apcu_add
name: ttl
type: int
description:
<p class="para">
       Time To Live; store <code class="parameter">var</code> in the cache for
       <code class="parameter">ttl</code> seconds. After the
       <code class="parameter">ttl</code> has passed, the stored variable will be
       expunged from the cache (on the next request). If no <code class="parameter">ttl</code>
       is supplied (or if the <code class="parameter">ttl</code> is
       <code class="literal">0</code>), the value will persist until it is removed from
       the cache manually, or otherwise fails to exist in the cache (clear,
       restart, etc.).
      </p>


function_name: apcu_cache_info
name: limited
type: bool
description:
<p class="para">
       If <code class="parameter">limited</code> is <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, the
       return value will exclude the individual list of cache entries.  This
       is useful when trying to optimize calls for statistics gathering.
      </p>


function_name: apcu_dec
name: success
type: bool
description:
<p class="para">
      Optionally pass the success or fail boolean value to
      this referenced variable.
     </p>


function_name: apcu_dec
name: ttl
type: int
description:
<p class="para">
      TTL to use if the operation inserts a new value (rather than decrementing an existing one).
     </p>


function_name: apcu_delete
name: key
type: mixed
description:
<p class="para">
      A <code class="parameter">key</code> used to store the value as a
      <span class="type">string</span> for a single key,
      or as an <span class="type">array</span> of strings for several keys,
      or as an <span class="classname">APCUIterator</span> <span class="type">object</span>.
     </p>


function_name: apcu_entry
name: generator
type: callable
description:
<p class="para">
       A callable that accepts <code class="parameter">key</code> as the only argument and returns the value to cache.
      </p>


function_name: apcu_exists
name: keys
type: mixed
description:
<p class="para">
      A <span class="type">string</span>, or an <span class="type">array</span> of strings, that
      contain keys.
     </p>


function_name: apcu_fetch
name: key
type: mixed
description:
<p class="para">
       The <code class="parameter">key</code> used to store the value (with
       <span class="function">apcu_store</span>). If an array is passed then each
       element is fetched and returned.
      </p>


function_name: apcu_fetch
name: success
type: bool
description:
<p class="para">
       Set to <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> in success and <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> in failure.
      </p>


function_name: apcu_inc
name: ttl
type: int
description:
<p class="para">
      TTL to use if the operation inserts a new value (rather than incrementing an existing one).
     </p>


function_name: apcu_sma_info
name: limited
type: bool
description:
<p class="para">
       When set to <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> (default) <span class="function">apcu_sma_info</span> will
       return a detailed information about each segment.
      </p>


function_name: apcu_store
name: key
type: string
description:
<p class="para">
       Store the variable using this name. <code class="parameter">key</code>s are
       cache-unique, so storing a second value with the same
       <code class="parameter">key</code> will overwrite the original value.
      </p>


function_name: APCUIterator.__construct
name: search
type: null
description:
<p class="para">
      Either a <a href="book.pcre.html" class="link">PCRE</a> regular expression that
      matches against APCu key names, given as a <span class="type">string</span>.
      Or an <span class="type">array</span> of <span class="type">string</span>s with APCu key names.
      Or, optionally <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong> to skip the search.
     </p>


function_name: APCUIterator.__construct
name: format
type: int
initializer: APC_ITER_ALL
description:
<p class="para">
      The desired format, as configured with one or more of the
      <a href="apcu.constants.html" class="link">APC_ITER_*</a> constants.
     </p>


function_name: APCUIterator.__construct
name: chunk_size
type: int
initializer: 100
description:
<p class="para">
      The chunk size. Must be a value greater than 0. The default
      value is 100.
     </p>


function_name: APCUIterator.__construct
name: list
type: int
initializer: APC_LIST_ACTIVE
description:
<p class="para">
      The type to list. Either pass in <strong><code><a href="apcu.constants.html#constant.apc-list-active">APC_LIST_ACTIVE</a></code></strong>
      or <strong><code><a href="apcu.constants.html#constant.apc-list-deleted">APC_LIST_DELETED</a></code></strong>.
     </p>


function_name: Componere\Abstract\Definition.addMethod
name: method
type: Componere\Method
description:
<p class="para">
      <span class="type">Componere\Method</span> not previously added to another <span class="type">Definition</span>
     </p>


function_name: Componere\cast
name: object
description:
<p class="para">
      An object with a user defined type compatible with <span class="exceptionname">Type</span>
     </p>


function_name: debug_backtrace
name: options
type: int
description:
<p class="para">
       This parameter is a bitmask for the following options:
       <table class="doctable table">
        <caption><strong><span class="function">debug_backtrace</span> options</strong></caption>
        
         <tbody class="tbody">
          <tr>
           <td>DEBUG_BACKTRACE_PROVIDE_OBJECT</td>
           <td>
            Whether or not to populate the &quot;object&quot; index.
           </td>
          </tr>

          <tr>
           <td>DEBUG_BACKTRACE_IGNORE_ARGS</td>
           <td>
            Whether or not to omit the &quot;args&quot; index, and thus all the function/method arguments,
            to save memory.
           </td>
          </tr>

         </tbody>
        
       </table>

       <blockquote class="note"><p><strong class="note">Note</strong>: 
        <p class="para">
         There are four possible combinations:
         <table class="doctable table">
          <caption><strong><span class="function">debug_backtrace</span> options</strong></caption>
          
           <tbody class="tbody">
            <tr>
             <td><code class="code">debug_backtrace()</code></td>
             <td rowspan="3" style="vertical-align: middle;">
              Populates both indexes
             </td>
            </tr>

            <tr>
             <td><code class="code">debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT)</code></td>
            </tr>

            <tr>
             <td><code class="code">debug_backtrace(1)</code></td>
            </tr>

            <tr>
             <td><code class="code">debug_backtrace(0)</code></td>
             <td style="vertical-align: middle;">
              Omits index <code class="literal">&quot;object&quot;</code> and populates index <code class="literal">&quot;args&quot;</code>.
             </td>
            </tr>

            <tr>
             <td><code class="code">debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS)</code></td>
             <td rowspan="2" style="vertical-align: middle;">
              Omits index <code class="literal">&quot;object&quot;</code> <em>and</em> index <code class="literal">&quot;args&quot;</code>.
             </td>
            </tr>

            <tr>
             <td><code class="code">debug_backtrace(2)</code></td>
            </tr>

            <tr>
             <td><code class="code">debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS)</code></td>
             <td rowspan="2" style="vertical-align: middle;">
              Populate index <code class="literal">&quot;object&quot;</code> <em>and</em> omit index <code class="literal">&quot;args&quot;</code>.
             </td>
            </tr>

            <tr>
             <td><code class="code">debug_backtrace(3)</code></td>
            </tr>

           </tbody>
          
         </table>

        </p>
       </p></blockquote>
      </p>


function_name: debug_backtrace
name: limit
type: int
description:
<p class="para">
       This parameter can be used to limit the number of stack frames returned.
       By default (<code class="parameter">limit</code>=<code class="literal">0</code>) it returns all stack frames.
      </p>


function_name: debug_print_backtrace
name: options
type: int
description:
<p class="para">
       This parameter is a bitmask for the following options:
       <table class="doctable table">
        <caption><strong><span class="function">debug_print_backtrace</span> options</strong></caption>
        
         <tbody class="tbody">
          <tr>
           <td>DEBUG_BACKTRACE_IGNORE_ARGS</td>
           <td>
            Whether or not to omit the &quot;args&quot; index, and thus all the function/method arguments,
            to save memory.
           </td>
          </tr>

         </tbody>
        
       </table>

      </p>


function_name: debug_print_backtrace
name: limit
type: int
description:
<p class="para">
       This parameter can be used to limit the number of stack frames printed.
       By default (<code class="parameter">limit</code>=<code class="literal">0</code>) it prints all stack frames.
      </p>


function_name: error_log
name: message_type
type: int
description:
<p class="para">
       Says where the error should go. The possible message types are as 
       follows:
      </p>
      <p class="para">
       <table class="doctable table">
        <caption><strong><span class="function">error_log</span> log types</strong></caption>
        
         <tbody class="tbody">
          <tr>
           <td>0</td>
           <td>
            <code class="parameter">message</code> is sent to PHP&#039;s system logger, using
            the Operating System&#039;s system logging mechanism or a file, depending
            on what the <a href="errorfunc.configuration.html#ini.error-log" class="link">error_log</a>
            configuration directive is set to.  This is the default option.
           </td>
          </tr>

          <tr>
           <td>1</td>
           <td>
            <code class="parameter">message</code> is sent by email to the address in
            the <code class="parameter">destination</code> parameter.  This is the only
            message type where the fourth parameter,
            <code class="parameter">additional_headers</code> is used.
           </td>
          </tr>

          <tr>
           <td>2</td>
           <td>
            No longer an option.
           </td>
          </tr>

          <tr>
           <td>3</td>
           <td>
            <code class="parameter">message</code> is appended to the file
            <code class="parameter">destination</code>. A newline is not automatically 
            added to the end of the <code class="parameter">message</code> string.
           </td>
          </tr>

          <tr>
           <td>4</td>
           <td>
           <code class="parameter">message</code> is sent directly to the SAPI logging
           handler.
           </td>
          </tr>

         </tbody>
        
       </table>

      </p>


function_name: error_log
name: destination
type: null
description:
<p class="para">
       The destination. Its meaning depends on the 
       <code class="parameter">message_type</code> parameter as described above.
      </p>


function_name: error_log
name: additional_headers
type: null
description:
<p class="para">
       The extra headers. It&#039;s used when the <code class="parameter">message_type</code>
       parameter is set to <code class="literal">1</code>.
       This message type uses the same internal function as 
       <span class="function">mail</span> does.
      </p>


function_name: error_reporting
name: error_level
type: null
description:
<p class="para">
       The new <a href="errorfunc.configuration.html#ini.error-reporting" class="link">error_reporting</a>
       level. It takes on either a bitmask, or named constants. Using named 
       constants is strongly encouraged to ensure compatibility for future 
       versions. As error levels are added, the range of integers increases, 
       so older integer-based error levels will not always behave as expected.
      </p>
      <p class="para">
       The available error level constants and the actual
       meanings of these error levels are described in the
       <a href="errorfunc.constants.html" class="link">predefined constants</a>.
      </p>


function_name: set_error_handler
name: callback
type: null
description:
<p class="para">
       If <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong> is passed, the handler is reset to its default state.
       Otherwise, the handler is a callback with the following signature:
      </p>
      <p class="para">
       <div class="methodsynopsis dc-description"><span class="type">bool</span> <span class="methodname"><span class="replaceable">handler</span></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type">int</span> <code class="parameter">$errno</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type">string</span> <code class="parameter">$errstr</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type">string</span> <code class="parameter">$errfile</code><span class="initializer"> = ?</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type">int</span> <code class="parameter">$errline</code><span class="initializer"> = ?</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type">array</span> <code class="parameter">$errcontext</code><span class="initializer"> = ?</span></span><br>)</div>

       <dl>
        
         <dt><code class="parameter">errno</code></dt>
         <dd>
          <span class="simpara">
           The first parameter, <code class="parameter">errno</code>, will be passed the
           level of the error raised, as an integer.
          </span>
         </dd>
        
        
         <dt><code class="parameter">errstr</code></dt>
         <dd>
          <span class="simpara">
           The second parameter, <code class="parameter">errstr</code>, will be passed the
           error message, as a string.
          </span>
         </dd>
        
        
         <dt><code class="parameter">errfile</code></dt>
         <dd>
          <span class="simpara">
           If the callback accepts a third parameter, <code class="parameter">errfile</code>,
           it will be passed the filename that the error was raised in, as a string.
          </span>
         </dd>
        
        
         <dt><code class="parameter">errline</code></dt>
         <dd>
          <span class="simpara">
           If the callback accepts a fourth parameter, <code class="parameter">errline</code>,
           it will be passed the line number where the error was raised, as an integer.
          </span>
         </dd>
        
        
         <dt><code class="parameter">errcontext</code></dt>
         <dd>
          <span class="simpara">
           If the callback accepts a fifth parameter, <code class="parameter">errcontext</code>,
           it will be passed an array that points to the active symbol table at the
           point the error occurred. In other words, <code class="parameter">errcontext</code>
           will contain an array of every variable that existed in the scope the
           error was triggered in.
           User error handlers must not modify the error context.
          </span>
          <div class="warning"><strong class="warning">Warning</strong>
           <p class="simpara">
            This parameter has been <em>DEPRECATED</em> as of PHP 7.2.0,
            and <em>REMOVED</em> as of PHP 8.0.0. If the function defines
            this parameter without a default, an error of &quot;too few arguments&quot; will be
            raised when it is called.
           </p>
          </div>
         </dd>
        
       </dl>
      </p>
      <p class="para">
       If the function returns <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> then the normal error handler continues.
      </p>


function_name: set_error_handler
name: error_levels
type: int
description:
<p class="para">
       Can be used to mask the triggering of the
       <code class="parameter">callback</code> function just like the <a href="errorfunc.configuration.html#ini.error-reporting" class="link">error_reporting</a> ini setting 
       controls which errors are shown. Without this mask set the
       <code class="parameter">callback</code> will be called for every error
       regardless to the setting of the <a href="errorfunc.configuration.html#ini.error-reporting" class="link">error_reporting</a> setting.
      </p>


function_name: set_exception_handler
name: callback
type: null
description:
<p class="para">
       The function to be called when an uncaught exception occurs.
       This handler function needs to accept one parameter,
       which will be the <span class="classname">Throwable</span> object that was thrown.
       Both <span class="classname">Error</span> and <span class="classname">Exception</span>
       implement the <span class="classname">Throwable</span> interface.
       This is the handler signature:
      </p>
      <p class="para">
       <div class="methodsynopsis dc-description"><span class="type">void</span> <span class="methodname"><span class="replaceable">handler</span></span>(<span class="methodparam"><span class="type">Throwable</span> <code class="parameter">$ex</code></span>)</div>

      </p>
      <p class="para">
       <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong> may be passed instead, to reset this handler to its default state.
      </p>


function_name: trigger_error
name: message
type: string
description:
<p class="para">
       The designated error message for this error. It&#039;s limited to 1024 
       bytes in length. Any additional characters beyond 1024 bytes will be 
       truncated.
      </p>


function_name: trigger_error
name: error_level
type: int
description:
<p class="para">
       The designated error type for this error. It only works with the E_USER
       family of constants, and will default to <strong><code><a href="errorfunc.constants.html#constant.e-user-notice">E_USER_NOTICE</a></code></strong>.
      </p>


function_name: FFI.arrayType
name: type
type: FFI\CType
description:
<p class="para">
      A valid C declaration as <span class="type">string</span>, or an instance of <span class="classname">FFI\CType</span>
      which has already been created.
     </p>


function_name: FFI.cdef
name: code
type: string
initializer: ""
description:
<p class="para">
      A string containing a sequence of declarations in regular C language
      (types, structures, functions, variables, etc). Actually, this string may
      be copy-pasted from C header files.
     </p>
     <blockquote class="note"><p><strong class="note">Note</strong>: 
      <p class="para">
       C preprocessor directives are not supported, i.e. <code class="code">#include</code>,
       <code class="code">#define</code> and CPP macros do not work.
      </p>
     </p></blockquote>


function_name: FFI.cdef
name: lib
type: null
description:
<p class="para">
      The name of a shared library file, to be loaded and linked with the
      definitions.
     </p>
     <blockquote class="note"><p><strong class="note">Note</strong>: 
      <p class="para">
       If <code class="parameter">lib</code> is omitted or <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>, platforms supporting <code class="literal">RTLD_DEFAULT</code>
       attempt to lookup symbols declared in <code class="parameter">code</code> in the normal global
       scope. Other systems will fail to resolve these symbols.
      </p>
     </p></blockquote>


function_name: FFI.load
name: filename
type: string
description:
<p class="para">
      The name of a C header file.
     </p>
     <p class="para">
      C preprocessor directives are not supported, i.e. <code class="literal">#include</code>,
      <code class="literal">#define</code> and CPP macros do not work, except for special cases
      listed below.
     </p>
     <p class="para">
      The header file <em>should</em> contain a <code class="literal">#define</code> statement for the
      <code class="literal">FFI_SCOPE</code> variable, e.g.: <code class="code">#define FFI_SCOPE &quot;MYLIB&quot;</code>.
      Refer to the <a href="class.ffi.html#ffi.intro" class="link">class introduction</a> for details.
     </p>
     <p class="para">
      The header file <em>may</em> contain a <code class="literal">#define</code> statement for the
      <code class="literal">FFI_LIB</code> variable to specify the library it exposes. If it is
      a system library only the file name is required, e.g.: <code class="code">#define FFI_LIB
      &quot;libc.so.6&quot;</code>.  If it is a custom library, a relative path is required,
      e.g.: <code class="code">#define FFI_LIB &quot;./mylib.so&quot;</code>.
     </p>


function_name: FFI.new
name: type
type: string
description:
<p class="para">
      <code class="parameter">type</code> is a valid C declaration as <span class="type">string</span>, or an
      instance of <span class="classname">FFI\CType</span> which has already been created.
     </p>


function_name: FFI.new
name: owned
type: bool
description:
<p class="para">
      Whether to create owned (i.e. managed) or unmanaged data. Managed data lives together
      with the returned <span class="classname">FFI\CData</span> object, and is released when the
      last reference to that object is released by regular PHP reference counting or GC.
      Unmanaged data should be released by calling  <span class="methodname">FFI::free</span>,
      when no longer needed.
     </p>


function_name: FFI.new
name: persistent
type: bool
description:
<p class="para">
      Whether to allocate the C data structure permanently on the system heap (using 
      <span class="function">malloc</span>), or on the PHP request heap (using <span class="function">emalloc</span>).
     </p>


function_name: FFI.scope
name: name
type: string
description:
<p class="para">
      The scope name defined by a special <code class="literal">FFI_SCOPE</code> define.
     </p>


function_name: FFI.string
name: ptr
type: FFI\CData
description:
<p class="para">
      The start of the memory area from which to create a <span class="type">string</span>.
     </p>


function_name: FFI.string
name: size
type: null
description:
<p class="para">
      The number of bytes to copy to the <span class="type">string</span>.
      If <code class="parameter">size</code> is omitted or <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>, <code class="parameter">ptr</code> must be a zero terminated
      array of C <code class="literal">char</code>.
     </p>


function_name: opcache_invalidate
name: force
type: bool
description:
<p class="para">
      If set to <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, the script will be invalidated regardless of whether
      invalidation is necessary.
     </p>


function_name: ob_get_status
name: full_status
type: bool
description:
<p class="para">
       <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> to return all active output buffer levels. If <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> or not
       set, only the top level output buffer is returned.
      </p>


function_name: ob_implicit_flush
name: enable
type: bool
description:
<p class="para">
       <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> to turn implicit flushing on, <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> otherwise.
      </p>


function_name: ob_start
name: callback
type: null
description:
<p class="para">
       An optional <code class="parameter">callback</code> <span class="type">callable</span> may be
       specified. It can also be bypassed by passing <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>.
      </p>
      <p class="para">
       <code class="parameter">callback</code> is invoked when the output buffer is
       flushed (sent), cleaned, or when the output buffer is flushed
       at the end of the script.
      </p>
      <p class="para">
       The signature of the <code class="parameter">callback</code> is as follows:
      </p>
      <p class="para">
       <div class="methodsynopsis dc-description"><span class="type">string</span> <span class="methodname"><span class="replaceable">handler</span></span>(<span class="methodparam"><span class="type">string</span> <code class="parameter">$buffer</code></span>, <span class="methodparam"><span class="type">int</span> <code class="parameter">$phase</code><span class="initializer"> = ?</span></span>)</div>

       <dl>
        
         <dt><code class="parameter">buffer</code></dt>
         <dd>
          <span class="simpara">
           Contents of the output buffer.
          </span>
         </dd>
        
        
         <dt><code class="parameter">phase</code></dt>
         <dd>
          <span class="simpara">
           Bitmask of
           <a href="outcontrol.constants.html#constant.php-output-handler-start" class="link">
            <strong><code>PHP_OUTPUT_HANDLER_<span class="replaceable">*</span></code></strong>
            constants
           </a>.
           See <a href="outcontrol.flags-passed-to-output-handlers.html" class="xref">Flags Passed To Output Handlers</a>
           for more details.
          </span>
         </dd>
        
       </dl>
      </p>
      <p class="para">
       If <code class="parameter">callback</code> returns <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>
       the contents of the buffer are returned.
       See <a href="outcontrol.output-handler-return-values.html" class="xref">Output Handler Return Values</a>
       for more details.
      </p>
      <div class="warning"><strong class="warning">Warning</strong>
       <p class="simpara">
        Calling any of the following functions from within an output handler
        will result in a fatal error:
        <span class="function">ob_clean</span>, <span class="function">ob_end_clean</span>,
        <span class="function">ob_end_flush</span>, <span class="function">ob_flush</span>,
        <span class="function">ob_get_clean</span>, <span class="function">ob_get_flush</span>,
        <span class="function">ob_start</span>.
       </p>
      </div>
      <p class="para">
       See <a href="outcontrol.output-handlers.html" class="xref">Output Handlers</a>
       and <a href="outcontrol.working-with-output-handlers.html" class="xref">Working With Output Handlers</a>
       for more details on <code class="parameter">callback</code>s (output handlers).
      </p>


function_name: ob_start
name: chunk_size
type: int
description:
<p class="para">
       If the optional parameter <code class="parameter">chunk_size</code> is passed,
       the buffer will be flushed after any block of code resulting in output
       that causes the buffer&#039;s length to equal
       or exceed <code class="parameter">chunk_size</code>.
       The default value <code class="literal">0</code> means
       that all output is buffered until the buffer is turned off.
       See <a href="outcontrol.buffer-size.html" class="xref">Buffer Size</a> for more details.
      </p>


function_name: ob_start
name: flags
type: int
description:
<p class="para">
       The <code class="parameter">flags</code> parameter is a bitmask that controls
       the operations that can be performed on the output buffer. The default
       is to allow output buffers to be cleaned, flushed and removed, which
       can be set explicitly via the
       <a href="outcontrol.constants.html#outcontrol.constants.buffer-control-flags" class="link">
        buffer control flags
       </a>.
       See <a href="outcontrol.operations-on-buffers.html" class="xref">Operations Allowed On Buffers</a>
       for more details.
      </p>
      <p class="para">
       Each flag controls access to a set of functions, as described below:
       <table class="doctable informaltable">
        
         <thead>
          <tr>
           <th>Constant</th>
           <th>Functions</th>
          </tr>

         </thead>

         <tbody class="tbody">
          <tr>
           <td><strong><code><a href="outcontrol.constants.html#constant.php-output-handler-cleanable">PHP_OUTPUT_HANDLER_CLEANABLE</a></code></strong></td>
           <td>
            <span class="function">ob_clean</span>
           </td>
          </tr>

          <tr>
           <td><strong><code><a href="outcontrol.constants.html#constant.php-output-handler-flushable">PHP_OUTPUT_HANDLER_FLUSHABLE</a></code></strong></td>
           <td>
            <span class="function">ob_end_flush</span>
           </td>
          </tr>

          <tr>
           <td><strong><code><a href="outcontrol.constants.html#constant.php-output-handler-removable">PHP_OUTPUT_HANDLER_REMOVABLE</a></code></strong></td>
           <td>
            <span class="function">ob_end_clean</span>,
            <span class="function">ob_end_flush</span>,
            <span class="function">ob_get_clean</span>,
            <span class="function">ob_get_flush</span>
           </td>
          </tr>

         </tbody>
        
       </table>

      </p>


function_name: assert_options
name: option
type: int
description:
<p class="para">
       <table class="doctable table">
        <caption><strong>Assert Options</strong></caption>
        
         <thead>
          <tr>
           <th>Option</th>
           <th>INI Setting</th>
           <th>Default value</th>
           <th>Description</th>
          </tr>

         </thead>

         <tbody class="tbody">
          <tr>
           <td>ASSERT_ACTIVE</td>
           <td>assert.active</td>
           <td>1</td>
           <td>enable <span class="function">assert</span> evaluation</td>
          </tr>

          <tr>
           <td>ASSERT_EXCEPTION</td>
           <td>assert.exception</td>
           <td>1</td>
           <td>throws an <span class="classname">AssertionError</span> for each failed assertions</td>
          </tr>

          <tr>
           <td>ASSERT_WARNING</td>
           <td>assert.warning</td>
           <td>1</td>
           <td>issue a PHP warning for each failed assertion</td>
          </tr>

          <tr>
           <td>ASSERT_BAIL</td>
           <td>assert.bail</td>
           <td>0</td>
           <td>terminate execution on failed assertions</td>
          </tr>

          <tr>
           <td>ASSERT_QUIET_EVAL</td>
           <td>assert.quiet_eval</td>
           <td>0</td>
           <td>
            disable error_reporting during assertion expression
            evaluation. Removed as of PHP 8.0.0.
           </td>
          </tr>

          <tr>
           <td>ASSERT_CALLBACK</td>
           <td>assert.callback</td>
           <td>(<strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>)</td>
           <td>Callback to call on failed assertions</td>
          </tr>

         </tbody>
        
       </table>

      </p>


function_name: assert_options
name: value
type: mixed
description:
<p class="para">
       An optional new value for the option.
      </p>
      <p class="para">
       The callback function set via <strong><code><a href="info.constants.html#constant.assert-callback">ASSERT_CALLBACK</a></code></strong> or
       <a href="info.configuration.html#ini.assert.callback" class="link">assert.callback</a>
       should have the following signature:
       <div class="methodsynopsis dc-description"><span class="type">void</span> <span class="methodname">assert_callback</span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type">string</span> <code class="parameter">$file</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type">int</span> <code class="parameter">$line</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type">string</span><span class="type">null</span></span> <code class="parameter">$assertion</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type">string</span> <code class="parameter">$description</code><span class="initializer"> = ?</span></span><br>)</div>

       <dl>
        
         <dt><code class="parameter">file</code></dt>
         <dd>
          <span class="simpara">
           The file where <span class="function">assert</span> has been called.
          </span>
         </dd>
        
        
         <dt><code class="parameter">line</code></dt>
         <dd>
          <span class="simpara">
           The line where <span class="function">assert</span> has been called.
          </span>
         </dd>
        
        
         <dt><code class="parameter">assertion</code></dt>
         <dd>
          <span class="simpara">
           Prior to PHP 8.0.0, the assertion which has been passed to <span class="function">assert</span>,
           but only when the assertion is given as a string.
           (If the assertion is a boolean condition, this parameter will be an empty string.)
           As of PHP 8.0.0, this parameter is always <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>.
          </span>
         </dd>
        
        
         <dt><code class="parameter">description</code></dt>
         <dd>
          <span class="simpara">
           The description that has been passed to <span class="function">assert</span>.
          </span>
         </dd>
        
       </dl>
      </p>


function_name: assert
name: assertion
type: string
description:
<p class="para">
       This is any expression that returns a value, which will be executed
       and the result is used to indicate whether the assertion succeeded or failed.
      </p>

      <div class="warning"><strong class="warning">Warning</strong>
       <p class="para">
        Prior to PHP 8.0.0, if <code class="parameter">assertion</code> was a
        <span class="type">string</span> it was interpreted as PHP code and executed via
        <span class="function">eval</span>.
        This string would be passed to the callback as the third argument.
        This behaviour was <em>DEPRECATED</em> in PHP 7.2.0,
        and <em>REMOVED</em> in PHP 8.0.0.
       </p>
      </div>


function_name: assert
name: description
type: string
description:
<p class="para">
       If <code class="parameter">description</code> is an instance of
       <span class="classname">Throwable</span>, it will be thrown only if the
       <code class="parameter">assertion</code> is executed and fails.
       <blockquote class="note"><p><strong class="note">Note</strong>: 
        <p class="para">
         As of PHP 8.0.0, this is done <em>prior</em> to calling
         the potentially defined assertion callback.
        </p>
       </p></blockquote>
       <blockquote class="note"><p><strong class="note">Note</strong>: 
        <p class="para">
         As of PHP 8.0.0, the <span class="type">object</span> will be thrown regardless of the configuration of
         <a href="info.configuration.html#ini.assert.exception" class="link">assert.exception</a>.
        </p>
       </p></blockquote>
       <blockquote class="note"><p><strong class="note">Note</strong>: 
        <p class="para">
         As of PHP 8.0.0, the
         <a href="info.configuration.html#ini.assert.bail" class="link">assert.bail</a>
         setting has no effect in this case.
        </p>
       </p></blockquote>
      </p>
      <p class="para">
       If <code class="parameter">description</code> is a <span class="type">string</span> this message
       will be used if an exception or a warning is emitted.
       An optional description that will be included in the failure message if
       the <code class="parameter">assertion</code> fails.
      </p>
      <p class="para">
       If <code class="parameter">description</code> is omitted.
       
       A default description equal to the source code for the invocation of
       <span class="function">assert</span> is created at compile time.
      </p>


function_name: dl
name: extension_filename
type: string
description:
<p class="simpara">
          the current internal <code class="literal">ZEND_MODULE_API_NO</code> (Zend
          internal module API number, which is basically the date on which a
          major module API change happened, e.g. <code class="literal">20010901</code>)
         </p>


function_name: extension_loaded
name: extension
type: string
description:
<p class="para">
       The extension name. This parameter is case-insensitive.
      </p>
      <p class="para">
       You can see the names of various extensions by using
       <span class="function">phpinfo</span> or if you&#039;re using the
       <code class="literal">CGI</code> or <code class="literal">CLI</code> version of
       PHP you can use the <strong class="option unknown">-m</strong> switch to
       list all available extensions:
       <div class="example-contents screen">
<div class="cdata"><pre>
$ php -m
[PHP Modules]
xml
tokenizer
standard
sockets
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]
</pre></div>
       </div>
      </p>


function_name: get_defined_constants
name: categorize
type: bool
description:
<p class="para">
       Causing this function to return a multi-dimensional
       array with categories in the keys of the first dimension and constants
       and their values in the second dimension.
       <div class="informalexample">
        <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />define</span><span style="color: #007700">(</span><span style="color: #DD0000">"MY_CONSTANT"</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">get_defined_constants</span><span style="color: #007700">(</span><span style="color: #0000BB">true</span><span style="color: #007700">));<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
        </div>

        <p class="para">The above example will output
something similar to:</p>
        <div class="example-contents screen">
<div class="cdata"><pre>
Array
(
    [Core] =&gt; Array
        (
            [E_ERROR] =&gt; 1
            [E_WARNING] =&gt; 2
            [E_PARSE] =&gt; 4
            [E_NOTICE] =&gt; 8
            [E_CORE_ERROR] =&gt; 16
            [E_CORE_WARNING] =&gt; 32
            [E_COMPILE_ERROR] =&gt; 64
            [E_COMPILE_WARNING] =&gt; 128
            [E_USER_ERROR] =&gt; 256
            [E_USER_WARNING] =&gt; 512
            [E_USER_NOTICE] =&gt; 1024
            [E_ALL] =&gt; 2047
            [TRUE] =&gt; 1
        )

    [pcre] =&gt; Array
        (
            [PREG_PATTERN_ORDER] =&gt; 1
            [PREG_SET_ORDER] =&gt; 2
            [PREG_OFFSET_CAPTURE] =&gt; 256
            [PREG_SPLIT_NO_EMPTY] =&gt; 1
            [PREG_SPLIT_DELIM_CAPTURE] =&gt; 2
            [PREG_SPLIT_OFFSET_CAPTURE] =&gt; 4
            [PREG_GREP_INVERT] =&gt; 1
        )

    [user] =&gt; Array
        (
            [MY_CONSTANT] =&gt; 1
        )

)
</pre></div>
        </div>
       </div>
      </p>


function_name: get_extension_funcs
name: extension
type: string
description:
<p class="para">
       The module name.
      </p>
      <blockquote class="note"><p><strong class="note">Note</strong>: 
       <p class="para">
        This parameter must be in <em>lowercase</em>.
       </p>
      </p></blockquote>


function_name: get_loaded_extensions
name: zend_extensions
type: bool
description:
<p class="para">
       Only return Zend extensions, if not then regular extensions, like 
       mysqli are listed. Defaults to <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> (return regular extensions).
      </p>


function_name: get_resources
name: type
type: null
description:
<p class="para">
       If defined, this will cause <span class="function">get_resources</span> to only
       return resources of the given type.
       <a href="resource.html" class="link">A list of resource types is available.</a>
      </p>
      <p class="para">
       If the <span class="type">string</span> <code class="literal">Unknown</code> is provided as
       the type, then only resources that are of an unknown type will be
       returned.
      </p>
      <p class="para">
       If omitted, all resources will be returned.
      </p>


function_name: getenv
name: name
type: null
description:
<p class="para">
       The variable name as a <span class="type">string</span> or <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>.
      </p>


function_name: getenv
name: local_only
type: bool
description:
<p class="para">
       When set to <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, only local environment variables are returned, set by the operating system or putenv. It only has
       an effect when <code class="parameter">name</code> is a <span class="type">string</span>.
      </p>


function_name: getopt
name: short_options
type: string
description:
<p class="simpara">
       Each character in this string will be used as option characters and
       matched against options passed to the script starting with a single
       hyphen (<code class="literal">-</code>).
      </p>
      <p class="simpara">
       For example, an option string <code class="literal">&quot;x&quot;</code> recognizes an
       option <code class="literal">-x</code>.
      </p>
      <p class="simpara">
       Only a-z, A-Z and 0-9 are allowed.
      </p>


function_name: getopt
name: long_options
type: array
initializer: []
description:
<p class="simpara">
       An array of options. Each element in this array will be used as option
       strings and matched against options passed to the script starting with
       two hyphens (<code class="literal">--</code>).
      </p>
      <p class="simpara">
       For example, an longopts element <code class="literal">&quot;opt&quot;</code> recognizes an
       option <code class="literal">--opt</code>.
      </p>


function_name: getopt
name: rest_index
type: int
description:
<p class="simpara">
       If the <code class="parameter">rest_index</code> parameter is present, then the
       index where argument parsing stopped will be written to this variable.
      </p>


function_name: getrusage
name: mode
type: int
description:
<p class="para">
       If <code class="parameter">mode</code> is 1, getrusage will be called with
       <strong><code>RUSAGE_CHILDREN</code></strong>.
      </p>


function_name: ini_get_all
name: extension
type: null
description:
<p class="para">
       An optional extension name. If not <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong> or the <span class="type">string</span> <code class="literal">core</code>, the function returns only options
       specific for that extension.
      </p>


function_name: ini_get_all
name: details
type: bool
description:
<p class="para">
       Retrieve details settings or only the current value for each setting.
       Default is <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> (retrieve details).
      </p>


function_name: ini_parse_quantity
name: shorthand
type: string
description:
<p class="para">
       Ini shorthand to parse, must be a number followed by an optional multiplier.

       The following multipliers are supported: <code class="literal">k</code>/<code class="literal">K</code> (<code class="literal">1024</code>),
       <code class="literal">m</code>/<code class="literal">M</code> (<code class="literal">1048576</code>),
       <code class="literal">g</code>/<code class="literal">G</code> (<code class="literal">1073741824</code>).

       The number can be a decimal, hex (prefixed with <code class="literal">0x</code> or <code class="literal">0X</code>),
       octal (prefixed with <code class="literal">0o</code>, <code class="literal">0O</code> or <code class="literal">0</code>) or binary (prefixed with
       <code class="literal">0b</code> or <code class="literal">0B</code>)
      </p>


function_name: ini_set
name: option
type: string
description:
<p class="para">
      </p>
      <p class="para">
       Not all the available options can be changed using
       <span class="function">ini_set</span>. There is a list of all available options
       in the <a href="ini.list.html" class="link">appendix</a>.
      </p>


function_name: memory_get_peak_usage
name: real_usage
type: bool
description:
<p class="para">
       Set this to <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> to get the real size of memory allocated from
       system. If not set or <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> only the memory used by
       <code class="literal">emalloc()</code> is reported.
      </p>


function_name: memory_get_usage
name: real_usage
type: bool
description:
<p class="para">
       Set this to <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> to get total memory allocated from
       system, including unused pages. 
       If not set or <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> only the used memory is reported.
      </p>


function_name: php_uname
name: mode
type: string
initializer: "a"
description:
<p class="simpara">
          <code class="literal">&#039;m&#039;</code>: Machine type. eg. <code class="literal">i386</code>.
         </p>


function_name: phpcredits
name: flags
type: int
description:
<p class="para">
       To generate a custom credits page, you may want to use the
       <code class="parameter">flags</code> parameter.
      </p>
      <p class="para">
       <table class="doctable table">
        <caption><strong>Pre-defined <span class="function">phpcredits</span> flags</strong></caption>
        
         <thead>
          <tr>
           <th>name</th>
           <th>description</th>
          </tr>

         </thead>

         <tbody class="tbody">
          <tr>
           <td>CREDITS_ALL</td>
           <td>
            All the credits, equivalent to using: <strong><code><a href="info.constants.html#constant.credits-docs">CREDITS_DOCS</a></code></strong> +
            <strong><code><a href="info.constants.html#constant.credits-general">CREDITS_GENERAL</a></code></strong> + <strong><code><a href="info.constants.html#constant.credits-group">CREDITS_GROUP</a></code></strong> +
            <strong><code><a href="info.constants.html#constant.credits-modules">CREDITS_MODULES</a></code></strong> + <strong><code><a href="info.constants.html#constant.credits-fullpage">CREDITS_FULLPAGE</a></code></strong>.
            It generates a complete stand-alone HTML page with the appropriate tags.
           </td>
          </tr>

          <tr>
           <td>CREDITS_DOCS</td>
           <td>The credits for the documentation team</td>
          </tr>

          <tr>
           <td>CREDITS_FULLPAGE</td>
           <td>
            Usually used in combination with the other flags.  Indicates
            that a complete stand-alone HTML page needs to be
            printed including the information indicated by the other
            flags.
           </td>
          </tr>

          <tr>
           <td>CREDITS_GENERAL</td>
           <td>
            General credits: Language design and concept, PHP authors 
            and SAPI module.
           </td>
          </tr>

          <tr>
           <td>CREDITS_GROUP</td>
           <td>A list of the core developers</td>
          </tr>

          <tr>
           <td>CREDITS_MODULES</td>
           <td>
            A list of the extension modules for PHP, and their authors
           </td>
          </tr>

          <tr>
           <td>CREDITS_SAPI</td>
           <td>
            A list of the server API modules for PHP, and their authors
           </td>
          </tr>

         </tbody>
        
       </table>

      </p>


function_name: phpinfo
name: flags
type: int
description:
<p class="para">
       The output may be customized by passing one or more of the
       following <em>constants</em> bitwise values summed
       together in the optional <code class="parameter">flags</code> parameter.
       One can also combine the respective constants or bitwise values
       together with the <a href="language.operators.bitwise.html" class="link">bitwise or operator</a>.
      </p>
      <p class="para">
       <table class="doctable table">
        <caption><strong><span class="function">phpinfo</span> options</strong></caption>
        
         <thead>
          <tr>
           <th>Name (constant)</th>
           <th>Value</th>
           <th>Description</th>
          </tr>

         </thead>

         <tbody class="tbody">
          <tr>
           <td>INFO_GENERAL</td>
           <td>1</td>
           <td>
            The configuration line, <var class="filename">php.ini</var> location, build date, Web
            Server, System and more.
           </td>
          </tr>

          <tr>
           <td>INFO_CREDITS</td>
           <td>2</td>
           <td>
            PHP Credits.  See also <span class="function">phpcredits</span>.
           </td>
          </tr>

          <tr>
           <td>INFO_CONFIGURATION</td>
           <td>4</td>
           <td>
            Current Local and Master values for PHP directives.  See
            also <span class="function">ini_get</span>.
           </td>
          </tr>

          <tr>
           <td>INFO_MODULES</td>
           <td>8</td>
           <td>
            Loaded modules and their respective settings.  See also
            <span class="function">get_loaded_extensions</span>.
           </td>
          </tr>

          <tr>
           <td>INFO_ENVIRONMENT</td>
           <td>16</td>
           <td>
            Environment Variable information that&#039;s also available in
            <var class="varname">$_ENV</var>.
           </td>
          </tr>

          <tr>
           <td>INFO_VARIABLES</td>
           <td>32</td>
           <td>
            Shows all <a href="language.variables.predefined.html" class="link">
            predefined variables</a> from EGPCS (Environment, GET,
            POST, Cookie, Server).
           </td>
          </tr>

          <tr>
           <td>INFO_LICENSE</td>
           <td>64</td>
           <td>
            PHP License information.  See also the <a href="https://www.php.net/license/" class="link external">&raquo;&nbsp;license FAQ</a>.
           </td>
          </tr>

          <tr>
           <td>INFO_ALL</td>
           <td>-1</td>
           <td>
            Shows all of the above.
           </td>
          </tr>

         </tbody>
        
       </table>

      </p>


function_name: putenv
name: assignment
type: string
description:
<p class="para">
       The setting, like <code class="literal">&quot;FOO=BAR&quot;</code>
      </p>


function_name: set_include_path
name: include_path
type: string
description:
<p class="para">
       The new value for the <a href="ini.core.html#ini.include-path" class="link">include_path</a>
      </p>


function_name: set_time_limit
name: seconds
type: int
description:
<p class="para">
       The maximum execution time, in seconds. If set to zero, no time limit
       is imposed.
      </p>


function_name: version_compare
name: operator
type: null
description:
<p class="para">
       An optional operator. The possible operators
       are: <code class="literal">&lt;</code>, <code class="literal">lt</code>,
       <code class="literal">&lt;=</code>, <code class="literal">le</code>, <code class="literal">&gt;</code>,
       <code class="literal">gt</code>, <code class="literal">&gt;=</code>, <code class="literal">ge</code>,
       <code class="literal">==</code>, <code class="literal">=</code>, <code class="literal">eq</code>,
       <code class="literal">!=</code>, <code class="literal">&lt;&gt;</code>, <code class="literal">ne</code>
       respectively.
      </p>
      <p class="para">
       This parameter is case-sensitive, values should be lowercase.
      </p>


function_name: phpdbg_color
name: color
type: string
description:
<p class="para">
      The name of the color. One of <code class="literal">white</code>, <code class="literal">red</code>,
      <code class="literal">green</code>, <code class="literal">yellow</code>, <code class="literal">blue</code>,
      <code class="literal">purple</code>, <code class="literal">cyan</code> or <code class="literal">black</code>,
      optionally with either a trailing <code class="literal">-bold</code> or <code class="literal">-underline</code>,
      for instance, <code class="literal">white-bold</code> or <code class="literal">green-underline</code>.
     </p>


function_name: runkit7_constant_add
name: constant_name
type: string
description:
<p class="para">
       Name of constant to declare.  Either a string to indicate a global constant,
       or <code class="literal">classname::constname</code> to indicate a class constant.
     </p>


function_name: runkit7_constant_add
name: value
type: mixed
description:
<p class="para">
       NULL, Bool, Long, Double, String, Array, or Resource value to store in the new constant.
     </p>


function_name: runkit7_constant_add
name: newVisibility
type: int
description:
<p class="para">
      Visibility of the constant, for class constants. Public by default.
      One of the <strong><code>RUNKIT7_ACC_*</code></strong> constants.
     </p>


function_name: runkit7_constant_redefine
name: constant_name
type: string
description:
<p class="para">
       Constant to redefine.  Either the name of a global constant,
       or <code class="literal">classname::constname</code> indicating class constant.
     </p>


function_name: runkit7_constant_redefine
name: new_visibility
type: int
description:
<p class="para">
      The new visibility of the constant, for class constants.
      Unchanged by default.
      One of the <strong><code>RUNKIT7_ACC_*</code></strong> constants.
     </p>


function_name: runkit7_constant_remove
name: constant_name
type: string
description:
<p class="para">
       Name of the constant to remove.  Either the name of a global constant,
       or <code class="literal">classname::constname</code> indicating a class constant.
     </p>


function_name: runkit7_function_add
name: is_strict
type: bool
description:
<p class="para">
      Whether the function should behave as if it were declared in a file with <code class="literal">strict_types=1</code>
     </p>


function_name: runkit7_function_add
name: closure
type: Closure
description:
<p class="para">
      A <span class="classname">closure</span> that defines the function.
     </p>


function_name: runkit7_function_redefine
name: is_strict
type: bool
description:
<p class="para">
      Whether the function behaves as if it was declared in a file with <code class="literal">strict_types=1</code>
     </p>


function_name: runkit7_function_redefine
name: closure
type: Closure
description:
<p class="para">
       A <span class="classname">closure</span> that defines the function.
      </p>


function_name: runkit7_import
name: flags
type: int
description:
<p class="para">
       Bitwise OR of the <a href="runkit7.constants.html" class="link"><code class="literal">RUNKIT7_IMPORT_*</code>
       family of constants</a>.
     </p>


function_name: runkit7_method_add
name: code
type: string
description:
<p class="para">
       The code to be evaluated when <code class="parameter">method_name</code>
       is called
      </p>


function_name: runkit7_method_add
name: flags
type: int
initializer: RUNKIT7_ACC_PUBLIC
description:
<p class="para">
       The type of method to create, can be
       <strong><code><a href="runkit7.constants.html#constant.runkit7-acc-public">RUNKIT7_ACC_PUBLIC</a></code></strong>,
       <strong><code><a href="runkit7.constants.html#constant.runkit7-acc-protected">RUNKIT7_ACC_PROTECTED</a></code></strong> or
       <strong><code><a href="runkit7.constants.html#constant.runkit7-acc-private">RUNKIT7_ACC_PRIVATE</a></code></strong> optionally combined via bitwise OR with
       <strong><code><a href="runkit7.constants.html#constant.runkit7-acc-static">RUNKIT7_ACC_STATIC</a></code></strong>
      </p>


function_name: runkit7_method_add
name: is_strict
type: bool
description:
<p class="para">
      Whether the method behaves as if it were declared in a file with <code class="literal">strict_types=1</code>
     </p>


function_name: runkit7_method_add
name: closure
type: Closure
description:
<p class="para">
       A <span class="classname">closure</span> that defines the method.
      </p>


function_name: runkit7_method_copy
name: source_method_name
type: string
description:
<p class="para">
       Name of the method to copy from the source class. If this parameter is
       omitted, the value of <code class="parameter">destination_method_name</code> is assumed.
     </p>


function_name: runkit7_method_redefine
name: code
type: string
description:
<p class="para">
       The new code to be evaluated when <code class="parameter">method_name</code>
       is called
      </p>


function_name: runkit7_method_redefine
name: flags
type: int
initializer: RUNKIT7_ACC_PUBLIC
description:
<p class="para">
       The redefined method can be
       <strong><code><a href="runkit7.constants.html#constant.runkit7-acc-public">RUNKIT7_ACC_PUBLIC</a></code></strong>,
       <strong><code><a href="runkit7.constants.html#constant.runkit7-acc-protected">RUNKIT7_ACC_PROTECTED</a></code></strong> or
       <strong><code><a href="runkit7.constants.html#constant.runkit7-acc-private">RUNKIT7_ACC_PRIVATE</a></code></strong> optionally combined via bitwise OR with
       <strong><code><a href="runkit7.constants.html#constant.runkit7-acc-static">RUNKIT7_ACC_STATIC</a></code></strong>
      </p>


function_name: runkit7_method_redefine
name: is_strict
type: bool
description:
<p class="para">
      Whether the method behaves as if it was declared in a file with <code class="literal">strict_types=1</code>.
     </p>


function_name: uopz_add_function
name: handler
type: Closure
description:
<p class="para">
      The <span class="classname">Closure</span> that defines the new function or method.
     </p>


function_name: uopz_add_function
name: all
type: int
description:
<p class="para">
      Whether all classes that descend from <code class="parameter">class</code> will
      also be affected.
     </p>


function_name: uopz_compose
name: methods
type: array
description:
<p class="para">
 An associative array of methods, values are either closures or [modifiers =&gt; closure]
     </p>


function_name: uopz_compose
name: properties
type: array
description:
<p class="para">
 An associative array of properties, keys are names, values are modifiers
     </p>


function_name: uopz_flags
name: function
type: string
description:
<p class="para">
      The name of the function. If <code class="parameter">class</code> is given and an empty string
      is passed as <code class="parameter">function</code>, <span class="function">uopz_flags</span>
      gets or sets the flags of the class entry.
     </p>


function_name: uopz_flags
name: flags
type: int
initializer: PHP_INT_MAX
description:
<p class="para">
 A valid set of ZEND_ACC_ flags.
      If omitted, <span class="function">uopz_flags</span> acts as getter.
     </p>


function_name: uopz_redefine
name: value
type: mixed
description:
<p class="para">
 The new value for the constant, must be a valid type for a constant variable
     </p>


function_name: uopz_set_mock
name: mock
type: mixed
description:
<p class="para">
      The mock to use in the form of a string containing the name of the class to use or an object.
      If a string is passed, it has to be the fully qualified class name. It is
      recommended to use the <code class="code">::class</code> magic constant in this case.
     </p>


function_name: uopz_set_return
name: value
type: mixed
description:
<p class="para">
 The value the function should return. If a Closure is provided and the execute flag is set, the Closure will be executed in place of the original function.
     </p>


function_name: uopz_set_return
name: execute
type: bool
description:
<p class="para">
 If true, and a Closure was provided as the value, the Closure will be executed in place of the original function.
     </p>


function_name: uopz_set_static
name: static
type: array
description:
<p class="para">
      The associative <span class="type">array</span> of variable names mapped to their
      values.
     </p>


function_name: uopz_undefine
name: class
type: string
description:
<p class="para">
 The name of the class containing <code class="parameter">constant</code>
     </p>


function_name: wincache_fcache_fileinfo
name: summaryonly
type: bool
description:
<p class="para">
       Controls whether the returned array will contain information about individual cache entries 
       along with the file cache summary.
      </p>


function_name: wincache_lock
name: isglobal
type: bool
description:
<p class="para">
       Controls whether the scope of the lock is system-wide or local. Local locks are scoped to the application pool 
       in IIS FastCGI case or to all php processes that have the same parent process identifier.
      </p>


function_name: wincache_ocache_fileinfo
name: summaryonly
type: bool
description:
<p class="para">
       Controls whether the returned array will contain information about individual cache entries 
       along with the opcode cache summary.
      </p>


function_name: wincache_refresh_if_changed
name: files
type: array
initializer: NULL
description:
<p class="para">
       An array of file names for files that need to be refreshed. 
       An absolute or relative file paths can be used.
      </p>


function_name: wincache_scache_info
name: summaryonly
type: bool
description:
<p class="para">
       Controls whether the returned array will contain information about individual cache entries 
       along with the session cache summary.
      </p>


function_name: wincache_ucache_add
name: key
type: string
description:
<p class="para">
       Store the variable using this <code class="parameter">key</code> name. If a variable with same key is already present the function
       will fail and return <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>. <code class="parameter">key</code> is case sensitive. To override the value even if 
       <code class="parameter">key</code> is present use <span class="function">wincache_ucache_set</span> function instad. 
       <code class="parameter">key</code> can also take array of name =&gt; value pairs where names will be used as keys. 
       This can be used to add multiple values in the cache in one operation, thus avoiding race condition.
      </p>


function_name: wincache_ucache_add
name: value
type: mixed
description:
<p class="para">
       Value of a variable to store. <code class="parameter">Value</code> supports all data types except resources, such as file handles.
       This paramter is ignored if first argument is an array. A general guidance is to pass <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong> 
       as <code class="parameter">value</code> while using array as <code class="parameter">key</code>. If <code class="parameter">value</code> is an
       object, or an array containing objects, then the objects will be serialized. See
       <a href="language.oop5.magic.html#object.sleep" class="link">__sleep()</a> for details on serializing objects.
      </p>


function_name: wincache_ucache_add
name: ttl
type: int
description:
<p class="para">
       Time for the variable to live in the cache in seconds. After the value specified in <code class="parameter">ttl</code> has passed 
       the stored variable will be deleted from the cache. This parameter takes a default value of <code class="literal">0</code> which means 
       the variable will stay in the cache unless explicitly deleted by using <span class="function">wincache_ucache_delete</span> 
       or <span class="function">wincache_ucache_clear</span> functions.
      </p>


function_name: wincache_ucache_cas
name: key
type: string
description:
<p class="para">
       The <code class="parameter">key</code> that is used to store the variable in the cache. 
       <code class="parameter">key</code> is case sensitive.
      </p>


function_name: wincache_ucache_cas
name: old_value
type: int
description:
<p class="para">
       Old value of the variable pointed by <code class="parameter">key</code> in the user cache. 
       The value should be of type <code class="literal">long</code>, otherwise the function returns 
       <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
      </p>


function_name: wincache_ucache_cas
name: new_value
type: int
description:
<p class="para">
       New value which will get assigned to variable pointer by <code class="parameter">key</code> if a 
       match is found. The value should be of type <code class="literal">long</code>, otherwise 
       the function returns <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
      </p>


function_name: wincache_ucache_dec
name: key
type: string
description:
<p class="para">
       The <code class="parameter">key</code> that was used to store the variable in the cache. 
       <code class="parameter">key</code> is case sensitive.
      </p>


function_name: wincache_ucache_dec
name: dec_by
type: int
initializer: 1
description:
<p class="para">
       The value by which the variable associated with the <code class="parameter">key</code> will get decremented. 
       If the argument is a floating point number it will be truncated to nearest integer. The variable 
       associated with the <code class="parameter">key</code> should be of type <code class="literal">long</code>, otherwise 
       the function fails and returns <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
      </p>


function_name: wincache_ucache_dec
name: success
type: bool
description:
<p class="para">
       Will be set to <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> on success and <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> on failure.
      </p>


function_name: wincache_ucache_delete
name: key
type: mixed
description:
<p class="para">
       The <code class="parameter">key</code> that was used to store the variable in the cache. 
       <code class="parameter">key</code> is case sensitive. <code class="parameter">key</code> can be an 
       array of keys.
      </p>


function_name: wincache_ucache_get
name: key
type: mixed
description:
<p class="para">
       The <code class="parameter">key</code> that was used to store the variable in the cache. 
       <code class="parameter">key</code> is case sensitive. <code class="parameter">key</code> can be an 
       array of keys. In this case the return value will be an array of values of each element 
       in the <code class="parameter">key</code> array. If an object, or an array containing objects,
       is returned, then the objects will be unserialized. See
       <a href="language.oop5.magic.html#object.wakeup" class="link">__wakeup()</a> for details on unserializing objects.
      </p>


function_name: wincache_ucache_inc
name: inc_by
type: int
initializer: 1
description:
<p class="para">
       The value by which the variable associated with the <code class="parameter">key</code> will get incremented. 
       If the argument is a floating point number it will be truncated to nearest integer. The variable 
       associated with the <code class="parameter">key</code> should be of type <code class="literal">long</code>, otherwise 
       the function fails and returns <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
      </p>


function_name: wincache_ucache_info
name: summaryonly
type: bool
description:
<p class="para">
       Controls whether the returned array will contain information about individual cache entries 
       along with the user cache summary.
      </p>


function_name: wincache_ucache_info
name: key
type: string
initializer: NULL
description:
<p class="para">
       The key of an entry in the user cache. If specified then the returned array will contain information 
       only about that cache entry. If not specified and <code class="parameter">summaryonly</code> is set to 
       <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> then the returned array will contain information about all entries in the cache.
      </p>


function_name: wincache_ucache_set
name: key
type: mixed
description:
<p class="para">
       Store the variable using this <code class="parameter">key</code> name. If a variable with same 
       <code class="parameter">key</code> is already present the function will overwrite the previous 
       value with the new one. <code class="parameter">key</code> is case sensitive. 
       <code class="parameter">key</code> can also take array of name =&gt; value pairs where names will be used as 
       keys. This can be used to add multiple values in the cache in one operation, thus avoiding 
       race condition.
      </p>


function_name: xhprof_enable
name: flags
type: int
description:
<p class="para">
       Optional flags to add additional information to the profiling. See the
       <a href="xhprof.constants.html" class="link">XHprof constants</a> for further
       information about these flags, e.g., <strong><code><a href="xhprof.constants.html#constant.xhprof-flags-memory">XHPROF_FLAGS_MEMORY</a></code></strong>
       to enable memory profiling.
      </p>


function_name: xhprof_enable
name: options
type: array
description:
<p class="para">
       An <span class="type">array</span> of optional options, namely, the
       &#039;ignored_functions&#039; option to pass in functions to be ignored
       during profiling.
      </p>


function_name: Yac.add
name: value
type: mixed
description:
<p class="para">
      mixed value, All php value type could be stored except <a href="language.types.resource.html" class="link">resource</a>
     </p>


function_name: Yac.delete
name: ttl
type: int
description:
<p class="para">
      if delay is set, delete will mark the items to be invalid in ttl second.
     </p>


function_name: Yac.get
name: key
type: array
description:
<p class="para">
      <span class="type">string</span> keys, or <span class="type">array</span> of multiple keys.
     </p>


function_name: Yac.get
name: cas
type: int
description:
<p class="para">
      if not <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>, it will be set to the retrieved item&#039;s cas.
     </p>


function_name: openal_buffer_data
name: buffer
type: resource
description:
<p class="para">
      An <a href="openal.resources.html" class="link">Open AL(Buffer)</a> resource
      (previously created by <span class="function">openal_buffer_create</span>).
     </p>


function_name: openal_buffer_data
name: format
type: int
description:
<p class="para">
      Format of <code class="parameter">data</code>, one of: 
      <strong><code><a href="openal.constants.html#constant.al-format-mono8">AL_FORMAT_MONO8</a></code></strong>,
      <strong><code><a href="openal.constants.html#constant.al-format-mono16">AL_FORMAT_MONO16</a></code></strong>,
      <strong><code><a href="openal.constants.html#constant.al-format-stereo8">AL_FORMAT_STEREO8</a></code></strong> and
      <strong><code><a href="openal.constants.html#constant.al-format-stereo16">AL_FORMAT_STEREO16</a></code></strong>
     </p>


function_name: openal_buffer_data
name: data
type: string
description:
<p class="para">
      Block of binary audio data in the <code class="parameter">format</code> and
      <code class="parameter">freq</code> specified.
     </p>


function_name: openal_buffer_get
name: property
type: int
description:
<p class="para">
      Specific property, one of:
      <strong><code><a href="openal.constants.html#constant.al-frequency">AL_FREQUENCY</a></code></strong>,
      <strong><code><a href="openal.constants.html#constant.al-bits">AL_BITS</a></code></strong>,
      <strong><code><a href="openal.constants.html#constant.al-channels">AL_CHANNELS</a></code></strong> and
      <strong><code><a href="openal.constants.html#constant.al-size">AL_SIZE</a></code></strong>.
     </p>


function_name: openal_buffer_loadwav
name: wavfile
type: string
description:
<p class="para">
      Path to <var class="filename">.wav</var> file on
      <em>local</em> file system.
     </p>


function_name: openal_context_create
name: device
type: resource
description:
<p class="para">
      An <a href="openal.resources.html" class="link">Open AL(Device)</a> resource
      (previously created by <span class="function">openal_device_open</span>).
     </p>


function_name: openal_context_current
name: context
type: resource
description:
<p class="para">
      An <a href="openal.resources.html" class="link">Open AL(Context)</a> resource
      (previously created by <span class="function">openal_context_create</span>).
     </p>


function_name: openal_device_close
name: device
type: resource
description:
<p class="para">
      An <a href="openal.resources.html" class="link">Open AL(Device)</a> resource
      (previously created by <span class="function">openal_device_open</span>)
      to be closed.
     </p>


function_name: openal_device_open
name: device_desc
type: string
description:
<p class="para">
      Open an audio device optionally specified by <code class="parameter">device_desc</code>.
      If <code class="parameter">device_desc</code> is not specified the first available audio
      device will be used.  
     </p>


function_name: openal_listener_get
name: property
type: int
description:
<p class="para">
      Property to retrieve, one of:
      <strong><code><a href="openal.constants.html#constant.al-gain">AL_GAIN</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-position">AL_POSITION</a></code></strong> (array(float,float,float)),
      <strong><code><a href="openal.constants.html#constant.al-velocity">AL_VELOCITY</a></code></strong> (array(float,float,float)) and
      <strong><code><a href="openal.constants.html#constant.al-orientation">AL_ORIENTATION</a></code></strong> (array(float,float,float)).
     </p>


function_name: openal_listener_set
name: property
type: int
description:
<p class="para">
      Property to set, one of:
      <strong><code><a href="openal.constants.html#constant.al-gain">AL_GAIN</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-position">AL_POSITION</a></code></strong> (array(float,float,float)),
      <strong><code><a href="openal.constants.html#constant.al-velocity">AL_VELOCITY</a></code></strong> (array(float,float,float)) and
      <strong><code><a href="openal.constants.html#constant.al-orientation">AL_ORIENTATION</a></code></strong> (array(float,float,float)).
     </p>


function_name: openal_source_destroy
name: source
type: resource
description:
<p class="para">
      An <a href="openal.resources.html" class="link">Open AL(Source)</a> resource
      (previously created by <span class="function">openal_source_create</span>).
     </p>


function_name: openal_source_get
name: property
type: int
description:
<p class="para">
      Property to get, one of:
      <strong><code><a href="openal.constants.html#constant.al-source-relative">AL_SOURCE_RELATIVE</a></code></strong> (int),
      <strong><code><a href="openal.constants.html#constant.al-source-state">AL_SOURCE_STATE</a></code></strong> (int),
      <strong><code><a href="openal.constants.html#constant.al-pitch">AL_PITCH</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-gain">AL_GAIN</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-min-gain">AL_MIN_GAIN</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-max-gain">AL_MAX_GAIN</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-max-distance">AL_MAX_DISTANCE</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-rolloff-factor">AL_ROLLOFF_FACTOR</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-cone-outer-gain">AL_CONE_OUTER_GAIN</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-cone-inner-angle">AL_CONE_INNER_ANGLE</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-cone-outer-angle">AL_CONE_OUTER_ANGLE</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-reference-distance">AL_REFERENCE_DISTANCE</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-position">AL_POSITION</a></code></strong> (array(float,float,float)),
      <strong><code><a href="openal.constants.html#constant.al-velocity">AL_VELOCITY</a></code></strong> (array(float,float,float)),
      <strong><code><a href="openal.constants.html#constant.al-direction">AL_DIRECTION</a></code></strong> (array(float,float,float)).
     </p>


function_name: openal_source_set
name: property
type: int
description:
<p class="para">
      Property to set, one of:
      <strong><code><a href="openal.constants.html#constant.al-buffer">AL_BUFFER</a></code></strong> (OpenAL(Source)),
      <strong><code><a href="openal.constants.html#constant.al-looping">AL_LOOPING</a></code></strong> (bool),
      <strong><code><a href="openal.constants.html#constant.al-source-relative">AL_SOURCE_RELATIVE</a></code></strong> (int),
      <strong><code><a href="openal.constants.html#constant.al-source-state">AL_SOURCE_STATE</a></code></strong> (int),
      <strong><code><a href="openal.constants.html#constant.al-pitch">AL_PITCH</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-gain">AL_GAIN</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-min-gain">AL_MIN_GAIN</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-max-gain">AL_MAX_GAIN</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-max-distance">AL_MAX_DISTANCE</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-rolloff-factor">AL_ROLLOFF_FACTOR</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-cone-outer-gain">AL_CONE_OUTER_GAIN</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-cone-inner-angle">AL_CONE_INNER_ANGLE</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-cone-outer-angle">AL_CONE_OUTER_ANGLE</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-reference-distance">AL_REFERENCE_DISTANCE</a></code></strong> (float),
      <strong><code><a href="openal.constants.html#constant.al-position">AL_POSITION</a></code></strong> (array(float,float,float)),
      <strong><code><a href="openal.constants.html#constant.al-velocity">AL_VELOCITY</a></code></strong> (array(float,float,float)),
      <strong><code><a href="openal.constants.html#constant.al-direction">AL_DIRECTION</a></code></strong> (array(float,float,float)).
     </p>


function_name: openal_source_set
name: setting
type: mixed
description:
<p class="para">
      Value to assign to specified <code class="parameter">property</code>.
      Refer to the description of <code class="parameter">property</code>
      for a description of the value(s) expected.
     </p>


function_name: openal_stream
name: format
type: int
description:
<p class="para">
      Format of <code class="parameter">data</code>, one of:
      <strong><code><a href="openal.constants.html#constant.al-format-mono8">AL_FORMAT_MONO8</a></code></strong>,
      <strong><code><a href="openal.constants.html#constant.al-format-mono16">AL_FORMAT_MONO16</a></code></strong>,
      <strong><code><a href="openal.constants.html#constant.al-format-stereo8">AL_FORMAT_STEREO8</a></code></strong> and
      <strong><code><a href="openal.constants.html#constant.al-format-stereo16">AL_FORMAT_STEREO16</a></code></strong>
     </p>


function_name: radius_add_server
name: hostname
type: string
description:
<p class="para">
       The <code class="parameter">hostname</code> parameter specifies the server host,
       either as a fully qualified domain name or as a dotted-quad IP address
       in text form.
      </p>


function_name: radius_add_server
name: port
type: int
description:
<p class="para">
       The <code class="parameter">port</code> specifies the UDP port to contact on
       the server. If port is given as 0, the library looks up the
       <code class="systemitem systemitem">radius/udp</code> or
       <code class="systemitem systemitem">radacct/udp</code> service in the
       network services database, and uses the port found there.  If no entry
       is found, the library uses the standard Radius ports, 1812 for
       authentication and 1813 for accounting. 
      </p>


function_name: radius_add_server
name: secret
type: string
description:
<p class="para">
       The shared secret for the server host is passed to the
       <code class="parameter">secret</code> parameter. The Radius protocol ignores
       all but the leading 128 bytes of the shared secret.
      </p>


function_name: radius_add_server
name: timeout
type: int
description:
<p class="para">
       The timeout for receiving replies from the server is passed to the
       <code class="parameter">timeout</code> parameter, in units of seconds.  
      </p>


function_name: radius_add_server
name: max_tries
type: int
description:
<p class="para">
       The maximum number of repeated requests to make before giving up is
       passed into the <code class="parameter">max_tries</code>.
      </p>


function_name: radius_config
name: file
type: string
description:
<p class="para">
       The pathname of the configuration file is passed as the file argument
       to <span class="function">radius_config</span>. The library can also be
       configured programmatically by calls to
       <span class="function">radius_add_server</span>.
      </p>


function_name: radius_create_request
name: type
type: int
description:
<p class="para">
       Type is <strong><code><a href="radius.constants.packets.html#constant.radius-access-request">RADIUS_ACCESS_REQUEST</a></code></strong> or
       <strong><code><a href="radius.constants.packets.html#constant.radius-accounting-request">RADIUS_ACCOUNTING_REQUEST</a></code></strong>.
      </p>


function_name: radius_put_addr
name: addr
type: string
description:
<p class="para">
       An IPv4 address in string form, such as <code class="literal">10.0.0.1</code>.
      </p>


function_name: radius_put_addr
name: options
type: int
description:
<p class="para">A bitmask of the attribute options. The available options include <a href="radius.constants.options.html#constant.radius-option-tagged" class="link"><strong><code><a href="radius.constants.options.html#constant.radius-option-tagged">RADIUS_OPTION_TAGGED</a></code></strong></a> and <a href="radius.constants.options.html#constant.radius-option-salt" class="link"><strong><code><a href="radius.constants.options.html#constant.radius-option-salt">RADIUS_OPTION_SALT</a></code></strong></a>.</p>


function_name: radius_put_addr
name: tag
type: int
description:
<p class="para">The attribute tag. This parameter is ignored unless the <a href="radius.constants.options.html#constant.radius-option-tagged" class="link"><strong><code><a href="radius.constants.options.html#constant.radius-option-tagged">RADIUS_OPTION_TAGGED</a></code></strong></a> option is set.</p>


function_name: radius_put_attr
name: value
type: string
description:
<p class="para">
       The attribute value, which will be treated as a raw binary string.
      </p>


function_name: radius_put_string
name: value
type: string
description:
<p class="para">
       The attribute value. This value is expected by the underlying library
       to be null terminated, therefore this parameter is not binary safe.
      </p>


function_name: readline_callback_handler_install
name: callback
type: callable
description:
<p class="para">
       The <code class="parameter">callback</code> function takes one parameter; the
       user input returned.
      </p>


function_name: readline_completion_function
name: callback
type: callable
description:
<p class="para">
       You must supply the name of an existing function which accepts a
       partial command line and returns an array of possible matches.
      </p>


function_name: bzclose
name: bz
type: resource
description:
<p class="para">
       The file pointer. It must be valid and must point to a file 
       successfully opened by <span class="function">bzopen</span>.
      </p>


function_name: bzcompress
name: block_size
type: int
initializer: 4
description:
<p class="para">
       Specifies the blocksize used during compression and should be a number 
       from 1 to 9 with 9 giving the best compression, but using more 
       resources to do so.
      </p>


function_name: bzcompress
name: work_factor
type: int
description:
<p class="para">
       Controls how the compression phase behaves when presented with worst
       case, highly repetitive, input data.  The value can be between 0 and
       250 with 0 being a special case. 
      </p>
      <p class="para">
       Regardless of the <code class="parameter">work_factor</code>, the generated 
       output is the same.
      </p>


function_name: bzdecompress
name: use_less_memory
type: bool
description:
<p class="para">
       If <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, an alternative decompression algorithm will be used which
       uses less memory (the maximum memory requirement drops to around 2300K) 
       but works at roughly half the speed.
      </p>
      <p class="para">
       See the <a href="https://www.sourceware.org/bzip2/" class="link external">&raquo;&nbsp;bzip2 documentation</a> for more 
       information about this feature.
      </p>


function_name: bzopen
name: mode
type: string
description:
<p class="para">
       The modes <code class="literal">&#039;r&#039;</code> (read), and <code class="literal">&#039;w&#039;</code> (write) are supported.
       Everything else will cause <span class="function">bzopen</span> to return <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
      </p>


function_name: bzread
name: length
type: int
initializer: 1024
description:
<p class="para">
       If not specified, <span class="function">bzread</span> will read 1024 
       (uncompressed) bytes at a time. A maximum of 8192
       uncompressed bytes will be read at a time.
      </p>


function_name: bzwrite
name: length
type: null
description:
<p class="para">
       If supplied, writing will stop after <code class="parameter">length</code> 
       (uncompressed) bytes have been written or the end of 
       <code class="parameter">data</code> is reached, whichever comes first.
      </p>


function_name: Phar.addFile
name: filename
type: string
description:
<p class="para">
       Full or relative path to a file on disk to be added
       to the phar archive.
      </p>


function_name: Phar.buildFromDirectory
name: directory
type: string
description:
<p class="para">
       The full or relative path to the directory that contains all files
       to add to the archive.
      </p>


function_name: Phar.buildFromDirectory
name: pattern
type: string
initializer: ""
description:
<p class="para">
       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.
      </p>


function_name: Phar.buildFromIterator
name: iterator
type: Traversable
description:
<p class="para">
       Any iterator that either associatively maps phar file to location or
       returns SplFileInfo objects
      </p>


function_name: Phar.buildFromIterator
name: baseDirectory
type: null
description:
<p class="para">
       For iterators that return SplFileInfo objects, the portion of each
       file&#039;s full path to remove when adding to the phar archive
      </p>


function_name: Phar.canCompress
name: compression
type: int
description:
<p class="para">
       Either <code class="literal">Phar::GZ</code> or <code class="literal">Phar::BZ2</code> can be
       used to test whether compression is possible with a specific compression
       algorithm (zlib or bzip2).
      </p>


function_name: Phar.compress
name: compression
type: int
description:
<p class="para">
       Compression must be one of <code class="literal">Phar::GZ</code>,
       <code class="literal">Phar::BZ2</code> to add compression, or <code class="literal">Phar::NONE</code>
       to remove compression.
      </p>


function_name: Phar.compress
name: extension
type: null
description:
<p class="para">
       By default, the extension is <code class="literal">.phar.gz</code>
       or <code class="literal">.phar.bz2</code> for compressing phar archives, and
       <code class="literal">.phar.tar.gz</code> or <code class="literal">.phar.tar.bz2</code> for
       compressing tar archives.  For decompressing, the default file extensions
       are <code class="literal">.phar</code> and <code class="literal">.phar.tar</code>.
      </p>


function_name: Phar.__construct
name: filename
type: string
description:
<p class="para">
       Path to an existing Phar archive or to-be-created archive. The file name&#039;s
       extension must contain .phar.
      </p>


function_name: Phar.__construct
name: flags
type: int
initializer: FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS
description:
<p class="para">
       Flags to pass to parent class <span class="classname">RecursiveDirectoryIterator</span>.
      </p>


function_name: Phar.__construct
name: alias
type: null
description:
<p class="para">
       Alias with which this Phar archive should be referred to in calls to stream
       functionality.
      </p>


function_name: Phar.convertToData
name: format
type: null
description:
<p class="para">
       This should be one of <code class="literal">Phar::TAR</code>
       or <code class="literal">Phar::ZIP</code>.  If set to <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>, the existing file format
       will be preserved.
      </p>


function_name: Phar.convertToData
name: compression
type: null
description:
<p class="para">
       This should be one of <code class="literal">Phar::NONE</code> for no whole-archive
       compression, <code class="literal">Phar::GZ</code> for zlib-based compression, and
       <code class="literal">Phar::BZ2</code> for bzip-based compression.
      </p>


function_name: Phar.convertToData
name: extension
type: null
description:
<p class="para">
       This parameter is used to override the default file extension for a
       converted archive.  Note that <code class="literal">.phar</code> cannot be used
       anywhere in the filename for a non-executable tar or zip archive.
      </p>
      <p class="para">
       If converting to a tar-based phar archive, the
       default extensions are <code class="literal">.tar</code>, <code class="literal">.tar.gz</code>,
       and <code class="literal">.tar.bz2</code> depending on specified compression.
       For zip-based archives, the
       default extension is <code class="literal">.zip</code>.
      </p>


function_name: Phar.convertToExecutable
name: format
type: null
description:
<p class="para">
       This should be one of <code class="literal">Phar::PHAR</code>, <code class="literal">Phar::TAR</code>,
       or <code class="literal">Phar::ZIP</code>.  If set to <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>, the existing file format
       will be preserved.
      </p>


function_name: Phar.convertToExecutable
name: extension
type: null
description:
<p class="para">
       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
       <code class="literal">.phar</code> in their file extension in order to be processed as a
       phar archive.
      </p>
      <p class="para">
       If converting to a phar-based archive, the default extensions are
       <code class="literal">.phar</code>, <code class="literal">.phar.gz</code>, or <code class="literal">.phar.bz2</code>
       depending on the specified compression.  For tar-based phar archives, the
       default extensions are <code class="literal">.phar.tar</code>, <code class="literal">.phar.tar.gz</code>,
       and <code class="literal">.phar.tar.bz2</code>.  For zip-based phar archives, the
       default extension is <code class="literal">.phar.zip</code>.
      </p>


function_name: Phar.count
name: mode
type: int
description:
<p class="para">
      <code class="parameter">mode</code> is an integer value specifying the counting mode to be used.
      By default, it is set to <strong><code><a href="array.constants.html#constant.count-normal">COUNT_NORMAL</a></code></strong>,
      which counts only the number of items in the archive that have not been deleted or hidden.
      When set to <strong><code><a href="array.constants.html#constant.count-recursive">COUNT_RECURSIVE</a></code></strong>, it counts all items in the archive,
      including those that have been deleted or hidden.
     </p>


function_name: Phar.createDefaultStub
name: index
type: null
description:
<p class="para">
       Relative path within the phar archive to run if accessed on the command-line
      </p>


function_name: Phar.createDefaultStub
name: webIndex
type: null
description:
<p class="para">
       Relative path within the phar archive to run if accessed through a web browser
      </p>


function_name: Phar.decompress
name: extension
type: null
description:
<p class="para">
       For decompressing, the default file extensions
       are <code class="literal">.phar</code> and <code class="literal">.phar.tar</code>.
       Use this parameter to specify another file extension.  Be aware
       that all executable phar archives must contain <code class="literal">.phar</code>
       in their filename.
      </p>


function_name: Phar.extractTo
name: directory
type: string
description:
<p class="para">
       Path to extract the given <code class="parameter">files</code> to
      </p>


function_name: Phar.extractTo
name: files
type: null
description:
<p class="para">
       The name of a file or directory to extract, or an array of files/directories to extract,
       <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong> to skip this param
      </p>


function_name: Phar.extractTo
name: overwrite
type: bool
description:
<p class="para">
       Set to <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> to enable overwriting existing files
      </p>


function_name: Phar.isFileFormat
name: format
type: int
description:
<p class="para">
       Either <code class="literal">Phar::PHAR</code>, <code class="literal">Phar::TAR</code>, or
       <code class="literal">Phar::ZIP</code> to test for the format of the archive.
      </p>


function_name: Phar.isValidPharFilename
name: executable
type: bool
description:
<p class="para">
       This parameter determines whether the filename should be treated as
       a phar executable archive, or a data non-executable archive
      </p>


function_name: Phar.loadPhar
name: alias
type: null
description:
<p class="para">
       The alias that may be used to refer to the phar archive.  Note
       that many phar archives specify an explicit alias inside the
       phar archive, and a <span class="classname">PharException</span> will be thrown if
       a new alias is specified in this case.
      </p>


function_name: Phar.mapPhar
name: alias
type: null
description:
<p class="para">
       The alias that can be used in <code class="literal">phar://</code> URLs to
       refer to this archive, rather than its full path.
      </p>


function_name: Phar.mapPhar
name: offset
type: int
description:
<p class="para">
       Unused variable, here for compatibility with PEAR&#039;s PHP_Archive.
      </p>


function_name: Phar.mount
name: pharPath
type: string
description:
<p class="para">
       The internal path within the phar archive to use as the mounted path location.
       This must be a relative path within the phar archive, and must not already exist.
      </p>


function_name: Phar.mount
name: externalPath
type: string
description:
<p class="para">
       A path or URL to an external file or directory to mount within the phar archive
      </p>


function_name: Phar.mungServer
name: variables
type: array
description:
<p class="para">
       An array of any of the strings
       <code class="literal">REQUEST_URI</code>, <code class="literal">PHP_SELF</code>,
       <code class="literal">SCRIPT_NAME</code> and <code class="literal">SCRIPT_FILENAME</code>.
       Other values trigger an exception, and <span class="function">Phar::mungServer</span>
       is case-sensitive.
      </p>


function_name: Phar.running
name: returnPhar
type: bool
description:
<p class="para">
       If <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>, the full path on disk to the phar
       archive is returned.  If <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, a full phar URL is returned.
      </p>


function_name: Phar.setAlias
name: alias
type: string
description:
<p class="para">
       A shorthand string that this archive can be referred to in <code class="literal">phar</code>
       stream wrapper access.
      </p>


function_name: Phar.setMetadata
name: metadata
type: mixed
description:
<p class="para">
       Any PHP variable containing information to store that describes the phar archive
      </p>


function_name: Phar.setSignatureAlgorithm
name: algo
type: int
description:
<p class="para">
       One of <code class="literal">Phar::MD5</code>,
   <code class="literal">Phar::SHA1</code>, <code class="literal">Phar::SHA256</code>,
   <code class="literal">Phar::SHA512</code>, or <code class="literal">Phar::OPENSSL</code>
      </p>


function_name: Phar.setSignatureAlgorithm
name: privateKey
type: null
description:
<p class="para">
       The contents of an OpenSSL private key, as extracted from a certificate or
       OpenSSL key file:
       <div class="example-contents">
        <div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$private </span><span style="color: #007700">= </span><span style="color: #0000BB">openssl_get_privatekey</span><span style="color: #007700">(</span><span style="color: #0000BB">file_get_contents</span><span style="color: #007700">(</span><span style="color: #DD0000">'private.pem'</span><span style="color: #007700">));<br /></span><span style="color: #0000BB">$pkey </span><span style="color: #007700">= </span><span style="color: #DD0000">''</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">openssl_pkey_export</span><span style="color: #007700">(</span><span style="color: #0000BB">$private</span><span style="color: #007700">, </span><span style="color: #0000BB">$pkey</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$p</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">setSignatureAlgorithm</span><span style="color: #007700">(</span><span style="color: #0000BB">Phar</span><span style="color: #007700">::</span><span style="color: #0000BB">OPENSSL</span><span style="color: #007700">, </span><span style="color: #0000BB">$pkey</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
       </div>

       See <a href="phar.using.html" class="link">phar introduction</a> for instructions on
       naming and placement of the public key file.
      </p>


function_name: Phar.setStub
name: stub
type: string
description:
<p class="para">
       A string or an open stream handle to use as the executable stub for this
       phar archive.
      </p>


function_name: Phar.webPhar
name: fileNotFoundScript
type: null
description:
<p class="para">
       The location of the script to run when a file is not found.  This
       script should output the proper HTTP 404 headers.
      </p>


function_name: Phar.webPhar
name: mimeTypes
type: array
initializer: []
description:
<p class="para">
       An array mapping additional file extensions to MIME type.
       If the default mapping is sufficient, pass an empty array.
       By default, these extensions are mapped to these MIME types:
       <div class="example-contents">
        <div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$mimes </span><span style="color: #007700">= array(<br />    </span><span style="color: #DD0000">'phps' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">Phar</span><span style="color: #007700">::</span><span style="color: #0000BB">PHPS</span><span style="color: #007700">, </span><span style="color: #FF8000">// pass to highlight_file()<br />    </span><span style="color: #DD0000">'c' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'text/plain'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'cc' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'text/plain'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'cpp' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'text/plain'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'c++' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'text/plain'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'dtd' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'text/plain'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'h' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'text/plain'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'log' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'text/plain'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'rng' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'text/plain'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'txt' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'text/plain'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'xsd' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'text/plain'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'php' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">Phar</span><span style="color: #007700">::</span><span style="color: #0000BB">PHP</span><span style="color: #007700">, </span><span style="color: #FF8000">// parse as PHP<br />    </span><span style="color: #DD0000">'inc' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">Phar</span><span style="color: #007700">::</span><span style="color: #0000BB">PHP</span><span style="color: #007700">, </span><span style="color: #FF8000">// parse as PHP<br />    </span><span style="color: #DD0000">'avi' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'video/avi'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'bmp' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'image/bmp'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'css' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'text/css'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'gif' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'image/gif'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'htm' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'text/html'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'html' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'text/html'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'htmls' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'text/html'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'ico' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'image/x-ico'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'jpe' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'image/jpeg'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'jpg' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'image/jpeg'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'jpeg' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'image/jpeg'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'js' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'application/x-javascript'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'midi' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'audio/midi'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'mid' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'audio/midi'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'mod' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'audio/mod'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'mov' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'movie/quicktime'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'mp3' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'audio/mp3'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'mpg' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'video/mpeg'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'mpeg' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'video/mpeg'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'pdf' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'application/pdf'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'png' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'image/png'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'swf' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'application/shockwave-flash'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'tif' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'image/tiff'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'tiff' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'image/tiff'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'wav' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'audio/wav'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'xbm' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'image/xbm'</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'xml' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'text/xml'</span><span style="color: #007700">,<br />);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
       </div>

      </p>


function_name: Phar.webPhar
name: rewrite
type: null
description:
<p class="para">
       The rewrites function is passed a string as its only parameter and must return a <span class="type">string</span> or <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
      </p>
      <p class="para">
       If you are using fast-cgi or cgi then the parameter passed to the function is the value of the 
       <var class="varname">$_SERVER[&#039;PATH_INFO&#039;]</var> variable. Otherwise, the parameter passed to the function is the value
       of the <var class="varname">$_SERVER[&#039;REQUEST_URI&#039;]</var> variable.
      </p>
      <p class="para">
       If a string is returned it is used as the internal file path. If <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> is returned then webPhar() will
       send a HTTP 403 Denied Code.
      </p>


function_name: PharData.buildFromIterator
name: iterator
type: Traversable
description:
<p class="para">
       Any iterator that either associatively maps tar/zip file to location or
       returns SplFileInfo objects
      </p>


function_name: PharData.buildFromIterator
name: baseDirectory
type: null
description:
<p class="para">
       For iterators that return SplFileInfo objects, the portion of each
       file&#039;s full path to remove when adding to the tar/zip archive
      </p>


function_name: PharData.compress
name: extension
type: null
description:
<p class="para">
       By default, the extension is <code class="literal">.tar.gz</code> or <code class="literal">.tar.bz2</code>
       for compressing a tar, and <code class="literal">.tar</code> for decompressing.
      </p>


function_name: PharData.__construct
name: flags
type: int
initializer: FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS
description:
<p class="para">
       Flags to pass to <span class="classname">Phar</span> parent class
       <span class="classname">RecursiveDirectoryIterator</span>.
      </p>


function_name: PharData.__construct
name: format
type: int
description:
<p class="para">
       One of the
       <a href="phar.constants.html#phar.constants.fileformat" class="link">file format constants</a>
       available within the <span class="classname">Phar</span> class.
      </p>


function_name: PharData.decompress
name: extension
type: null
description:
<p class="para">
       For decompressing, the default file extension
       is <code class="literal">.tar</code>.
       Use this parameter to specify another file extension. Be aware that only
       executable archives can contain <code class="literal">.phar</code> in their filename.
      </p>


function_name: PharData.extractTo
name: files
type: null
description:
<p class="para">
       The name of a file or directory to extract, or an array of files/directories to extract
      </p>


function_name: PharData.setAlias
name: alias
type: string
description:
<p class="para">
       A shorthand string that this archive can be referred to in <code class="literal">phar</code>
       stream wrapper access.  This parameter is ignored.
      </p>


function_name: PharData.setStub
name: stub
type: string
description:
<p class="para">
       A string or an open stream handle to use as the executable stub for this
       phar archive.  This parameter is ignored.
      </p>


function_name: PharFileInfo.compress
name: compression
type: int
description:
<p class="para">
       Compression must be <strong><code><a href="phar.constants.html#phar.constants.gz">Phar::GZ</a></code></strong> or <strong><code><a href="phar.constants.html#phar.constants.bz2">Phar::BZ2</a></code></strong>.
      </p>


function_name: PharFileInfo.__construct
name: filename
type: string
description:
<p class="para">
       The full url to retrieve a file.  If you wish to retrieve the information
       for the file <code class="literal">my/file.php</code> from the phar <code class="literal">boo.phar</code>,
       the entry should be <code class="literal">phar://boo.phar/my/file.php</code>.
      </p>


function_name: PharFileInfo.isCompressed
name: compression
type: null
description:
<p class="para">
       One of <strong><code><a href="phar.constants.html#phar.constants.gz">Phar::GZ</a></code></strong> or <strong><code><a href="phar.constants.html#phar.constants.bz2">Phar::BZ2</a></code></strong>,
       defaults to any compression.
      </p>


function_name: PharFileInfo.setMetadata
name: metadata
type: mixed
description:
<p class="para">
       Any PHP variable containing information to store alongside a file
      </p>


function_name: RarArchive.close
name: rarfile
type: RarArchive
description:
<p class="para">
       A <span class="type">RarArchive</span> object, opened with <span class="function">rar_open</span>.
      </p>


function_name: RarArchive.getEntry
name: entryname
type: string
description:
<p class="para">
       Path to the entry within the RAR archive.
      </p>
      <blockquote class="note"><p><strong class="note">Note</strong>: 
        <p class="para">The path must be the same returned by
         <span class="methodname">RarEntry::getName</span>.</p>
     </p></blockquote>


function_name: RarArchive.open
name: password
type: string
initializer: NULL
description:
<p class="para">
       A plain password, if needed to decrypt the headers. It will also be used by default
       if encrypted files are found. Note that the files may have
       different passwords in respect to the headers and among them.
      </p>


function_name: RarArchive.open
name: volume_callback
type: callable
initializer: NULL
description:
<p class="para">
       A function that receives one parameter – the path of the volume
       that was not found – and returns a string with the correct path
       for such volume or <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong> if such volume does
       not exist or is not known. The programmer should ensure the
       passed function doesn&#039;t cause loops as this function is called
       repeatedly if the path returned in a previous call did not
       correspond to the needed volume. Specifying this parameter omits
       the notice that would otherwise be emitted whenever a volume is
       not found; an implementation that only returns <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>
       can therefore be used to merely omit such notices.
      </p>


function_name: RarArchive.setAllowBroken
name: allow_broken
type: bool
description:
<p class="para">
       Whether to allow reading broken files (<strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>) or not (<strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>).
      </p>


function_name: RarEntry.extract
name: dir
type: string
description:
<p class="para">
       Path to the directory where files should be extracted. This parameter is
       considered if and only if <code class="parameter">filepath</code> is not. If both
       parameters are empty an extraction to the current directory will be
       attempted.
      </p>


function_name: RarEntry.extract
name: filepath
type: string
initializer: ""
description:
<p class="para">
       Path (relative or absolute) containing the directory and filename of the
       extracted file. This parameter overrides both the parameter
       <code class="parameter">dir</code> and the original file name.
      </p>


function_name: RarEntry.extract
name: password
type: string
initializer: NULL
description:
<p class="para">
       The password used to encrypt this entry. If the entry is not encrypted, this value will not be used and can
       be omitted. If this parameter is omitted and the entry is encrypted, the password given to
       <span class="function">rar_open</span>, if any, will be used. If a wrong password is given, either explicitly
       or implicitly via <span class="function">rar_open</span>, CRC checking will fail and this method will fail and return <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
       If no password is given and one is required, this method will fail and return <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
       You can check whether an entry is encrypted with  <span class="methodname">RarEntry::isEncrypted</span>.
      </p>


function_name: RarEntry.extract
name: extended_data
type: bool
description:
<p class="para">
       If <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, extended information such as NTFS ACLs and Unix owner information will be set in the extract
       files, as long as it&#039;s present in the archive.
     </p>


function_name: RarEntry.getStream
name: password
type: string
description:
<p class="para">
       The password used to encrypt this entry. If the entry is not encrypted, this value will not be used and can
       be omitted. If this parameter is omitted and the entry is encrypted, the password given to
       <span class="function">rar_open</span>, if any, will be used. If a wrong password is given, either explicitly
       or implicitly via <span class="function">rar_open</span>, this method&#039;s resulting stream will produce wrong
       output. If no password is given and one is required, this method will fail and return <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
       You can check whether an entry is encrypted with  <span class="methodname">RarEntry::isEncrypted</span>.
      </p>


function_name: RarException.setUsingExceptions
name: using_exceptions
type: bool
description:
<p class="para">
       Should be <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> to activate exception throwing, <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> to deactivate (the default).
      </p>


function_name: ZipArchive.addEmptyDir
name: flags
type: int
description:
<p class="para">
       Bitmask consisting of
       <strong><code><a href="zip.constants.html#ziparchive.constants.fl-enc-guess">ZipArchive::FL_ENC_GUESS</a></code></strong>,
       <strong><code><a href="zip.constants.html#ziparchive.constants.fl-enc-utf-8">ZipArchive::FL_ENC_UTF_8</a></code></strong>,
       <strong><code><a href="zip.constants.html#ziparchive.constants.fl-enc-cp437">ZipArchive::FL_ENC_CP437</a></code></strong>.
       The behaviour of these constants is described on the
       <a href="zip.constants.html" class="link">ZIP constants</a> page.
      </p>


function_name: ZipArchive.addFile
name: entryname
type: string
initializer: ""
description:
<p class="para">
       If supplied and not empty, this is the local name inside the ZIP archive that will override the <code class="parameter">filepath</code>.
      </p>


function_name: ZipArchive.addFile
name: length
type: int
initializer: ZipArchive::LENGTH_TO_END
description:
<p class="para">
       For partial copy, length to be copied,
       if <strong><code><a href="zip.constants.html#ziparchive.constants.length-to-end">ZipArchive::LENGTH_TO_END</a></code></strong> (0) the file size is used,
       if <strong><code><a href="zip.constants.html#ziparchive.constants.length-unchecked">ZipArchive::LENGTH_UNCHECKED</a></code></strong> the whole file is used
       (starting from <code class="parameter">start</code>).
      </p>


function_name: ZipArchive.addFile
name: flags
type: int
initializer: ZipArchive::FL_OVERWRITE
description:
<p class="para">
       Bitmask consisting of
       <strong><code><a href="zip.constants.html#ziparchive.constants.fl-overwrite">ZipArchive::FL_OVERWRITE</a></code></strong>,
       <strong><code><a href="zip.constants.html#ziparchive.constants.fl-enc-guess">ZipArchive::FL_ENC_GUESS</a></code></strong>,
       <strong><code><a href="zip.constants.html#ziparchive.constants.fl-enc-utf-8">ZipArchive::FL_ENC_UTF_8</a></code></strong>,
       <strong><code><a href="zip.constants.html#ziparchive.constants.fl-enc-cp437">ZipArchive::FL_ENC_CP437</a></code></strong>,
       <strong><code><a href="zip.constants.html#ziparchive.constants.fl-open-file-now">ZipArchive::FL_OPEN_FILE_NOW</a></code></strong>.
       The behaviour of these constants is described on the
       <a href="zip.constants.html" class="link">ZIP constants</a> page.
      </p>


function_name: ZipArchive.addFromString
name: content
type: string
description:
<p class="para">
       The contents to use to create the entry. It is used in a binary
       safe mode.
      </p>


function_name: ZipArchive.addFromString
name: flags
type: int
initializer: ZipArchive::FL_OVERWRITE
description:
<p class="para">
       Bitmask consisting of
       <strong><code><a href="zip.constants.html#ziparchive.constants.fl-overwrite">ZipArchive::FL_OVERWRITE</a></code></strong>,
       <strong><code><a href="zip.constants.html#ziparchive.constants.fl-enc-guess">ZipArchive::FL_ENC_GUESS</a></code></strong>,
       <strong><code><a href="zip.constants.html#ziparchive.constants.fl-enc-utf-8">ZipArchive::FL_ENC_UTF_8</a></code></strong>,
       <strong><code><a href="zip.constants.html#ziparchive.constants.fl-enc-cp437">ZipArchive::FL_ENC_CP437</a></code></strong>.
       The behaviour of these constants is described on the
       <a href="zip.constants.html" class="link">ZIP constants</a> page.
      </p>


function_name: ZipArchive.addGlob
name: pattern
type: string
description:
<p class="para">
      A <span class="function">glob</span> pattern against which files will be matched.
     </p>


function_name: ZipArchive.addGlob
name: options
type: array
initializer: []
description:
<p class="para">
         <code class="literal">&quot;enc_password&quot;</code>
        </p>
        <p class="para">
         Password used for encryption.
        </p>


function_name: ZipArchive.addPattern
name: pattern
type: string
description:
<p class="para">
      A <a href="book.pcre.html" class="link">PCRE</a> pattern against which files will be matched.
     </p>


function_name: ZipArchive.addPattern
name: path
type: string
initializer: "."
description:
<p class="para">
      The directory that will be scanned. Defaults to the current working directory.
     </p>


function_name: ZipArchive.addPattern
name: options
type: array
initializer: []
description:
<p class="para">
      An associative array of options accepted by  <span class="methodname">ZipArchive::addGlob</span>.
     </p>


function_name: ZipArchive.extractTo
name: files
type: null
description:
<p class="para">
       The entries to extract. It accepts either a single entry name or
       an array of names.
      </p>


function_name: ZipArchive.getArchiveComment
name: flags
type: int
description:
<p class="para">
       If flags is set to <strong><code><a href="zip.constants.html#ziparchive.constants.fl-unchanged">ZipArchive::FL_UNCHANGED</a></code></strong>, the original unchanged
       comment is returned.
      </p>


function_name: ZipArchive.getArchiveFlag
name: flag
type: int
description:
<p class="para">
          <strong><code><a href="zip.constants.html#ziparchive.constants.afl-create-or-keep-file-for-empty-archive">ZipArchive::AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE</a></code></strong>
         </p>


function_name: ZipArchive.getArchiveFlag
name: flags
type: int
description:
<p class="para">
       If <code class="parameter">flag</code>s is set to <strong><code><a href="zip.constants.html#ziparchive.constants.fl-unchanged">ZipArchive::FL_UNCHANGED</a></code></strong>,
       the original unchanged flag is returned.
      </p>


function_name: ZipArchive.getExternalAttributesIndex
name: opsys
type: int
description:
<p class="para">
       On success, receive the operating system code defined by one of the ZipArchive::OPSYS_ constants.
      </p>


function_name: ZipArchive.getExternalAttributesIndex
name: attr
type: int
description:
<p class="para">
       On success, receive the external attributes. Value depends on operating system.
      </p>


function_name: ZipArchive.getExternalAttributesIndex
name: flags
type: int
description:
<p class="para">
       If flags is set to <strong><code><a href="zip.constants.html#ziparchive.constants.fl-unchanged">ZipArchive::FL_UNCHANGED</a></code></strong>, the original unchanged
       attributes are returned.
      </p>


function_name: ZipArchive.getFromIndex
name: len
type: int
description:
<p class="para">
       The length to be read from the entry. If <code class="literal">0</code>, then the
       entire entry is read.
      </p>


function_name: ZipArchive.getFromIndex
name: flags
type: int
description:
<p class="para">
          <strong><code><a href="zip.constants.html#ziparchive.constants.fl-compressed">ZipArchive::FL_COMPRESSED</a></code></strong>
         </p>


function_name: ZipArchive.getFromName
name: flags
type: int
description:
<p class="para">
          <strong><code><a href="zip.constants.html#ziparchive.constants.fl-nocase">ZipArchive::FL_NOCASE</a></code></strong>
         </p>


function_name: ZipArchive.getNameIndex
name: flags
type: int
description:
<p class="para">
       If flags is set to <strong><code><a href="zip.constants.html#ziparchive.constants.fl-unchanged">ZipArchive::FL_UNCHANGED</a></code></strong>, the original unchanged
       name is returned.
      </p>


function_name: ZipArchive.getStreamIndex
name: flags
type: int
description:
<p class="para">
       If flags is set to <strong><code><a href="zip.constants.html#ziparchive.constants.fl-unchanged">ZipArchive::FL_UNCHANGED</a></code></strong>, the original unchanged
       stream is returned.
      </p>


function_name: ZipArchive.isCompressionMethodSupported
name: method
type: int
description:
<p class="para">
       The compression method, one of the
       <strong><code>ZipArchive::CM_*</code></strong> constants.
      </p>


function_name: ZipArchive.isCompressionMethodSupported
name: enc
type: bool
description:
<p class="para">
       If <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> check for compression, else check for decompression.
      </p>


function_name: ZipArchive.isEncryptionMethodSupported
name: method
type: int
description:
<p class="para">
       The encryption method, one of the
       <strong><code>ZipArchive::EM_*</code></strong> constants.
      </p>


function_name: ZipArchive.isEncryptionMethodSupported
name: enc
type: bool
description:
<p class="para">
       If <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> check for encryption, else check for decryption.
      </p>


function_name: ZipArchive.locateName
name: flags
type: int
description:
<p class="para">
          <strong><code><a href="zip.constants.html#ziparchive.constants.fl-nodir">ZipArchive::FL_NODIR</a></code></strong>
         </p>


function_name: ZipArchive.open
name: flags
type: int
description:
<p class="para">
          <strong><code><a href="zip.constants.html#ziparchive.constants.checkcons">ZipArchive::CHECKCONS</a></code></strong>
         </p>


function_name: ZipArchive.registerCancelCallback
name: callback
type: callable
description:
<p class="para">
       If this function return 0 operation will continue, other value it will be cancelled.
      </p>


function_name: ZipArchive.registerProgressCallback
name: callback
type: callable
description:
<p class="para">
       This function will receive the current <code class="parameter">state</code> as a <span class="type">float</span> (from 0.0 to 1.0).
      </p>


function_name: ZipArchive.replaceFile
name: flags
type: int
description:
<p class="para">
       Bitmask consisting of
       <strong><code><a href="zip.constants.html#ziparchive.constants.fl-enc-guess">ZipArchive::FL_ENC_GUESS</a></code></strong>,
       <strong><code><a href="zip.constants.html#ziparchive.constants.fl-enc-utf-8">ZipArchive::FL_ENC_UTF_8</a></code></strong>,
       <strong><code><a href="zip.constants.html#ziparchive.constants.fl-enc-cp437">ZipArchive::FL_ENC_CP437</a></code></strong>,
       <strong><code><a href="zip.constants.html#ziparchive.constants.fl-open-file-now">ZipArchive::FL_OPEN_FILE_NOW</a></code></strong>.
       The behaviour of these constants is described on the
       <a href="zip.constants.html" class="link">ZIP constants</a> page.
      </p>


function_name: ZipArchive.setEncryptionIndex
name: method
type: int
description:
<p class="para">
       The encryption method defined by one of the ZipArchive::EM_ constants.
      </p>


function_name: ZipArchive.setExternalAttributesIndex
name: opsys
type: int
description:
<p class="para">
       The operating system code defined by one of the ZipArchive::OPSYS_ constants.
      </p>


function_name: ZipArchive.statIndex
name: flags
type: int
description:
<p class="para">
       <strong><code><a href="zip.constants.html#ziparchive.constants.fl-unchanged">ZipArchive::FL_UNCHANGED</a></code></strong> may be ORed to it to request
       information  about  the  original  file  in  the archive,
       ignoring any changes made.
      </p>


function_name: ZipArchive.statName
name: flags
type: int
description:
<p class="para">
          <strong><code><a href="zip.constants.html#ziparchive.constants.fl-unchanged">ZipArchive::FL_UNCHANGED</a></code></strong>
         </p>


function_name: zip_close
name: zip
type: resource
description:
<p class="para">
       A ZIP file previously opened with <span class="function">zip_open</span>.
      </p>


function_name: zip_entry_close
name: zip_entry
type: resource
description:
<p class="para">
       A directory entry previously opened <span class="function">zip_entry_open</span>.
      </p>


function_name: zip_entry_compressedsize
name: zip_entry
type: resource
description:
<p class="para">
       A directory entry returned by <span class="function">zip_read</span>.
      </p>


function_name: zip_entry_open
name: zip_dp
type: resource
description:
<p class="para">
       A valid resource handle returned by <span class="function">zip_open</span>.
      </p>


function_name: zip_entry_open
name: mode
type: string
initializer: "rb"
description:
<p class="para">
       Any of the modes specified in the documentation of
       <span class="function">fopen</span>.
      </p>
      <blockquote class="note"><p><strong class="note">Note</strong>: 
       <p class="para">
        Currently, <code class="parameter">mode</code> is ignored and is always
        <code class="literal">&quot;rb&quot;</code>. This is due to the fact that zip support
        in PHP is read only access.
       </p>
      </p></blockquote>


function_name: zip_entry_read
name: len
type: int
initializer: 1024
description:
<p class="para">
       The number of bytes to return.
      </p>
      <blockquote class="note"><p><strong class="note">Note</strong>: 
       <p class="para">
        This should be the uncompressed length you wish to read.
       </p>
      </p></blockquote>


function_name: deflate_add
name: flush_mode
type: int
description:
<p class="para">
      One of <strong><code><a href="zlib.constants.html#constant.zlib-block">ZLIB_BLOCK</a></code></strong>,
      <strong><code><a href="zlib.constants.html#constant.zlib-no-flush">ZLIB_NO_FLUSH</a></code></strong>,
      <strong><code><a href="zlib.constants.html#constant.zlib-partial-flush">ZLIB_PARTIAL_FLUSH</a></code></strong>,
      <strong><code><a href="zlib.constants.html#constant.zlib-sync-flush">ZLIB_SYNC_FLUSH</a></code></strong> (default),
      <strong><code><a href="zlib.constants.html#constant.zlib-full-flush">ZLIB_FULL_FLUSH</a></code></strong>, <strong><code><a href="zlib.constants.html#constant.zlib-finish">ZLIB_FINISH</a></code></strong>.
      Normally you will want to set <strong><code><a href="zlib.constants.html#constant.zlib-no-flush">ZLIB_NO_FLUSH</a></code></strong> to
      maximize compression, and <strong><code><a href="zlib.constants.html#constant.zlib-finish">ZLIB_FINISH</a></code></strong> to terminate
      with the last chunk of data. See the <a href="http://www.zlib.net/manual.html" class="link external">&raquo;&nbsp;zlib manual</a> for a
      detailed description of these constants.
     </p>


function_name: deflate_init
name: encoding
type: int
description:
<p class="para">
      One of the <strong><code>ZLIB_ENCODING_*</code></strong> constants.
     </p>


function_name: deflate_init
name: options
type: array
initializer: []
description:
<p class="para">
          A <span class="type">string</span> or an <span class="type">array</span> of <span class="type">strings</span>
          of the preset dictionary (default: no preset dictionary).
         </p>


function_name: gzclose
name: stream
type: resource
description:
<p class="para">
       The gz-file pointer. It must be valid, and must point to a file
       successfully opened by <span class="function">gzopen</span>.
      </p>


function_name: gzcompress
name: level
type: int
initializer: -1
description:
<p class="para">
       The level of compression. Can be given as 0 for no compression up to 9
       for maximum compression.
      </p>
      <p class="para">
       If -1 is used, the default compression of the zlib library is used which is 6.
      </p>


function_name: gzdecode
name: data
type: string
description:
<p class="para">
       The data to decode, encoded by <span class="function">gzencode</span>.
      </p>


function_name: gzdeflate
name: level
type: int
initializer: -1
description:
<p class="para">
       The level of compression. Can be given as 0 for no compression up to 9
       for maximum compression. If not given, the default compression level will
       be the default compression level of the zlib library.
      </p>


function_name: gzencode
name: encoding
type: int
description:
<p class="para">
       The encoding mode. Can be <strong><code><a href="zlib.constants.html#constant.force-gzip">FORCE_GZIP</a></code></strong> (the default)
       or <strong><code><a href="zlib.constants.html#constant.force-deflate">FORCE_DEFLATE</a></code></strong>. 
      </p>
      <p class="para">
       <strong><code><a href="zlib.constants.html#constant.force-deflate">FORCE_DEFLATE</a></code></strong> generates
       RFC 1950 compliant output, consisting of a zlib header, the deflated
       data, and an Adler checksum.
      </p>


function_name: gzfile
name: use_include_path
type: int
description:
<p class="para">
       You can set this optional parameter to <code class="literal">1</code>, if you
       want to search for the file in the <a href="ini.core.html#ini.include-path" class="link">include_path</a> too.
      </p>


function_name: gzgetss
name: allowable_tags
type: string
description:
<p class="para">
       You can use this optional parameter to specify tags which should not 
       be stripped.
      </p>


function_name: gzopen
name: mode
type: string
description:
<p class="para">
       As in <span class="function">fopen</span> (<code class="literal">rb</code> or 
       <code class="literal">wb</code>) but can also include a compression level 
       (<code class="literal">wb9</code>) or a strategy: <code class="literal">f</code> for
       filtered data as in <code class="literal">wb6f</code>, <code class="literal">h</code> for
       <code class="literal">Huffman only compression</code> as in <code class="literal">wb1h</code>.
       (See the description of <code class="literal">deflateInit2</code>
       in <var class="filename">zlib.h</var> for 
       more information about the strategy parameter.)
      </p>


function_name: gzseek
name: whence
type: int
description:
<p class="para">
       <code class="parameter">whence</code> values are:
       <ul class="simplelist">
        <li><strong><code><a href="filesystem.constants.html#constant.seek-set">SEEK_SET</a></code></strong> - Set position equal to <code class="parameter">offset</code> bytes.</li>
        <li><strong><code><a href="filesystem.constants.html#constant.seek-cur">SEEK_CUR</a></code></strong> - Set position to current location plus <code class="parameter">offset</code>.</li>
       </ul>
      </p>
      <p class="para">
       If <code class="parameter">whence</code> is not specified, it is assumed to be
       <strong><code><a href="filesystem.constants.html#constant.seek-set">SEEK_SET</a></code></strong>.
      </p>


function_name: gzwrite
name: length
type: null
description:
<p class="para">
       The number of uncompressed bytes to write. If supplied, writing will 
       stop after <code class="parameter">length</code> (uncompressed) bytes have been
       written or the end of <code class="parameter">data</code> is reached,
       whichever comes first.
      </p>


function_name: readgzfile
name: filename
type: string
description:
<p class="para">
       The file name. This file will be opened from the filesystem and its
       contents written to standard output.
      </p>


function_name: zlib_encode
name: encoding
type: int
description:
<p class="para">
      The compression algorithm. Either <strong><code><a href="zlib.constants.html#constant.zlib-encoding-raw">ZLIB_ENCODING_RAW</a></code></strong>,
      <strong><code><a href="zlib.constants.html#constant.zlib-encoding-deflate">ZLIB_ENCODING_DEFLATE</a></code></strong> or
      <strong><code><a href="zlib.constants.html#constant.zlib-encoding-gzip">ZLIB_ENCODING_GZIP</a></code></strong>.
     </p>


function_name: hash_copy
name: context
type: HashContext
description:
<p class="para">
       Hashing context returned by <span class="function">hash_init</span>.
      </p>


function_name: hash_equals
name: known_string
type: string
description:
<p class="para">
       The known <span class="type">string</span> that must be kept secret.
     </p>


function_name: hash_equals
name: user_string
type: string
description:
<p class="para">
      The user-supplied <span class="type">string</span> to compare against.
     </p>


function_name: hash_file
name: algo
type: string
description:
<p class="para">
       Name of selected hashing algorithm (i.e. &quot;md5&quot;, &quot;sha256&quot;, &quot;haval160,4&quot;, etc..). For a list of supported algorithms see <span class="function">hash_algos</span>.
      </p>


function_name: hash_file
name: filename
type: string
description:
<p class="para">
       URL describing location of file to be hashed; Supports fopen wrappers.
      </p>


function_name: hash_file
name: binary
type: bool
description:
<p class="para">
       When set to <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, outputs raw binary data.
       <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> outputs lowercase hexits.
      </p>


function_name: hash_file
name: options
type: array
initializer: []
description:
<p class="para">
       An array of options for the various hashing algorithms.  Currently, only the &quot;seed&quot; parameter is
       supported by the MurmurHash variants.
      </p>


function_name: hash_hkdf
name: algo
type: string
description:
<p class="para">
       Name of selected hashing algorithm (i.e. &quot;sha256&quot;, &quot;sha512&quot;, &quot;haval160,4&quot;, etc..)
       See <span class="function">hash_algos</span> for a list of supported algorithms.
       <blockquote class="note"><p><strong class="note">Note</strong>: 
        <p class="para">
         Non-cryptographic hash functions are not allowed.
        </p>
       </p></blockquote>
      </p>


function_name: hash_hkdf
name: length
type: int
description:
<p class="para">
       Desired output length in bytes.
       Cannot be greater than 255 times the chosen hash function size.
      </p>
      <p class="para">
       If <code class="parameter">length</code> is <code class="literal">0</code>, the output length
       will default to the chosen hash function size.
      </p>


function_name: hash_hkdf
name: salt
type: string
initializer: ""
description:
<p class="para">
       Salt to use during derivation.
      </p>
      <p class="para">
       While optional, adding random salt significantly improves the strength of HKDF.
      </p>


function_name: hash_hmac_file
name: algo
type: string
description:
<p class="para">
       Name of selected hashing algorithm (i.e. &quot;md5&quot;, &quot;sha256&quot;, &quot;haval160,4&quot;, etc..) See <span class="function">hash_hmac_algos</span> for a list of supported algorithms.
      </p>


function_name: hash_hmac_file
name: key
type: string
description:
<p class="para">
       Shared secret key used for generating the HMAC variant of the message digest.
      </p>


function_name: hash_init
name: flags
type: int
description:
<p class="para">
       Optional settings for hash generation, currently supports only one option:
       <strong><code><a href="hash.constants.html#constant.hash-hmac">HASH_HMAC</a></code></strong>.  When specified, the <code class="parameter">key</code>
       <em>must</em> be specified.
      </p>


function_name: hash_init
name: key
type: string
initializer: ""
description:
<p class="para">
       When <strong><code><a href="hash.constants.html#constant.hash-hmac">HASH_HMAC</a></code></strong> is specified for <code class="parameter">flags</code>,
       a shared secret key to be used with the HMAC hashing method must be supplied in this
       parameter.
      </p>


function_name: hash_pbkdf2
name: algo
type: string
description:
<p class="para">
       Name of selected hashing algorithm (i.e. <code class="literal">md5</code>,
       <code class="literal">sha256</code>, <code class="literal">haval160,4</code>, etc..) See
       <span class="function">hash_algos</span> for a list of supported algorithms.
      </p>


function_name: hash_pbkdf2
name: salt
type: string
description:
<p class="para">
       The salt to use for the derivation. This value should be generated randomly.
      </p>


function_name: hash_pbkdf2
name: length
type: int
description:
<p class="para">
       The length of the output string. If <code class="parameter">binary</code>
       is <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> this corresponds to the byte-length of the derived key, if
       <code class="parameter">binary</code> is <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> this corresponds to twice the
       byte-length of the derived key (as every byte of the key is returned as
       two hexits).
      </p>
      <p class="para">
       If <code class="literal">0</code> is passed, the entire output of the supplied
       algorithm is used.
      </p>


function_name: hash_pbkdf2
name: binary
type: bool
description:
<p class="para">
       When set to <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, outputs raw binary data. <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> outputs lowercase
       hexits.
      </p>


function_name: hash_update_file
name: stream_context
type: null
description:
<p class="para">
       Stream context as returned by <span class="function">stream_context_create</span>.
      </p>


function_name: hash_update_stream
name: length
type: int
initializer: -1
description:
<p class="para">
       Maximum number of characters to copy from <code class="parameter">stream</code>
       into the hashing context.
      </p>


function_name: mcrypt_create_iv
name: source
type: int
initializer: MCRYPT_DEV_URANDOM
description:
<p class="para">
       The source of the IV. The source can be
       <strong><code><a href="mcrypt.constants.html#constant.mcrypt-rand">MCRYPT_RAND</a></code></strong> (system random number generator),
       <strong><code><a href="mcrypt.constants.html#constant.mcrypt-dev-random">MCRYPT_DEV_RANDOM</a></code></strong> (read data from
       <var class="filename">/dev/random</var>) and
       <strong><code><a href="mcrypt.constants.html#constant.mcrypt-dev-urandom">MCRYPT_DEV_URANDOM</a></code></strong> (read data from
       <var class="filename">/dev/urandom</var>). Prior to 5.3.0,
       <strong><code><a href="mcrypt.constants.html#constant.mcrypt-rand">MCRYPT_RAND</a></code></strong> was the only one supported on Windows.
      </p>
      <p class="para">
       Note that the default value of this parameter was
       <strong><code><a href="mcrypt.constants.html#constant.mcrypt-dev-random">MCRYPT_DEV_RANDOM</a></code></strong> prior to PHP 5.6.0.
      </p>
      <blockquote class="note"><p><strong class="note">Note</strong>: 
       <span class="simpara">
        Note that <strong><code><a href="mcrypt.constants.html#constant.mcrypt-dev-random">MCRYPT_DEV_RANDOM</a></code></strong> may block until more
        entropy is available.
       </span>
      </p></blockquote>


function_name: mcrypt_decrypt
name: cipher
type: string
description:
<p class="para">One of the <strong><code>MCRYPT_ciphername</code></strong> constants, or the name of the algorithm as string.</p>


function_name: mcrypt_decrypt
name: key
type: string
description:
<p class="para">
       The key with which the data was encrypted. If the provided key size is
       not supported by the cipher, the function will emit a warning and return <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>
      </p>


function_name: mcrypt_decrypt
name: data
type: string
description:
<p class="para">
       The data that will be decrypted with the given <code class="parameter">cipher</code>
       and <code class="parameter">mode</code>. If the size of the data is not n * blocksize,
       the data will be padded with &#039;<code class="literal">\0</code>&#039;.
      </p>


function_name: mcrypt_decrypt
name: mode
type: string
description:
<p class="para">One of the <strong><code>MCRYPT_MODE_modename</code></strong> constants, or one of the following strings: &quot;ecb&quot;, &quot;cbc&quot;, &quot;cfb&quot;, &quot;ofb&quot;, &quot;nofb&quot; or &quot;stream&quot;.</p>


function_name: mcrypt_decrypt
name: iv
type: string
description:
<p class="para">Used for the initialization in CBC, CFB, OFB modes, and in some algorithms in STREAM mode. If the provided IV size is not supported by the chaining mode or no IV was provided, but the chaining mode requires one, the function will emit a warning and return <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.</p>


function_name: mcrypt_encrypt
name: key
type: string
description:
<p class="para">
       The key with which the data will be encrypted. If the provided key size is
       not supported by the cipher, the function will emit a warning and return <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>
      </p>


function_name: mcrypt_encrypt
name: data
type: string
description:
<p class="para">
       The data that will be encrypted with the given <code class="parameter">cipher</code>
       and <code class="parameter">mode</code>. If the size of the data is not n * blocksize,
       the data will be padded with &#039;<code class="literal">\0</code>&#039;.
      </p>
      <p class="para">
       The returned crypttext can be larger than the size of the data that was
       given by <code class="parameter">data</code>.
      </p>


function_name: mcrypt_generic_init
name: key
type: string
description:
<p class="para">
       The maximum length of the key should be the one obtained by calling
       <span class="function">mcrypt_enc_get_key_size</span> and every value smaller
       than this is legal.
      </p>


function_name: mcrypt_generic_init
name: iv
type: string
description:
<p class="para">
       The IV should normally have the size of the algorithms block size, but
       you must obtain the size by calling
       <span class="function">mcrypt_enc_get_iv_size</span>. IV is ignored in ECB. IV
       MUST exist in CFB, CBC, STREAM, nOFB and OFB modes. It needs to be
       random and unique (but not secret). The same IV must be used for
       encryption/decryption. If you do not want to use it you should set it
       to zeros, but this is not recommended.
      </p>


function_name: mcrypt_generic
name: td
type: resource
description:
<p class="para">
       The encryption descriptor.
      </p>
      <p class="para">
       The encryption handle should always be initialized with
       <span class="function">mcrypt_generic_init</span> with a key and an IV before
       calling this function. Where the encryption is done, you should free the
       encryption buffers by calling <span class="function">mcrypt_generic_deinit</span>.
       See <span class="function">mcrypt_module_open</span> for an example.
      </p>


function_name: mcrypt_get_iv_size
name: mode
type: string
description:
<p class="para">One of the <strong><code>MCRYPT_MODE_modename</code></strong> constants, or one of the following strings: &quot;ecb&quot;, &quot;cbc&quot;, &quot;cfb&quot;, &quot;ofb&quot;, &quot;nofb&quot; or &quot;stream&quot;.</p>
      <p class="para">
       The IV is ignored in ECB mode as this mode does not require it. You will
       need to have the same IV (think: starting point) both at encryption and
       decryption stages, otherwise your encryption will fail.
      </p>


function_name: mcrypt_list_algorithms
name: lib_dir
type: string
initializer: ini_get("mcrypt.algorithms_dir")
description:
<p class="para">
       Specifies the directory where all algorithms are located. If not
       specified, the value of the <code class="literal">mcrypt.algorithms_dir</code>
       <var class="filename">php.ini</var> directive is used.
      </p>


function_name: mcrypt_list_modes
name: lib_dir
type: string
initializer: ini_get("mcrypt.modes_dir")
description:
<p class="para">
       Specifies the directory where all modes are located. If not
       specified, the value of the <code class="literal">mcrypt.modes_dir</code>
       <var class="filename">php.ini</var> directive is used.
      </p>


function_name: mcrypt_module_get_algo_block_size
name: lib_dir
type: string
description:
<p class="para">
       This optional parameter can contain the location where the mode module
       is on the system.
      </p>


function_name: mcrypt_module_get_supported_key_sizes
name: lib_dir
type: string
description:
<p class="para">
       The optional <code class="parameter">lib_dir</code> parameter can contain the
       location where the algorithm module is on the system.
      </p>


function_name: mcrypt_module_open
name: algorithm_directory
type: string
description:
<p class="para">
       The <code class="parameter">algorithm_directory</code> parameter is used to locate
       the encryption module. When you supply a directory name, it is used.  When
       you set it to an empty string (<code class="literal">&quot;&quot;</code>), the value set by the
       <code class="literal">mcrypt.algorithms_dir</code> <var class="filename">php.ini</var> directive is used. When
       it is not set, the default directory that is used is the one that was compiled
       into libmcrypt (usually <var class="filename">/usr/local/lib/libmcrypt</var>).
      </p>


function_name: mcrypt_module_open
name: mode_directory
type: string
description:
<p class="para">
       The <code class="parameter">mode_directory</code> parameter is used to locate
       the encryption module. When you supply a directory name, it is used.  When
       you set it to an empty string (<code class="literal">&quot;&quot;</code>), the value set by the
       <code class="literal">mcrypt.modes_dir</code> <var class="filename">php.ini</var> directive is used. When
       it is not set, the default directory that is used is the one that was compiled-in
       into libmcrypt (usually <var class="filename">/usr/local/lib/libmcrypt</var>).
      </p>


function_name: mdecrypt_generic
name: td
type: resource
description:
<p class="para">
       An encryption descriptor returned by
       <span class="function">mcrypt_module_open</span>
      </p>


function_name: mhash_get_block_size
name: algo
type: int
description:
<p class="para">
       The hash ID. One of the <strong><code>MHASH_hashname</code></strong> constants.
      </p>


function_name: mhash_keygen_s2k
name: algo
type: int
description:
<p class="para">
       The hash ID used to create the key.
       One of the <strong><code>MHASH_hashname</code></strong> constants.
      </p>


function_name: mhash_keygen_s2k
name: salt
type: string
description:
<p class="para">
       Must be different and random enough for every key you generate in
       order to create different keys. Because <code class="parameter">salt</code>
       must be known when you check the keys, it is a good idea to append
       the key to it. Salt has a fixed length of 8 bytes and will be padded
       with zeros if you supply less bytes.
      </p>


function_name: mhash
name: key
type: null
description:
<p class="para">
       If specified, the function will return the resulting HMAC instead.
       HMAC is keyed hashing for message authentication, or simply a message
       digest that depends on the specified key. Not all algorithms 
       supported in mhash can be used in HMAC mode.
      </p>


function_name: openssl_cipher_iv_length
name: cipher_algo
type: string
description:
<p class="para">
      The cipher method, see <span class="function">openssl_get_cipher_methods</span> for a list of potential values.
     </p>


function_name: openssl_cms_decrypt
name: private_key
type: null
description:
<p class="para">
      The name of the file containing a <acronym class="acronym">PKCS</acronym>#8 key.
     </p>


function_name: openssl_cms_decrypt
name: encoding
type: int
description:
<p class="para">
      The encoding of the input file. One of <strong><code><a href="openssl.constants.other.html#constant.openssl-encoding-smime">OPENSSL_ENCODING_SMIME</a></code></strong>,
      <strong><code><a href="openssl.constants.other.html#constant.openssl-encoding-der">OPENSSL_ENCODING_DER</a></code></strong> or <strong><code><a href="openssl.constants.other.html#constant.openssl-encoding-pem">OPENSSL_ENCODING_PEM</a></code></strong>.
     </p>


function_name: openssl_cms_encrypt
name: encoding
type: int
description:
<p class="para">
      An encoding to output. One of <strong><code><a href="openssl.constants.other.html#constant.openssl-encoding-smime">OPENSSL_ENCODING_SMIME</a></code></strong>,
      <strong><code><a href="openssl.constants.other.html#constant.openssl-encoding-der">OPENSSL_ENCODING_DER</a></code></strong> or <strong><code><a href="openssl.constants.other.html#constant.openssl-encoding-pem">OPENSSL_ENCODING_PEM</a></code></strong>.
     </p>


function_name: openssl_cms_sign
name: certificate
type: string
description:
<p class="para">
      The signing certificate.
      See <a href="openssl.certparams.html" class="link">Key/Certificate parameters</a> for a list of valid values.
     </p>


function_name: openssl_cms_sign
name: private_key
type: string
description:
<p class="para">
      The key associated with <code class="parameter">certificate</code>.
      See <a href="openssl.certparams.html" class="link">Key/Certificate parameters</a> for a list of valid values.
     </p>


function_name: openssl_cms_sign
name: encoding
type: int
description:
<p class="para">
      The encoding of the output file. One of <strong><code><a href="openssl.constants.other.html#constant.openssl-encoding-smime">OPENSSL_ENCODING_SMIME</a></code></strong>,
      <strong><code><a href="openssl.constants.other.html#constant.openssl-encoding-der">OPENSSL_ENCODING_DER</a></code></strong> or <strong><code><a href="openssl.constants.other.html#constant.openssl-encoding-pem">OPENSSL_ENCODING_PEM</a></code></strong>.
     </p>


function_name: openssl_cms_verify
name: certificates
type: null
description:
<p class="para">
      A file with the signer certificate and optionally intermediate certificates.
     </p>


function_name: openssl_cms_verify
name: ca_info
type: array
initializer: []
description:
<p class="para">
      An array containing self-signed certificate authority certificates.
     </p>


function_name: openssl_csr_export_to_file
name: csr
type: string
description:
<p class="para">
   See <a href="openssl.certparams.html" class="link">CSR parameters</a> for a list of valid values.
  </p>


function_name: openssl_csr_export_to_file
name: no_text
type: bool
description:
<p class="para">
 The optional parameter <code class="parameter">notext</code> affects
 the verbosity of the output; if it is <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>, then additional human-readable
 information is included in the output. The default value of
 <code class="parameter">notext</code> is <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>.
</p>


function_name: openssl_csr_export
name: output
type: string
description:
<p class="para">
       on success, this string will contain the <acronym class="acronym">PEM</acronym>
       encoded <acronym class="acronym">CSR</acronym>
      </p>


function_name: openssl_csr_get_public_key
name: short_names
type: bool
description:
<div class="warning"><strong class="warning">Warning</strong>
       <p class="para">
        This parameter is ignored
       </p>
      </div>


function_name: openssl_csr_get_subject
name: short_names
type: bool
description:
<p class="para">
       <code class="parameter">shortnames</code> controls how the data is indexed in the
       array - if <code class="parameter">shortnames</code> is <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> (the default) then
       fields will be indexed with the short name form, otherwise, the long name
       form will be used - e.g.: CN is the shortname form of commonName.
      </p>


function_name: openssl_csr_new
name: distinguished_names
type: array
description:
<p class="para">
       The Distinguished Name or subject fields to be used in the certificate.
      </p>


function_name: openssl_csr_new
name: private_key
type: OpenSSLAsymmetricKey
description:
<p class="para">
       <code class="parameter">private_key</code> should be set to a private key that was
       previously generated by <span class="function">openssl_pkey_new</span> (or
       otherwise obtained from the other openssl_pkey family of functions).
       The corresponding public portion of the key will be used to sign the
       <acronym class="acronym">CSR</acronym>.
      </p>


function_name: openssl_csr_new
name: options
type: null
description:
<p class="para">
       By default, the information in your system <code class="literal">openssl.conf</code>
       is used to initialize the request; you can specify a configuration file
       section by setting the <code class="literal">config_section_section</code> key of
       <code class="parameter">options</code>.  You can also specify an alternative
       openssl configuration file by setting the value of the
       <code class="literal">config</code> key to the path of the file you want to use.
       The following keys, if present in <code class="parameter">options</code>
       behave as their equivalents in the <code class="literal">openssl.conf</code>, as
       listed in the table below.
       <table class="doctable table">
        <caption><strong>Configuration overrides</strong></caption>
        
         <thead>
          <tr>
           <th><code class="parameter">options</code> key</th>
           <th>type</th>
           <th><code class="literal">openssl.conf</code> equivalent</th>
           <th>description</th>
          </tr>

         </thead>

         <tbody class="tbody">
          <tr>
           <td>digest_alg</td>
           <td><span class="type">string</span></td>
           <td>default_md</td>
           <td>Digest method or signature hash, usually one of <span class="function">openssl_get_md_methods</span></td>
          </tr>

          <tr>
           <td>x509_extensions</td>
           <td><span class="type">string</span></td>
           <td>x509_extensions</td>
           <td>Selects which extensions should be used when creating an x509
           certificate</td>
          </tr>

          <tr>
           <td>req_extensions</td>
           <td><span class="type">string</span></td>
           <td>req_extensions</td>
           <td>Selects which extensions should be used when creating a <acronym class="acronym">CSR</acronym></td>
          </tr>

          <tr>
           <td>private_key_bits</td>
           <td><span class="type">int</span></td>
           <td>default_bits</td>
           <td>Specifies how many bits should be used to generate a private
            key</td>
          </tr>

          <tr>
           <td>private_key_type</td>
           <td><span class="type">int</span></td>
           <td>none</td>
           <td>Specifies the type of private key to create.  This can be one
            of <strong><code><a href="openssl.key-types.html#constant.openssl-keytype-dsa">OPENSSL_KEYTYPE_DSA</a></code></strong>,
            <strong><code><a href="openssl.key-types.html#constant.openssl-keytype-dh">OPENSSL_KEYTYPE_DH</a></code></strong>,
            <strong><code><a href="openssl.key-types.html#constant.openssl-keytype-rsa">OPENSSL_KEYTYPE_RSA</a></code></strong> or
            <strong><code><a href="openssl.key-types.html#constant.openssl-keytype-ec">OPENSSL_KEYTYPE_EC</a></code></strong>.
            The default value is <strong><code><a href="openssl.key-types.html#constant.openssl-keytype-rsa">OPENSSL_KEYTYPE_RSA</a></code></strong>.
           </td>
          </tr>

          <tr>
           <td>encrypt_key</td>
           <td><span class="type">bool</span></td>
           <td>encrypt_key</td>
           <td>Should an exported key (with passphrase) be encrypted?</td>
          </tr>

          <tr>
           <td>encrypt_key_cipher</td>
           <td><span class="type">int</span></td>
           <td>none</td>
           <td>
            One of <a href="openssl.ciphers.html" class="link">cipher constants</a>.
           </td>
          </tr>

          <tr>
           <td>curve_name</td>
           <td><span class="type">string</span></td>
           <td>none</td>
           <td>
            One of <span class="function">openssl_get_curve_names</span>.
           </td>
          </tr>

          <tr>
           <td>config</td>
           <td><span class="type">string</span></td>
           <td>N/A</td>
           <td>
            Path to your own alternative openssl.conf file.
           </td>
          </tr>

         </tbody>
        
       </table>

      </p>


function_name: openssl_csr_new
name: extra_attributes
type: null
description:
<p class="para">
       <code class="parameter">extra_attributes</code> is used to specify additional
       configuration options for the <acronym class="acronym">CSR</acronym>.  Both <code class="parameter">distinguished_names</code> and
       <code class="parameter">extra_attributes</code> are associative arrays whose keys are
       converted to OIDs and applied to the relevant part of the request.
      </p>


function_name: openssl_csr_sign
name: csr
type: string
description:
<p class="para">
       A <acronym class="acronym">CSR</acronym> previously generated by <span class="function">openssl_csr_new</span>.
       It can also be the path to a <acronym class="acronym">PEM</acronym> encoded <acronym class="acronym">CSR</acronym> when specified as
       <var class="filename">file://path/to/csr</var> or an exported string generated
       by <span class="function">openssl_csr_export</span>.
      </p>


function_name: openssl_csr_sign
name: ca_certificate
type: null
description:
<p class="para">
       The generated certificate will be signed by <code class="parameter">ca_certificate</code>.
       If <code class="parameter">ca_certificate</code> is <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>, the generated certificate
       will be a self-signed certificate.
      </p>


function_name: openssl_csr_sign
name: private_key
type: string
description:
<p class="para">
       <code class="parameter">private_key</code> is the private key that corresponds to
       <code class="parameter">ca_certificate</code>.
      </p>


function_name: openssl_csr_sign
name: days
type: int
description:
<p class="para">
       <code class="parameter">days</code> specifies the length of time for which the
       generated certificate will be valid, in days.
      </p>


function_name: openssl_csr_sign
name: options
type: null
description:
<p class="para">
       You can finetune the <acronym class="acronym">CSR</acronym> signing by <code class="parameter">options</code>.
       See <span class="function">openssl_csr_new</span> for more information about
       <code class="parameter">options</code>.
      </p>


function_name: openssl_csr_sign
name: serial
type: int
description:
<p class="para">
       An optional the serial number of issued certificate. If not specified
       it will default to 0.
      </p>


function_name: openssl_decrypt
name: cipher_algo
type: string
description:
<p class="para">
       The cipher method. For a list of available cipher methods, use 
       <span class="function">openssl_get_cipher_methods</span>.  
      </p>


function_name: openssl_decrypt
name: options
type: int
description:
<p class="para">
        <code class="parameter">options</code> can be one of
        <strong><code><a href="openssl.constants.other.html#constant.openssl-raw-data">OPENSSL_RAW_DATA</a></code></strong>,
        <strong><code><a href="openssl.constants.other.html#constant.openssl-zero-padding">OPENSSL_ZERO_PADDING</a></code></strong>.
       </p>


function_name: openssl_decrypt
name: tag
type: null
description:
<p class="para">
       The authentication tag in AEAD cipher mode. If it is incorrect, the authentication fails and the function returns <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
      </p>
      <div class="caution"><strong class="caution">Caution</strong>
       <p class="simpara">
        The length of the <code class="parameter">tag</code> is not checked by the function.
        It is the caller&#039;s responsibility to ensure that the length of the tag
        matches the length of the tag retrieved when <span class="function">openssl_encrypt</span>
        has been called. Otherwise the decryption may succeed if the given tag only
        matches the start of the proper tag.
       </p>
      </div>


function_name: openssl_dh_compute_key
name: private_key
type: OpenSSLAsymmetricKey
description:
<p class="para">
       A local DH private key, corresponding to the public key to be shared with the remote party.
      </p>


function_name: openssl_digest
name: digest_algo
type: string
description:
<p class="para">
       The digest method to use, e.g. &quot;sha256&quot;, see <span class="function">openssl_get_md_methods</span> for a list of available digest methods.
      </p>


function_name: openssl_digest
name: binary
type: bool
description:
<p class="para">
       Setting to <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> will return as raw output data, otherwise the return
       value is binhex encoded.
      </p>


function_name: openssl_encrypt
name: cipher_algo
type: string
description:
<p class="para">
       The cipher method. For a list of available cipher methods, use <span class="function">openssl_get_cipher_methods</span>.
      </p>


function_name: openssl_encrypt
name: passphrase
type: string
description:
<p class="para">
       The passphrase. If the passphrase is shorter than expected, it is silently padded with
       <code class="literal">NUL</code> characters; if the passphrase is longer than expected, it is
       silently truncated.
      </p>


function_name: openssl_encrypt
name: options
type: int
description:
<p class="para">
          <code class="parameter">options</code> is a bitwise disjunction of the flags
          <strong><code><a href="openssl.constants.other.html#constant.openssl-raw-data">OPENSSL_RAW_DATA</a></code></strong> and
          <strong><code><a href="openssl.constants.other.html#constant.openssl-zero-padding">OPENSSL_ZERO_PADDING</a></code></strong>.
        </p>


function_name: openssl_encrypt
name: tag
type: string
description:
<p class="para">
       The authentication tag passed by reference when using AEAD cipher mode (GCM or CCM).
      </p>


function_name: openssl_encrypt
name: tag_length
type: int
initializer: 16
description:
<p class="para">
       The length of the authentication <code class="parameter">tag</code>. Its value can be between 4 and 16 for GCM mode.
      </p>


function_name: openssl_get_cipher_methods
name: aliases
type: bool
description:
<p class="para">
       Set to <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> if cipher aliases should be included within the
       returned <span class="type">array</span>.
      </p>


function_name: openssl_get_md_methods
name: aliases
type: bool
description:
<p class="para">
       Set to <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> if digest aliases should be included within the
       returned <span class="type">array</span>.
      </p>


function_name: openssl_open
name: output
type: string
description:
<p class="para">
       If the call is successful the opened data is returned in this
       parameter.
      </p>


function_name: openssl_open
name: cipher_algo
type: string
description:
<p class="para">
       The cipher method.
       <div class="caution"><strong class="caution">Caution</strong>
        <p class="simpara">
         The default value (<code class="literal">&#039;RC4&#039;</code>) is considered insecure.
         It is strongly recommended to explicitly specify a secure cipher method.
        </p>
       </div>
      </p>


function_name: openssl_pbkdf2
name: salt
type: string
description:
<p class="para">
      PBKDF2 recommends a crytographic salt of at least 64 bits (8 bytes).
     </p>


function_name: openssl_pbkdf2
name: iterations
type: int
description:
<p class="para">
      The number of iterations desired. <a href="https://pages.nist.gov/800-63-3/sp800-63b.html#sec5" class="link external">&raquo;&nbsp;NIST 
      recommends at least 10,000</a>.
     </p>


function_name: openssl_pbkdf2
name: digest_algo
type: string
initializer: "sha1"
description:
<p class="para">
      Optional hash or digest algorithm from <span class="function">openssl_get_md_methods</span>.  Defaults to SHA-1.
     </p>


function_name: openssl_pkcs12_export_to_file
name: private_key
type: string
description:
<p class="para">
      Private key component of <acronym class="acronym">PKCS</acronym>#12 file.
      See <a href="openssl.certparams.html" class="link">Public/Private Key parameters</a> for a list of valid values.
      </p>


function_name: openssl_pkcs12_export_to_file
name: passphrase
type: string
description:
<p class="para">
      Encryption password for unlocking the <acronym class="acronym">PKCS</acronym>#12 file.
      </p>


function_name: openssl_pkcs12_export_to_file
name: options
type: array
initializer: []
description:
<p class="para">
       Optional array, other keys will be ignored.
       <table class="doctable informaltable">
        
         <thead>
          <tr>
           <th>Key</th>
           <th>Description</th>
          </tr>

         </thead>

         <tbody class="tbody">
          <tr>
           <td><code class="literal">&quot;extracerts&quot;</code></td>
           <td>array of extra certificates or a single certificate to be included in the <acronym class="acronym">PKCS</acronym>#12 file.</td>
          </tr>

          <tr>
           <td><code class="literal">&quot;friendly_name&quot;</code></td>
           <td>string to be used for the supplied certificate and key</td>
          </tr>

         </tbody>
        
       </table>

      </p>


function_name: openssl_pkcs12_export
name: output
type: string
description:
<p class="para">
       On success, this will hold the <acronym class="acronym">PKCS</acronym>#12.
      </p>


function_name: openssl_pkcs7_decrypt
name: output_filename
type: string
description:
<p class="para">
       The decrypted message is written to the file specified by
       <code class="parameter">output_filename</code>.
      </p>


function_name: openssl_pkcs7_encrypt
name: certificate
type: string
description:
<p class="para">
       Either a lone X.509 certificate, or an array of X.509 certificates.
      </p>


function_name: openssl_pkcs7_encrypt
name: headers
type: null
description:
<p class="para">
       <code class="parameter">headers</code> is an array of headers that
       will be prepended to the data after it has been encrypted.
      </p>
      <p class="para">
       <code class="parameter">headers</code> can be either an associative array
       keyed by header name, or an indexed array, where each element contains
       a single header line.
      </p>


function_name: openssl_pkcs7_encrypt
name: flags
type: int
description:
<p class="para">
       <code class="parameter">flags</code> can be used to specify options that affect
       the encoding process - see <a href="openssl.pkcs7.flags.html" class="link">PKCS7
       constants</a>.
      </p>


function_name: openssl_pkcs7_encrypt
name: cipher_algo
type: int
description:
<p class="para">
       One of <a href="openssl.ciphers.html" class="link">cipher constants</a>.
      </p>


function_name: openssl_pkcs7_read
name: certificates
type: array
description:
<p class="para">
      The array of <acronym class="acronym">PEM</acronym> certificates from the p7b input data.
     </p>


function_name: openssl_pkcs7_sign
name: certificate
type: string
description:
<p class="para">
        The X.509 certificate used to digitally sign <code class="parameter">input_filename</code>.
        See <a href="openssl.certparams.html" class="link">Key/Certificate parameters</a> for a list of valid values.
      </p>


function_name: openssl_pkcs7_sign
name: private_key
type: string
description:
<p class="para">
        <code class="parameter">private_key</code> is the private key corresponding to <code class="parameter">certificate</code>.
        See <a href="openssl.certparams.html" class="link">Public/Private Key parameters</a> for a list of valid values.
      </p>


function_name: openssl_pkcs7_sign
name: headers
type: null
description:
<p class="para">
       <code class="parameter">headers</code> is an array of headers that
       will be prepended to the data after it has been signed (see
       <span class="function">openssl_pkcs7_encrypt</span> for more information about
       the format of this parameter).
      </p>


function_name: openssl_pkcs7_sign
name: flags
type: int
description:
<p class="para">
       <code class="parameter">flags</code> can be used to alter the output - see <a href="openssl.pkcs7.flags.html" class="link">PKCS7 constants</a>.
      </p>


function_name: openssl_pkcs7_sign
name: untrusted_certificates_filename
type: null
description:
<p class="para">
       <code class="parameter">untrusted_certificates_filename</code> specifies the name of a file containing
       a bunch of extra certificates to include in the signature which can for
       example be used to help the recipient to verify the certificate that you used.
      </p>


function_name: openssl_pkcs7_verify
name: flags
type: int
description:
<p class="para">
       <code class="parameter">flags</code> can be used to affect how the signature is
       verified - see <a href="openssl.pkcs7.flags.html" class="link">PKCS7 constants</a>
       for more information.
      </p>


function_name: openssl_pkcs7_verify
name: signers_certificates_filename
type: null
description:
<p class="para">
       If the <code class="parameter">signers_certificates_filename</code> is specified, it should be a
       string holding the name of a file into which the certificates of the
       persons that signed the messages will be stored in <acronym class="acronym">PEM</acronym> format.
      </p>


function_name: openssl_pkcs7_verify
name: ca_info
type: array
initializer: []
description:
<p class="para">
       If the <code class="parameter">ca_info</code> is specified, it should hold
       information about the trusted CA certificates to use in the verification
       process - see <a href="openssl.cert.verification.html" class="link">certificate
       verification</a> for more information about this parameter.
      </p>


function_name: openssl_pkcs7_verify
name: untrusted_certificates_filename
type: null
description:
<p class="para">
       If the <code class="parameter">untrusted_certificates_filename</code> is specified, it is the filename
       of a file containing a bunch of certificates to use as untrusted CAs.
      </p>


function_name: openssl_pkcs7_verify
name: content
type: null
description:
<p class="para">
       You can specify a filename with <code class="parameter">content</code> that will
       be filled with the verified data, but with the signature information
       stripped.
      </p>


function_name: openssl_pkey_derive
name: public_key
type: string
description:
<p class="para">
      <code class="parameter">public_key</code> is the public key for the derivation.
      See <a href="openssl.certparams.html" class="link">Public/Private Key parameters</a> for a list of valid values.
     </p>


function_name: openssl_pkey_derive
name: private_key
type: string
description:
<p class="para">
      <code class="parameter">private_key</code> is the private key for the derivation.
      See <a href="openssl.certparams.html" class="link">Public/Private Key parameters</a> for a list of valid values.
     </p>


function_name: openssl_pkey_export_to_file
name: passphrase
type: null
description:
<p class="para">
       The key can be optionally protected by a
       <code class="parameter">passphrase</code>.
      </p>


function_name: openssl_pkey_export_to_file
name: options
type: null
description:
<p class="para">
       <code class="parameter">options</code> can be used to fine-tune the export
       process by specifying and/or overriding options for the openssl
       configuration file. See <span class="function">openssl_csr_new</span> for more
       information about <code class="parameter">options</code>.
      </p>


function_name: openssl_pkey_export
name: passphrase
type: null
description:
<p class="para">
       The key is optionally protected by <code class="parameter">passphrase</code>.
      </p>


function_name: openssl_pkey_export
name: options
type: null
description:
<p class="para">
       <code class="parameter">options</code> can be used to fine-tune the export
       process by specifying and/or overriding options for the openssl
       configuration file.  See <span class="function">openssl_csr_new</span> for more
       information about <code class="parameter">options</code>.
      </p>


function_name: openssl_pkey_get_private
name: passphrase
type: null
description:
<p class="para">
       The optional parameter <code class="parameter">passphrase</code> must be used
       if the specified key is encrypted (protected by a passphrase).
      </p>


function_name: openssl_pkey_new
name: options
type: null
description:
<p class="para">
       You can finetune the key generation (such as specifying the number of
       bits) using <code class="parameter">options</code>.  See
       <span class="function">openssl_csr_new</span> for more information about
       <code class="parameter">options</code>.
      </p>


function_name: openssl_private_decrypt
name: private_key
type: string
description:
<p class="para">
       <code class="parameter">private_key</code> must be the private key corresponding that
       was used to encrypt the data.  
      </p>


function_name: openssl_private_decrypt
name: padding
type: int
description:
<p class="para">
       <code class="parameter">padding</code> can be one of
       <strong><code><a href="openssl.padding.html#constant.openssl-pkcs1-padding">OPENSSL_PKCS1_PADDING</a></code></strong>,
       <strong><code><a href="openssl.padding.html#constant.openssl-sslv23-padding">OPENSSL_SSLV23_PADDING</a></code></strong>,
       <strong><code><a href="openssl.padding.html#constant.openssl-pkcs1-oaep-padding">OPENSSL_PKCS1_OAEP_PADDING</a></code></strong>,
       <strong><code><a href="openssl.padding.html#constant.openssl-no-padding">OPENSSL_NO_PADDING</a></code></strong>.
      </p>


function_name: openssl_private_encrypt
name: padding
type: int
description:
<p class="para">
       <code class="parameter">padding</code> can be one of
       <strong><code><a href="openssl.padding.html#constant.openssl-pkcs1-padding">OPENSSL_PKCS1_PADDING</a></code></strong>,
       <strong><code><a href="openssl.padding.html#constant.openssl-no-padding">OPENSSL_NO_PADDING</a></code></strong>.
      </p>


function_name: openssl_public_decrypt
name: public_key
type: string
description:
<p class="para">
       <code class="parameter">public_key</code> must be the public key corresponding that
       was used to encrypt the data.  
      </p>


function_name: openssl_random_pseudo_bytes
name: length
type: int
description:
<p class="para">
       The length of the desired string of bytes. Must be a positive integer less than or equal to <code class="literal">2147483647</code>. PHP will
       try to cast this parameter to a non-null integer to use it. 
      </p>


function_name: openssl_random_pseudo_bytes
name: strong_result
type: bool
description:
<p class="para">
       If passed into the function, this will hold a <span class="type">bool</span> value that determines
       if the algorithm used was &quot;cryptographically strong&quot;, e.g., safe for usage with GPG, 
       passwords, etc. <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> if it did, otherwise <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>
      </p>


function_name: openssl_seal
name: public_key
type: array
description:
<p class="para">
       Array of <span class="classname">OpenSSLAsymmetricKey</span> instances containing public keys.
      </p>


function_name: openssl_sign
name: signature
type: string
description:
<p class="para">
       If the call was successful the signature is returned in
       <code class="parameter">signature</code>.
      </p>


function_name: openssl_sign
name: private_key
type: string
description:
<p class="para">
       <span class="classname">OpenSSLAsymmetricKey</span> - a key, returned by <span class="function">openssl_get_privatekey</span>
      </p>
      <p class="para">
       <span class="type">string</span> - a <acronym class="acronym">PEM</acronym> formatted key
      </p>


function_name: openssl_sign
name: algorithm
type: int
description:
<p class="para">
       <span class="type">int</span> - one of these <a href="openssl.signature-algos.html" class="link">Signature Algorithms</a>.
      </p>
      <p class="para">
       <span class="type">string</span> - a valid string returned by <span class="function">openssl_get_md_methods</span> example, &quot;sha256WithRSAEncryption&quot; or &quot;sha384&quot;.
      </p>


function_name: openssl_verify
name: signature
type: string
description:
<p class="para">
       A raw binary string, generated by <span class="function">openssl_sign</span> or similar means
      </p>


function_name: openssl_verify
name: public_key
type: string
description:
<p class="para">
       <span class="classname">OpenSSLAsymmetricKey</span> - a key, returned by <span class="function">openssl_get_publickey</span>
      </p>
      <p class="para">
       <span class="type">string</span> - a <acronym class="acronym">PEM</acronym> formatted key (e.g. <code class="literal">-----BEGIN PUBLIC KEY-----
MIIBCgK...</code>)
      </p>


function_name: openssl_verify
name: algorithm
type: int
description:
<p class="para">
       <span class="type">int</span> - one of these <a href="openssl.signature-algos.html" class="link">Signature Algorithms</a>.
      </p>
      <p class="para">
       <span class="type">string</span> - a valid string returned by <span class="function">openssl_get_md_methods</span> example, &quot;sha1WithRSAEncryption&quot; or &quot;sha512&quot;.
      </p>


function_name: openssl_x509_checkpurpose
name: purpose
type: int
description:
<p class="para">
       <table class="doctable table">
        <caption><strong><span class="function">openssl_x509_checkpurpose</span> purposes</strong></caption>
        
         <thead>
          <tr>
           <th>Constant</th>
           <th>Description</th>
          </tr>

         </thead>

         <tbody class="tbody">
          <tr>
           <td>X509_PURPOSE_SSL_CLIENT</td>
           <td>Can the certificate be used for the client side of an SSL
           connection?</td>
          </tr>

          <tr>
           <td>X509_PURPOSE_SSL_SERVER</td>
           <td>Can the certificate be used for the server side of an SSL
           connection?</td>
          </tr>

          <tr>
           <td>X509_PURPOSE_NS_SSL_SERVER</td>
           <td>Can the cert be used for Netscape SSL server?</td>
          </tr>

          <tr>
           <td>X509_PURPOSE_SMIME_SIGN</td>
           <td>Can the cert be used to sign S/MIME email?</td>
          </tr>

          <tr>
           <td>X509_PURPOSE_SMIME_ENCRYPT</td>
           <td>Can the cert be used to encrypt S/MIME email?</td>
          </tr>

          <tr>
           <td>X509_PURPOSE_CRL_SIGN</td>
           <td>Can the cert be used to sign a certificate revocation list
           (CRL)?</td>
          </tr>

          <tr>
           <td>X509_PURPOSE_ANY</td>
           <td>Can the cert be used for Any/All purposes?</td>
          </tr>

         </tbody>
        
       </table>

       These options are not bitfields - you may specify one only!
      </p>


function_name: openssl_x509_checkpurpose
name: ca_info
type: array
initializer: []
description:
<p class="para">
       <code class="parameter">ca_info</code> should be an array of trusted CA files/dirs
       as described in <a href="openssl.cert.verification.html" class="link">Certificate
       Verification</a>.
      </p>


function_name: openssl_x509_checkpurpose
name: untrusted_certificates_file
type: null
description:
<p class="para">
       If specified, this should be the name of a <acronym class="acronym">PEM</acronym> encoded file holding
       certificates that can be used to help verify the certificate, although
       no trust is placed in the certificates that come from that file.
      </p>


function_name: openssl_x509_export
name: output
type: string
description:
<p class="para">
       On success, this will hold the <acronym class="acronym">PEM</acronym>.
      </p>


function_name: openssl_x509_fingerprint
name: digest_algo
type: string
initializer: "sha1"
description:
<p class="para">
       The digest method or hash algorithm to use, e.g. &quot;sha256&quot;, one of <span class="function">openssl_get_md_methods</span>.
      </p>


function_name: openssl_x509_fingerprint
name: binary
type: bool
description:
<p class="para">
      When set to <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, outputs raw binary data. <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> outputs lowercase hexits.
      </p>


function_name: openssl_x509_parse
name: certificate
type: string
description:
<p class="para">
        X509 certificate. See <a href="openssl.certparams.html" class="link">Key/Certificate parameters</a> for a list of valid values.
      </p>


function_name: openssl_x509_parse
name: short_names
type: bool
description:
<p class="para">
       <code class="parameter">short_names</code> controls how the data is indexed in the
       array - if <code class="parameter">short_names</code> is <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> (the default) then
       fields will be indexed with the short name form, otherwise, the long name
       form will be used - e.g.: CN is the shortname form of commonName.
      </p>


function_name: password_hash
name: password
type: string
description:
<p class="para">
      The user&#039;s password.
     </p>
      <div class="caution"><strong class="caution">Caution</strong>
       <p class="para">
        Using the <strong><code><a href="password.constants.html#constant.password-bcrypt">PASSWORD_BCRYPT</a></code></strong> as the
        algorithm, will result
        in the <code class="parameter">password</code> parameter being truncated to a
        maximum length of 72 bytes.
       </p>
      </div>


function_name: password_hash
name: algo
type: null
description:
<p class="para">
      A <a href="password.constants.html" class="link">password algorithm constant</a> denoting the algorithm to use when hashing the password.
     </p>


function_name: password_hash
name: options
type: array
initializer: []
description:
<p class="para">
      An associative array containing options. See the <a href="password.constants.html" class="link">password algorithm constants</a> for documentation on the supported options for each algorithm.
     </p>
     <p class="para">
      If omitted, a random salt will be created and the default cost will be
      used.
     </p>


function_name: password_needs_rehash
name: options
type: array
initializer: []
description:
<p class="para">
      An associative array containing options. See the <a href="password.constants.html" class="link">password algorithm constants</a> for documentation on the supported options for each algorithm.
     </p>


function_name: rnp_dump_packets_to_json
name: input
type: string
description:
<p class="para">
      Input string containing OpenPGP data, either in binary or ASCII-armored format.
     </p>


function_name: rnp_dump_packets_to_json
name: flags
type: int
description:
<p class="para">
      See <strong><code>RNP_JSON_DUMP_*</code></strong> predefined constants.
     </p>


function_name: rnp_ffi_create
name: pub_format
type: string
description:
<p class="para">
      the format of the public keyring, RNP_KEYSTORE_GPG or other
      RNP_KEYSTORE_* constant.
     </p>


function_name: rnp_ffi_create
name: sec_format
type: string
description:
<p class="para">
      the format of the secret keyring, RNP_KEYSTORE_GPG or other
      RNP_KEYSTORE_* constant
     </p>


function_name: rnp_ffi_set_pass_provider
name: password_callback
type: callable
description:
<p class="para">
      The function that is to be called for every password request.  It has the following signature:
      <div class="methodsynopsis dc-description"><span class="type">bool</span> <span class="methodname"><span class="replaceable">password_callback</span></span>(<span class="methodparam"><span class="type">string</span> <code class="parameter">$key_fp</code></span>, <span class="methodparam"><span class="type">string</span> <code class="parameter">$pgp_context</code></span>, <span class="methodparam"><span class="type">string</span> <code class="parameter reference">&$password</code></span>)</div>

      <ul class="simplelist">
       <li><code class="literal">$key_fp</code> - The key fingerprint, if any. Can be empty.</li>
       <li><code class="literal">$pgp_context</code> - String describing why the key is being requested.</li>
       <li><code class="literal">$password</code> - Password string reference where provided password should be stored to.</li>
      </ul>
      Callback function should return <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> if password was successfully set or <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> on failure.
     </p>


function_name: rnp_import_keys
name: input
type: string
description:
<p class="para">
      OpenPGP packets containing key(s) to be loaded. Can be either binary or ASCII armored.
     </p>


function_name: rnp_import_keys
name: flags
type: int
description:
<p class="para">
      See <strong><code>RNP_LOAD_SAVE_*</code></strong> predefined constants.
     </p>


function_name: rnp_import_signatures
name: input
type: string
description:
<p class="para">
      OpenPGP packets containing signatures to be imported. Can be either binary or ASCII armored.
     </p>


function_name: rnp_key_export_autocrypt
name: subkey_fp
type: string
description:
<p class="para">
      Subkey to export. Can be an empty string
      to pick the first suitable subkey.
     </p>


function_name: rnp_key_export_autocrypt
name: uid
type: string
description:
<p class="para">
      User ID to export. Can be an empty string
      if exported key has only one uid.
     </p>


function_name: rnp_key_export_autocrypt
name: flags
type: int
description:
<p class="para">
      Only <strong><code><a href="rnp.constants.html#constant.rnp-key-export-base64">RNP_KEY_EXPORT_BASE64</a></code></strong> is currently supported. Enabling
      it would export base64-encoded key data instead of binary.
     </p>


function_name: rnp_key_export_revocation
name: flags
type: int
description:
<p class="para">
      <strong><code><a href="rnp.constants.html#constant.rnp-key-export-armored">RNP_KEY_EXPORT_ARMORED</a></code></strong> or 0.
     </p>


function_name: rnp_key_export_revocation
name: options
type: array
description:
<p class="para">
      An associative array with options.
     </p>
     <table class="doctable informaltable">
      
       <thead>
        <tr>
         <th>Key</th>
         <th>Data type</th>
         <th>Description</th>
        </tr>

       </thead>

       <tbody class="tbody">
        <tr>
         <td><code class="literal">&quot;hash&quot;</code></td>
         <td>string</td>
         <td>Set hash algorithm used during signature calculation.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;code&quot;</code></td>
         <td>string</td>
         <td>Code reason for revocation code. Possible values: &#039;no&#039;, &#039;superseded&#039;, &#039;compromised&#039;,
          &#039;retired&#039;. If not defined, then value &#039;no&#039; will be used by default.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;reason&quot;</code></td>
         <td>string</td>
         <td>Textual representation of the reason for revocation.</td>
        </tr>

       </tbody>
      
     </table>


function_name: rnp_key_export
name: flags
type: int
description:
<p class="para">
      See <strong><code>RNP_KEY_EXPORT_*</code></strong> predefined constants
      (except <strong><code><a href="rnp.constants.html#constant.rnp-key-export-base64">RNP_KEY_EXPORT_BASE64</a></code></strong>).
     </p>


function_name: rnp_key_remove
name: flags
type: int
description:
<p class="para">
      See <strong><code>RNP_KEY_REMOVE_*</code></strong> constants. Flag <strong><code><a href="rnp.constants.html#constant.rnp-key-remove-subkeys">RNP_KEY_REMOVE_SUBKEYS</a></code></strong> will work only for
      the primary key and will remove all of its subkeys as well.
     </p>


function_name: rnp_list_keys
name: identifier_type
type: string
description:
<p class="para">
      Key identifier type (&quot;userid&quot;, &quot;keyid&quot;, &quot;grip&quot;, &quot;fingerprint&quot;).
     </p>


function_name: rnp_locate_key
name: identifier_type
type: string
description:
<p class="para">
      Identifier type string: &quot;userid&quot;, &quot;keyid&quot;, &quot;fingerprint&quot;, &quot;grip&quot;.
     </p>


function_name: rnp_locate_key
name: identifier
type: string
description:
<p class="para">
      PGP User ID (name and email) for &quot;userid&quot; type, hexadecimal string
      that represents key id, fingerprint or key grip correspondingly.
     </p>


function_name: rnp_op_encrypt
name: recipient_keys_fp
type: array
description:
<p class="para">
      Array with fingerprints of recipient&#039;s keys. At least one key must be present.
     </p>


function_name: rnp_op_encrypt
name: options
type: array
description:
<p class="para">
      An associative array with options.
     </p>
     <table class="doctable informaltable">
      
       <thead>
        <tr>
         <th>Key</th>
         <th>Data type</th>
         <th>Description</th>
        </tr>

       </thead>

       <tbody class="tbody">
        <tr>
         <td><code class="literal">&quot;compression_alg&quot;</code></td>
         <td>string</td>
         <td>Compression algorithm. Both
	   <code class="literal">&quot;compression_alg&quot;</code> and <code class="literal">&quot;compression_level&quot;</code>
	   must be set in order to enable data compression.
	 </td>
        </tr>

        <tr>
         <td><code class="literal">&quot;compression_level&quot;</code></td>
         <td>integer</td>
         <td>Compression level, 0-9. 0 disables compression.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;armor&quot;</code></td>
         <td>boolean</td>
         <td>Enable ASCII-armored output. Disabled by default.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;add_signature&quot;</code></td>
         <td>boolean</td>
         <td>Encrypted message will be also signed.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;hash&quot;</code></td>
         <td>string</td>
         <td>Set hash algorithm used during signature calculation. &quot;add_signature&quot; option should be set to <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong></td>
        </tr>

        <tr>
         <td><code class="literal">&quot;creation_time&quot;</code></td>
         <td>integer</td>
         <td>Set signature creation time in seconds since Jan, 1 1970 UTC. By default current time is used.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;expiration_time&quot;</code></td>
         <td>integer</td>
         <td>Set signature expiration time in seconds since the creation time. 0 value is used to mark
          signature as non-expiring (default value).</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;password&quot;</code></td>
         <td>string</td>
         <td>Add password which is used to encrypt data.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;cipher&quot;</code></td>
         <td>string</td>
         <td>
          Set symmetric encryption algorithm. Possible values are &quot;IDEA&quot;, &quot;TRIPLEDES&quot;,
	  &quot;CAST5&quot;, &quot;BLOWFISH&quot;, &quot;AES128&quot;, &quot;AES192&quot;, &quot;AES256&quot;, &quot;TWOFISH&quot;, &quot;CAMELLIA128&quot;,
          &quot;CAMELLIA192&quot;, &quot;CAMELLIA256&quot;, &quot;SM4&quot;.
	 </td>
        </tr>

        <tr>
         <td><code class="literal">&quot;aead&quot;</code></td>
         <td>string</td>
         <td>
          Set AEAD mode algorithm. Possible values are &quot;None&quot; to disable AEAD, &quot;EAX&quot;, &quot;OCB&quot;.
	 </td>
        </tr>

        <tr>
         <td><code class="literal">&quot;aead_bits&quot;</code></td>
         <td>integer</td>
         <td>Set chunk length for AEAD mode via number of chunk size bits. Must be between 0 to 56.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;flags&quot;</code></td>
         <td>integer</td>
         <td>
          Set additional encryption flags. Supported flags: RNP_ENCRYPT_NOWRAP - do not wrap the data in a literal data packet. This
          would allow to encrypt already signed data.
         </td>
        </tr>

        <tr>
         <td><code class="literal">&quot;file_name&quot;</code></td>
         <td>string</td>
         <td>Set the internally stored file name for the data being encrypted. Special value _CONSOLE may be used to mark message
          as &#039;for your eyes only&#039;, i.e. it should not be stored anywhere but only displayed
          to the receiver. Default is the empty string.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;file_mtime&quot;</code></td>
         <td>integer</td>
         <td>Set input file modification date in seconds since Jan, 1 1970 UTC.</td>
        </tr>

       </tbody>
      
     </table>


function_name: rnp_op_generate_key
name: userid
type: string
description:
<p class="para">
      PGP User ID - text that is intended to represent
      the name and email address of the key holder.
     </p>


function_name: rnp_op_generate_key
name: key_alg
type: string
description:
<p class="para">
      Primary key algorithm (i.e. &#039;RSA&#039;, &#039;DSA&#039;, etc).
     </p>


function_name: rnp_op_generate_key
name: options
type: array
description:
<p class="para">
      An associative array with options.
     </p>
     <table class="doctable informaltable">
      
       <thead>
        <tr>
         <th>Key</th>
         <th>Data type</th>
         <th>Description</th>
        </tr>

       </thead>

       <tbody class="tbody">
        <tr>
         <td><code class="literal">&quot;bits&quot;</code></td>
         <td>integer</td>
         <td>Primary key size in bits. Applicable only to RSA, DSA and El-Gamal keys.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;hash&quot;</code></td>
         <td>string</td>
         <td>Hash algorithm used in self signature or subkey binding signature.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;dsa_qbits&quot;</code></td>
         <td>integer</td>
         <td>Set size of a <code class="literal">q</code> parameter for DSA key.
          Note: appropriate default value will be set, depending on key bits. However you may
          override it if needed.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;curve&quot;</code></td>
         <td>string</td>
         <td>Set the curve used for ECC key. Note: this is only applicable for ECDSA, ECDH and SM2 keys.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;request_password&quot;</code></td>
         <td>boolean</td>
         <td>Enable requesting password via password provider. This password
          will be used for key encryption. Password provider callback function should be set in
	  advance by calling <span class="function">rnp_ffi_set_pass_provider</span>.
          Note: this setting will be ignored if password was set via<code class="literal">&quot;password&quot;</code></td>
        </tr>

        <tr>
         <td><code class="literal">&quot;password&quot;</code></td>
         <td>string</td>
         <td>Set the password used to encrypt the secret key data.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;expiration&quot;</code></td>
         <td>integer</td>
         <td>Set the key and subkey expiration time in seconds.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;sub_bits&quot;</code></td>
         <td>integer</td>
         <td>Subkey size in bits. Applicable only to RSA, DSA and El-Gamal keys.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;sub_hash&quot;</code></td>
         <td>string</td>
         <td>Hash algorithm used in subkey self signature or subkey binding signature.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;sub_curve&quot;</code></td>
         <td>string</td>
         <td>Set the curve used for ECC subkey. Note: this is only applicable for ECDSA, ECDH and SM2 keys.</td>
        </tr>

       </tbody>
      
     </table>


function_name: rnp_op_sign_cleartext
name: keys_fp
type: array
description:
<p class="para">
      Array with key fingerprints. At least one key must be provided.
      Keys should be present in <code class="parameter">ffi</code>.
     </p>


function_name: rnp_op_sign_cleartext
name: options
type: array
description:
<p class="para">
      An associative array with options.
     </p>
     <table class="doctable informaltable">
      
       <thead>
        <tr>
         <th>Key</th>
         <th>Data type</th>
         <th>Description</th>
        </tr>

       </thead>

       <tbody class="tbody">
        <tr>
         <td><code class="literal">&quot;armor&quot;</code></td>
         <td>boolean</td>
         <td>Enable ASCII-armored output. Disabled by default.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;hash&quot;</code></td>
         <td>string</td>
         <td>Set hash algorithm used during signature calculation.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;creation_time&quot;</code></td>
         <td>integer</td>
         <td>Set signature creation time in seconds since Jan, 1 1970 UTC. By default current time is used.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;expiration_time&quot;</code></td>
         <td>integer</td>
         <td>Set signature expiration time in seconds since the creation time. 0 value is used to mark
          signature as non-expiring (default value).</td>
        </tr>

       </tbody>
      
     </table>


function_name: rnp_op_sign
name: options
type: array
description:
<p class="para">
      An associative array with options.
     </p>
     <table class="doctable informaltable">
      
       <thead>
        <tr>
         <th>Key</th>
         <th>Data type</th>
         <th>Description</th>
        </tr>

       </thead>

       <tbody class="tbody">
        <tr>
         <td><code class="literal">&quot;compression_alg&quot;</code></td>
         <td>string</td>
         <td>Compression algorithm. Both
	   <code class="literal">&quot;compression_alg&quot;</code> and <code class="literal">&quot;compression_level&quot;</code>
	   must be set in order to enable data compression.
	 </td>
        </tr>

        <tr>
         <td><code class="literal">&quot;compression_level&quot;</code></td>
         <td>integer</td>
         <td>Compression level, 0-9. 0 disables compression.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;armor&quot;</code></td>
         <td>boolean</td>
         <td>Enable ASCII-armored output. Disabled by default.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;hash&quot;</code></td>
         <td>string</td>
         <td>Set hash algorithm used during signature calculation.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;creation_time&quot;</code></td>
         <td>integer</td>
         <td>Set signature creation time in seconds since Jan, 1 1970 UTC. By default current time is used.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;expiration_time&quot;</code></td>
         <td>integer</td>
         <td>Set signature expiration time in seconds since the creation time. 0 value is used to mark
          signature as non-expiring (default value).</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;file_name&quot;</code></td>
         <td>string</td>
         <td>Set input file name.Special value _CONSOLE may be used to mark message
          as &#039;for your eyes only&#039;, i.e. it should not be stored anywhere but only displayed
          to the receiver. Default is the empty string.</td>
        </tr>

        <tr>
         <td><code class="literal">&quot;file_mtime&quot;</code></td>
         <td>integer</td>
         <td>Set input file modification date in seconds since Jan, 1 1970 UTC.</td>
        </tr>

       </tbody>
      
     </table>


function_name: rnp_save_keys
name: output
type: string
description:
<p class="para">
      key packets will be saved to the string referenced by <code class="parameter">output</code>.
     </p>


function_name: sodium_add
name: string1
type: string
description:
<p class="para">
      String representing an arbitrary-length unsigned integer in little-endian byte order.
      This parameter is passed by reference and will hold the sum of the two parameters.
     </p>


function_name: sodium_add
name: string2
type: string
description:
<p class="para">
      String representing an arbitrary-length unsigned integer in little-endian byte order.
     </p>


function_name: sodium_base642bin
name: id
type: int
description:
<p class="para">
      <ul class="simplelist">
       <li>
        <strong><code>SODIUM_BASE64_VARIANT_ORIGINAL</code></strong> for standard (<code class="literal">A-Za-z0-9/\+</code>)
        Base64 encoding.
       </li>
       <li>
        <strong><code>SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING</code></strong> for standard (<code class="literal">A-Za-z0-9/\+</code>)
        Base64 encoding, without <code class="literal">=</code> padding characters.
       </li>
       <li>
        <strong><code>SODIUM_BASE64_VARIANT_URLSAFE</code></strong> for URL-safe (<code class="literal">A-Za-z0-9\-_</code>) Base64 encoding.
       </li>
       <li>
        <strong><code>SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING</code></strong> for URL-safe (<code class="literal">A-Za-z0-9\-_</code>)
        Base64 encoding, without <code class="literal">=</code> padding characters.
       </li>
      </ul>
     </p>


function_name: sodium_crypto_aead_aes256gcm_decrypt
name: ciphertext
type: string
description:
<p class="para">
      Must be in the format provided by <span class="function">sodium_crypto_aead_aes256gcm_encrypt</span>
      (ciphertext and tag, concatenated).
     </p>


function_name: sodium_crypto_aead_aes256gcm_decrypt
name: additional_data
type: string
description:
<p class="para">
      Additional, authenticated data. This is used in the verification of the authentication tag
      appended to the ciphertext, but it is not encrypted or stored in the ciphertext.
     </p>


function_name: sodium_crypto_aead_chacha20poly1305_decrypt
name: ciphertext
type: string
description:
<p class="para">
      Must be in the format provided by <span class="function">sodium_crypto_aead_chacha20poly1305_encrypt</span>
      (ciphertext and tag, concatenated).
     </p>


function_name: sodium_crypto_aead_chacha20poly1305_ietf_decrypt
name: ciphertext
type: string
description:
<p class="para">
      Must be in the format provided by <span class="function">sodium_crypto_aead_chacha20poly1305_ietf_encrypt</span>
      (ciphertext and tag, concatenated).
     </p>


function_name: sodium_crypto_aead_xchacha20poly1305_ietf_decrypt
name: nonce
type: string
description:
<p class="para">
      A number that must be only used once, per message. 24 bytes long.
      This is a large enough bound to generate randomly (i.e. <span class="function">random_bytes</span>).
     </p>


function_name: sodium_crypto_auth_verify
name: mac
type: string
description:
<p class="para">
      Authentication tag produced by <span class="function">sodium_crypto_auth</span>
     </p>


function_name: sodium_crypto_box_open
name: key_pair
type: string
description:
<p class="para">
      See <span class="function">sodium_crypto_box_keypair_from_secretkey_and_publickey</span>.
      This should include the sender&#039;s public key and the recipient&#039;s secret key.
     </p>


function_name: sodium_crypto_box_publickey
name: key_pair
type: string
description:
<p class="para">
      A keypair, such as one generated by <span class="function">sodium_crypto_box_keypair</span> or
      <span class="function">sodium_crypto_box_seed_keypair</span>
     </p>


function_name: sodium_crypto_box_seal
name: public_key
type: string
description:
<p class="para">
      The public key that corresponds to the only key that can decrypt the message.
     </p>


function_name: sodium_crypto_box
name: key_pair
type: string
description:
<p class="para">
      See <span class="function">sodium_crypto_box_keypair_from_secretkey_and_publickey</span>.
      This should include the sender&#039;s X25519 secret key and the recipient&#039;s X25519 public key.
     </p>


function_name: sodium_crypto_generichash_final
name: state
type: string
description:
<p class="para">
      Hash state returned from <span class="function">sodium_crypto_generichash_init</span>
     </p>


function_name: sodium_crypto_generichash_update
name: state
type: string
description:
<p class="para">
      The return value of <span class="function">sodium_crypto_generichash_init</span>.
     </p>


function_name: sodium_crypto_generichash
name: key
type: string
initializer: ""
description:
<p class="para">
      (Optional) cryptographic key. This serves the same function as a HMAC key, but it&#039;s
      utilized as a reserved section of the internal BLAKE2 state.
     </p>


function_name: sodium_crypto_kx_client_session_keys
name: client_key_pair
type: string
description:
<p class="para">
      A crypto_kx keypair, such as one generated by <span class="function">sodium_crypto_kx_keypair</span>.
     </p>


function_name: sodium_crypto_kx_publickey
name: key_pair
type: string
description:
<p class="para">
      X25519 keypair, such as one generated by
      <span class="function">sodium_crypto_kx_keypair</span>.
     </p>


function_name: sodium_crypto_pwhash_scryptsalsa208sha256
name: salt
type: string
description:
<p class="para">
      A salt to add to the password before hashing. The salt should be unpredictable, ideally generated from a good random number source such as <span class="function">random_bytes</span>, and have a length of at least <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-scryptsalsa208sha256-saltbytes">SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES</a></code></strong> bytes.
     </p>


function_name: sodium_crypto_pwhash_scryptsalsa208sha256
name: opslimit
type: int
description:
<p class="para">
      Represents a maximum amount of computations to perform. Raising this number will make the function require more CPU cycles to compute a key. There are some constants available to set the operations limit to appropriate values depending on intended use, in order of strength: <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-scryptsalsa208sha256-opslimit-interactive">SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE</a></code></strong> and <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-scryptsalsa208sha256-opslimit-sensitive">SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE</a></code></strong>.
     </p>


function_name: sodium_crypto_pwhash_scryptsalsa208sha256
name: memlimit
type: int
description:
<p class="para">
      The maximum amount of RAM that the function will use, in bytes. There are constants to help you choose an appropriate value, in order of size: <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-scryptsalsa208sha256-memlimit-interactive">SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE</a></code></strong> and <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-scryptsalsa208sha256-memlimit-sensitive">SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE</a></code></strong>. Typically these should be paired with the matching <code class="parameter">opslimit</code> values.
     </p>


function_name: sodium_crypto_pwhash_str_needs_rehash
name: opslimit
type: int
description:
<p class="para">
      Configured opslimit; see <span class="function">sodium_crypto_pwhash_str</span>
     </p>


function_name: sodium_crypto_pwhash_str_needs_rehash
name: memlimit
type: int
description:
<p class="para">
      Configured memlimit; see <span class="function">sodium_crypto_pwhash_str</span>
     </p>


function_name: sodium_crypto_pwhash_str
name: password
type: string
description:
<p class="para">
      <span class="type">string</span>; The password to generate a hash for.
     </p>


function_name: sodium_crypto_pwhash_str
name: opslimit
type: int
description:
<p class="para">
      Represents a maximum amount of computations to perform. Raising this number will make the function require more CPU cycles to compute a key. There are constants available to set the operations limit to appropriate values depending on intended use, in order of strength: <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-opslimit-interactive">SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE</a></code></strong>, <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-opslimit-moderate">SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE</a></code></strong> and <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-opslimit-sensitive">SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE</a></code></strong>.
     </p>


function_name: sodium_crypto_pwhash_str
name: memlimit
type: int
description:
<p class="para">
      The maximum amount of RAM that the function will use, in bytes. There are constants to help you choose an appropriate value, in order of size: <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-memlimit-interactive">SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE</a></code></strong>, <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-memlimit-moderate">SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE</a></code></strong>, and <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-memlimit-sensitive">SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE</a></code></strong>. Typically these should be paired with the matching opslimit values.
     </p>


function_name: sodium_crypto_pwhash
name: length
type: int
description:
<p class="para">
      <span class="type">int</span>; The length of the password hash to generate, in bytes.
     </p>


function_name: sodium_crypto_pwhash
name: salt
type: string
description:
<p class="para">
      A salt to add to the password before hashing. The salt should be unpredictable, ideally generated from a good random number source such as <span class="function">random_bytes</span>, and have a length of exactly <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-saltbytes">SODIUM_CRYPTO_PWHASH_SALTBYTES</a></code></strong> bytes.
     </p>


function_name: sodium_crypto_pwhash
name: opslimit
type: int
description:
<p class="para">
      Represents a maximum amount of computations to perform. Raising this number will make the function require more CPU cycles to compute a key. There are some constants available to set the operations limit to appropriate values depending on intended use, in order of strength: <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-opslimit-interactive">SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE</a></code></strong>, <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-opslimit-moderate">SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE</a></code></strong> and <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-opslimit-sensitive">SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE</a></code></strong>.
     </p>


function_name: sodium_crypto_pwhash
name: memlimit
type: int
description:
<p class="para">
      The maximum amount of RAM that the function will use, in bytes. There are constants to help you choose an appropriate value, in order of size: <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-memlimit-interactive">SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE</a></code></strong>, <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-memlimit-moderate">SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE</a></code></strong>, and <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-memlimit-sensitive">SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE</a></code></strong>. Typically these should be paired with the matching <code class="parameter">opslimit</code> values.
     </p>


function_name: sodium_crypto_pwhash
name: algo
type: int
description:
<p class="para">
      <span class="type">int</span> A number indicating the hash algorithm to use. By default <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-alg-default">SODIUM_CRYPTO_PWHASH_ALG_DEFAULT</a></code></strong> (the currently recommended algorithm, which can change from one version of libsodium to another), or explicitly using <strong><code><a href="sodium.constants.html#constant.sodium-crypto-pwhash-alg-argon2id13">SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13</a></code></strong>, representing the Argon2id algorithm version 1.3.
     </p>


function_name: sodium_crypto_secretbox_open
name: ciphertext
type: string
description:
<p class="para">
      Must be in the format provided by <span class="function">sodium_crypto_secretbox</span>
      (ciphertext and tag, concatenated).
     </p>


function_name: sodium_crypto_secretstream_xchacha20poly1305_init_pull
name: header
type: string
description:
<p class="para">
      The header of the secretstream. This should be one of the values produced by
      <span class="function">sodium_crypto_secretstream_xchacha20poly1305_init_push</span>.
     </p>


function_name: sodium_crypto_secretstream_xchacha20poly1305_init_push
name: key
type: string
description:
<p class="para">
      Cryptography key. See <span class="function">sodium_crypto_secretstream_xchacha20poly1305_keygen</span>.
     </p>


function_name: sodium_crypto_secretstream_xchacha20poly1305_pull
name: state
type: string
description:
<p class="para">
      See <span class="function">sodium_crypto_secretstream_xchacha20poly1305_init_pull</span>
      and <span class="function">sodium_crypto_secretstream_xchacha20poly1305_init_push</span>
     </p>


function_name: sodium_crypto_secretstream_xchacha20poly1305_push
name: tag
type: int
description:
<p class="para">
      Optional. Can be used to assert decryption behavior
      (i.e. re-keying or indicating the final chunk in a stream).
     </p>
     <ul class="simplelist">
      <li>
       <strong><code>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE</code></strong>:
       the most common tag, that doesn't add any information about the nature of the message.
      </li>
      <li>
       <strong><code>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL</code></strong>:
       indicates that the message marks the end of the stream, and erases the secret key used to encrypt the previous sequence.
      </li>
      <li>
       <strong><code>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH</code></strong>:
       indicates that the message marks the end of a set of messages, but not the end of the stream.
       For example, a huge JSON string sent as multiple chunks can use this tag to indicate to the application that the
       string is complete and that it can be decoded. But the stream itself is not closed, and more data may follow.
      </li>
      <li>
       <strong><code>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY</code></strong>:
       "forget" the key used to encrypt this message and the previous ones, and derive a new secret key.
      </li>
     </ul>


function_name: sodium_crypto_sign_detached
name: secret_key
type: string
description:
<p class="para">
      Secret key. See <span class="function">sodium_crypto_sign_secretkey</span>
     </p>


function_name: sodium_crypto_sign_open
name: signed_message
type: string
description:
<p class="para">
      A message signed with <span class="function">sodium_crypto_sign</span>
     </p>


function_name: sodium_crypto_sign_publickey
name: key_pair
type: string
description:
<p class="para">
      Ed25519 keypair (see: <span class="function">sodium_crypto_sign_keypair</span>)
     </p>


function_name: sodium_crypto_sign_verify_detached
name: signature
type: string
description:
<p class="para">
      The cryptographic signature obtained from <span class="function">sodium_crypto_sign_detached</span>
     </p>


function_name: sodium_crypto_stream_xchacha20_xor_ic
name: key
type: string
description:
<p class="para">
      Key, possibly generated from <span class="function">sodium_crypto_stream_xchacha20_keygen</span>.
     </p>


function_name: sodium_pad
name: block_size
type: int
description:
<p class="para">
      The string will be padded until it is an even multiple of the block size.
     </p>


function_name: dba_close
name: dba
type: resource
description:
<p class="para">
       The database handler, returned by <span class="function">dba_open</span> or
       <span class="function">dba_popen</span>.
      </p>


function_name: dba_fetch
name: key
type: array
description:
<p class="para">
       The key the data is specified by.
      </p>
      <blockquote class="note"><p><strong class="note">Note</strong>: 
       <p class="para">
        When working with inifiles this function accepts arrays as keys
        where index 0 is the group and index 1 is the value name. See:
        <span class="function">dba_key_split</span>.
       </p>
      </p></blockquote>


function_name: dba_fetch
name: skip
type: int
description:
<p class="para">
       The number of key-value pairs to ignore when using cdb databases.
       This value is ignored for all other databases which do not support
       multiple keys with the same name.
      </p>


function_name: dba_insert
name: key
type: array
description:
<p class="para">
       The key of the entry to be inserted. If this key already exist in the 
       database, this function will fail. Use <span class="function">dba_replace</span>
       if you need to replace an existent key.
      </p>


function_name: dba_open
name: mode
type: string
description:
<p class="para">
       It is <code class="literal">r</code> for read access, <code class="literal">w</code> for
       read/write access to an already existing database, <code class="literal">c</code>
       for read/write access and database creation if it doesn&#039;t currently exist,
       and <code class="literal">n</code> for create, truncate and read/write access.
       The database is created in BTree mode, other modes (like Hash or Queue)
       are not supported.
      </p>
      <p class="para">
       Additionally you can set the database lock method with the next char. 
       Use <code class="literal">l</code> to lock the database with a <var class="filename">.lck</var>
       file or <code class="literal">d</code> to lock the databasefile itself. It is 
       important that all of your applications do this consistently.
      </p>
      <p class="para">
       If you want to test the access and do not want to wait for the lock 
       you can add <code class="literal">t</code> as third character. When you are 
       absolutely sure that you do not require database locking you can do 
       so by using <code class="literal">-</code> instead of <code class="literal">l</code> or
       <code class="literal">d</code>. When none of <code class="literal">d</code>, 
       <code class="literal">l</code> or <code class="literal">-</code> is used, dba will lock
       on the database file as it would with <code class="literal">d</code>.
      </p>
      <blockquote class="note"><p><strong class="note">Note</strong>: 
       <p class="para">
        There can only be one writer for one database file. When you use dba on 
        a web server and more than one request requires write operations they can
        only be done one after another. Also read during write is not allowed.
        The dba extension uses locks to prevent this. See the following table:
        <table class="doctable table">
         <caption><strong>DBA locking</strong></caption>
         
          <thead>
           <tr>
            <th>already open</th>
            <th><code class="parameter">mode</code> = &quot;rl&quot;</th>
            <th><code class="parameter">mode</code> = &quot;rlt&quot;</th>
            <th><code class="parameter">mode</code> = &quot;wl&quot;</th>
            <th><code class="parameter">mode</code> = &quot;wlt&quot;</th>
            <th><code class="parameter">mode</code> = &quot;rd&quot;</th>
            <th><code class="parameter">mode</code> = &quot;rdt&quot;</th>
            <th><code class="parameter">mode</code> = &quot;wd&quot;</th>
            <th><code class="parameter">mode</code> = &quot;wdt&quot;</th>
           </tr>

          </thead>

          <tbody class="tbody">
           <tr>
            <td>not open</td>
            <td>ok</td>
            <td>ok</td>
            <td>ok</td>
            <td>ok</td>
            <td>ok</td>
            <td>ok</td>
            <td>ok</td>
            <td>ok</td>
           </tr>

           <tr>
            <td><code class="parameter">mode</code> = &quot;rl&quot;</td>
            <td>ok</td>
            <td>ok</td>
            <td>wait</td>
            <td>false</td>
            <td>illegal</td>
            <td>illegal</td>
            <td>illegal</td>
            <td>illegal</td>
           </tr>

           <tr>
            <td><code class="parameter">mode</code> = &quot;wl&quot;</td>
            <td>wait</td>
            <td>false</td>
            <td>wait</td>
            <td>false</td>
            <td>illegal</td>
            <td>illegal</td>
            <td>illegal</td>
            <td>illegal</td>
           </tr>

           <tr>
            <td><code class="parameter">mode</code> = &quot;rd&quot;</td>
            <td>illegal</td>
            <td>illegal</td>
            <td>illegal</td>
            <td>illegal</td>
            <td>ok</td>
            <td>ok</td>
            <td>wait</td>
            <td>false</td>
           </tr>

           <tr>
            <td><code class="parameter">mode</code> = &quot;wd&quot;</td>
            <td>illegal</td>
            <td>illegal</td>
            <td>illegal</td>
            <td>illegal</td>
            <td>wait</td>
            <td>false</td>
            <td>wait</td>
            <td>false</td>
           </tr>

          </tbody>
         
        </table>

        <ul class="simplelist">
         <li>ok: the second call will be successful.</li>
         <li>wait: the second call waits until <span class="function">dba_close</span> is called for the first.</li>
         <li>false: the second call returns false.</li>
         <li>illegal: you must not mix <code class="literal">&quot;l&quot;</code> and <code class="literal">&quot;d&quot;</code> modifiers for <code class="parameter">mode</code> parameter.</li>
        </ul>
       </p>
      </p></blockquote>


function_name: dba_open
name: handler
type: null
description:
<p class="para">
       The name of the <a href="dba.requirements.html" class="link">handler</a> which
       shall be used for accessing <code class="parameter">path</code>. It is passed
       all optional parameters given to <span class="function">dba_open</span> and
       can act on behalf of them. If <code class="parameter">handler</code> is <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>,
       then the default handler is invoked.
      </p>


function_name: dba_open
name: permission
type: int
initializer: 0644
description:
<p class="para">
       Optional <span class="type">int</span> parameter which is passed to the driver. It has the same meaning as
       the <code class="parameter">permissions</code> parameter of <span class="function">chmod</span>,
       and defaults to <code class="literal">0644</code>.
      </p>
      <p class="para">
       The <code class="literal">db1</code>, <code class="literal">db2</code>, <code class="literal">db3</code>,
       <code class="literal">db4</code>, <code class="literal">dbm</code>, <code class="literal">gdbm</code>,
       <code class="literal">ndbm</code>, and <code class="literal">lmdb</code> drivers support the
       <code class="parameter">permission</code> parameter.
      </p>


function_name: dba_open
name: map_size
type: int
description:
<p class="para">
       Optional <span class="type">int</span> parameter which is passed to the driver. Its value should be a multiple of the
       page size of the OS, or zero, to use the default map size.
      </p>
      <p class="para">
       Only the <code class="literal">lmdb</code> driver accepts the <code class="parameter">map_size</code> parameter.
      </p>


function_name: dba_open
name: flags
type: null
description:
<p class="para">
       Flags to pass to the database drivers. If <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong> the default flags will be provided.
       Currently, only the LMDB driver supports the following flags
       <strong><code><a href="dba.constants.html#constant.dba-lmdb-use-sub-dir">DBA_LMDB_USE_SUB_DIR</a></code></strong> and
       <strong><code><a href="dba.constants.html#constant.dba-lmdb-no-sub-dir">DBA_LMDB_NO_SUB_DIR</a></code></strong>.
      </p>


function_name: dba_popen
name: mode
type: string
description:
<p class="para">
       It is <code class="literal">r</code> for read access, <code class="literal">w</code> for
       read/write access to an already existing database, <code class="literal">c</code>
       for read/write access and database creation if it doesn&#039;t currently exist,
       and <code class="literal">n</code> for create, truncate and read/write access.
      </p>


function_name: dba_popen
name: handler
type: null
description:
<p class="para">
       The name of the <a href="dba.requirements.html" class="link">handler</a> which
       shall be used for accessing <code class="parameter">path</code>. It is passed 
       all optional parameters given to <span class="function">dba_popen</span> and 
       can act on behalf of them. If <code class="parameter">handler</code> is <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>,
       then the default handler is invoked.
      </p>


function_name: dba_popen
name: map_size
type: int
description:
<p class="para">
       Optional <span class="type">int</span> parameter which is passed to the driver. Its value should be a multiple of the
       page size of the OS, or zero, to use the default mapsize.
      </p>
      <p class="para">
       The <code class="literal">lmdb</code> driver accepts the <code class="parameter">map_size</code> parameter.
      </p>


function_name: dba_popen
name: flags
type: null
description:
<p class="para">
       Allows to pass flags to the DB drivers. Currently, only LMDB with
       <strong><code><a href="dba.constants.html#constant.dba-lmdb-use-sub-dir">DBA_LMDB_USE_SUB_DIR</a></code></strong> and <strong><code><a href="dba.constants.html#constant.dba-lmdb-no-sub-dir">DBA_LMDB_NO_SUB_DIR</a></code></strong> are supported.
      </p>


function_name: odbc_autocommit
name: odbc
type: resource
description:
<p class="para">The ODBC connection identifier,
see <span class="function">odbc_connect</span> for details.</p>


function_name: odbc_autocommit
name: enable
type: bool
description:
<p class="para">
       If <code class="parameter">enable</code> is <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, auto-commit is enabled, if
       it is <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> auto-commit is disabled.
       If <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong> is passed, this function returns the auto-commit status for
       <code class="parameter">odbc</code>.
      </p>


function_name: odbc_binmode
name: statement
type: resource
description:
<p class="para">
       The result identifier.
      </p>
      <p class="para">
       If <code class="parameter">statement</code> is <code class="literal">0</code>, the
       settings apply as default for new results.
      </p>


function_name: odbc_binmode
name: mode
type: int
description:
<p class="simpara">
          <strong><code><a href="uodbc.constants.html#constant.odbc-binmode-convert">ODBC_BINMODE_CONVERT</a></code></strong>: Convert to char and return
         </p>


function_name: odbc_columnprivileges
name: schema
type: string
description:
<p class="para">
       The schema (&#039;owner&#039; in ODBC 2 parlance).
       This parameter accepts the following search patterns:
<code class="literal">%</code> to match zero or more characters,
and <code class="literal">_</code> to match a single character.
      </p>


function_name: odbc_columnprivileges
name: table
type: string
description:
<p class="para">
       The table name.
       This parameter accepts the following search patterns:
<code class="literal">%</code> to match zero or more characters,
and <code class="literal">_</code> to match a single character.
      </p>


function_name: odbc_columnprivileges
name: column
type: string
description:
<p class="para">
       The column name.
       This parameter accepts the following search patterns:
<code class="literal">%</code> to match zero or more characters,
and <code class="literal">_</code> to match a single character.
      </p>


function_name: odbc_connect
name: dsn
type: string
description:
<p class="para">
       The database source name for the connection. Alternatively, a
       DSN-less connection string can be used.
      </p>


function_name: odbc_data_source
name: fetch_type
type: int
description:
<p class="para">
       The <code class="parameter">fetch_type</code> can be one of two constant types:
       <strong><code>SQL_FETCH_FIRST</code></strong>, <strong><code>SQL_FETCH_NEXT</code></strong>.
       Use <strong><code>SQL_FETCH_FIRST</code></strong> the first time this function is
       called, thereafter use the <strong><code>SQL_FETCH_NEXT</code></strong>.
      </p>


function_name: odbc_execute
name: statement
type: resource
description:
<p class="para">
       The result id <span class="type">resource</span>, from <span class="function">odbc_prepare</span>.
      </p>


function_name: odbc_execute
name: params
type: array
initializer: []
description:
<p class="para">
       Parameters in <code class="parameter">params</code> will be
       substituted for placeholders in the prepared statement in order.
       Elements of this array will be converted to strings by calling this
       function.
      </p>
      <p class="para">
       Any parameters in <code class="parameter">params</code> which
       start and end with single quotes will be taken as the name of a
       file to read and send to the database server as the data for the
       appropriate placeholder.
      </p>
      <p class="simpara">
       If you wish to store a string which actually begins and ends with
       single quotes, you must add a space or other non-single-quote character
       to the beginning or end of the parameter, which will prevent the
       parameter from being taken as a file name. If this is not an option,
       then you must use another mechanism to store the string, such as
       executing the query directly with <span class="function">odbc_exec</span>).
      </p>


function_name: odbc_fetch_array
name: statement
type: resource
description:
<p class="para">
       The result resource from <span class="function">odbc_exec</span>.
      </p>


function_name: odbc_fetch_into
name: array
type: array
description:
<p class="para">
       The result <span class="type">array</span>
       that can be of any type since it will be converted to type
       array. The array will contain the column values starting at array
       index 0.
      </p>


function_name: odbc_fetch_row
name: row
type: null
description:
<p class="para">
       If <code class="parameter">row</code> is not specified,
       <span class="function">odbc_fetch_row</span> will try to fetch the next row in
       the result set. Calls to <span class="function">odbc_fetch_row</span> with and
       without <code class="parameter">row</code> can be mixed.
      </p>
      <p class="para">
       To step through the result more than once, you can call
       <span class="function">odbc_fetch_row</span> with
       <code class="parameter">row</code> 1, and then continue doing
       <span class="function">odbc_fetch_row</span> without
       <code class="parameter">row</code> to review the result.  If a driver
       doesn&#039;t support fetching rows by number, the
       <code class="parameter">row</code> parameter is ignored.
      </p>


function_name: odbc_foreignkeys
name: pk_catalog
type: null
description:
<p class="para">
       The catalog (&#039;qualifier&#039; in ODBC 2 parlance) of the primary key table.
      </p>


function_name: odbc_foreignkeys
name: pk_schema
type: string
description:
<p class="para">
       The schema (&#039;owner&#039; in ODBC 2 parlance) of the primary key table.
      </p>


function_name: odbc_foreignkeys
name: fk_catalog
type: string
description:
<p class="para">
       The catalog (&#039;qualifier&#039; in ODBC 2 parlance) of the foreign key table.
      </p>


function_name: odbc_foreignkeys
name: fk_schema
type: string
description:
<p class="para">
       The schema (&#039;owner&#039; in ODBC 2 parlance) of the foreign key table.
      </p>


function_name: odbc_gettypeinfo
name: data_type
type: int
description:
<p class="para">
       The data type, which can be used to restrict the information to a
       single data type.
      </p>


function_name: odbc_longreadlen
name: length
type: int
description:
<p class="para">
       The number of bytes returned to PHP is controlled by the parameter
       length. If it is set to <code class="literal">0</code>, long column data is passed through to the
       client (i.e. printed) when retrieved with <span class="function">odbc_result</span>.
      </p>


function_name: odbc_num_fields
name: statement
type: resource
description:
<p class="para">
       The result identifier returned by <span class="function">odbc_exec</span>.
      </p>


function_name: odbc_procedurecolumns
name: procedure
type: null
description:
<p class="para">
       The proc.
       This parameter accepts the following search patterns:
<code class="literal">%</code> to match zero or more characters,
and <code class="literal">_</code> to match a single character.
      </p>


function_name: odbc_procedurecolumns
name: column
type: null
description:
<p class="para">
       The column.
       This parameter accepts the following search patterns:
<code class="literal">%</code> to match zero or more characters,
and <code class="literal">_</code> to match a single character.
      </p>


function_name: odbc_procedures
name: procedure
type: null
description:
<p class="para">
       The name.
       This parameter accepts the following search patterns:
<code class="literal">%</code> to match zero or more characters,
and <code class="literal">_</code> to match a single character.
      </p>


function_name: odbc_result
name: field
type: int
description:
<p class="para">
       The field name being retrieved. It can either be an integer containing
       the column number of the field you want; or it can be a string
       containing the name of the field.
      </p>


function_name: odbc_setoption
name: odbc
type: resource
description:
<p class="para">
       Is a connection id or result id on which to change the settings.
       For SQLSetConnectOption(), this is a connection id.
       For SQLSetStmtOption(), this is a result id.
      </p>


function_name: odbc_setoption
name: which
type: int
description:
<p class="para">
       Is the ODBC function to use. The value should be
       1 for SQLSetConnectOption() and
       2 for SQLSetStmtOption().
      </p>


function_name: odbc_specialcolumns
name: type
type: int
description:
<p class="simpara">
       When the type argument is <strong><code><a href="uodbc.constants.html#constant.sql-best-rowid">SQL_BEST_ROWID</a></code></strong>,
       <span class="function">odbc_specialcolumns</span> returns the
       column or columns that uniquely identify each row in the table.
      </p>
      <p class="simpara">
       When the type argument is <strong><code><a href="uodbc.constants.html#constant.sql-rowver">SQL_ROWVER</a></code></strong>,
       <span class="function">odbc_specialcolumns</span> returns the column or columns in the
       specified table, if any, that are automatically updated by the data source
       when any value in the row is updated by any transaction.
      </p>


function_name: odbc_specialcolumns
name: scope
type: int
description:
<p class="para">
       The scope, which orders the result set.
       One of <strong><code><a href="uodbc.constants.html#constant.sql-scope-currow">SQL_SCOPE_CURROW</a></code></strong>, <strong><code><a href="uodbc.constants.html#constant.sql-scope-transaction">SQL_SCOPE_TRANSACTION</a></code></strong>
       or <strong><code><a href="uodbc.constants.html#constant.sql-scope-session">SQL_SCOPE_SESSION</a></code></strong>.
      </p>


function_name: odbc_specialcolumns
name: nullable
type: int
description:
<p class="para">
       Determines whether to return special columns that can have a NULL value.
       One of <strong><code><a href="uodbc.constants.html#constant.sql-no-nulls">SQL_NO_NULLS</a></code></strong> or <strong><code><a href="uodbc.constants.html#constant.sql-nullable">SQL_NULLABLE</a></code></strong>.
      </p>


function_name: odbc_statistics
name: unique
type: int
description:
<p class="para">
       The type of the index.
       One of <strong><code><a href="uodbc.constants.html#constant.sql-index-unique">SQL_INDEX_UNIQUE</a></code></strong> or <strong><code><a href="uodbc.constants.html#constant.sql-index-all">SQL_INDEX_ALL</a></code></strong>.
      </p>


function_name: odbc_statistics
name: accuracy
type: int
description:
<p class="para">
       One of <strong><code><a href="uodbc.constants.html#constant.sql-ensure">SQL_ENSURE</a></code></strong> or <strong><code><a href="uodbc.constants.html#constant.sql-quick">SQL_QUICK</a></code></strong>.
       The latter requests that the driver retrieve the <code class="literal">CARDINALITY</code> and
       <code class="literal">PAGES</code> only if they are readily available from the server.
      </p>


function_name: odbc_tables
name: types
type: null
description:
<p class="para">
       If <code class="parameter">table_type</code> is not an empty string, it
       must contain a list of comma-separated values for the types of
       interest; each value may be enclosed in single quotes (<code class="literal">&#039;</code>) or
       unquoted. For example, <code class="literal">&#039;TABLE&#039;,&#039;VIEW&#039;</code> or <code class="literal">TABLE, VIEW</code>.  If the
       data source does not support a specified table type,
       <span class="function">odbc_tables</span> does not return any results for
       that type.
      </p>


function_name: PDO.__construct
name: dsn
type: string
description:
<p class="para">
           <code class="parameter">dsn</code> consists of a name 
           <code class="parameter">name</code> that maps to 
           <code class="code">pdo.dsn.<code class="parameter">name</code></code> in <var class="filename">php.ini</var>
           defining the DSN string.
          </p>
          <blockquote class="note"><p><strong class="note">Note</strong>: 
           <p class="para">
            The alias must be defined in <var class="filename">php.ini</var>, and not <var class="filename">.htaccess</var> or <var class="filename">httpd.conf</var>
           </p>
          </p></blockquote>


function_name: PDO.__construct
name: username
type: null
description:
<p class="para">
       The user name for the DSN string. This parameter is optional for
       some PDO drivers.
      </p>


function_name: PDO.__construct
name: password
type: null
description:
<p class="para">
       The password for the DSN string. This parameter is optional for
       some PDO drivers.
      </p>


function_name: PDO.exec
name: statement
type: string
description:
<p class="para">
        The SQL statement to prepare and execute.
       </p>
       <p class="para">
        Data inside the query should be <a href="pdo.quote.html" class="link">properly escaped</a>.
       </p>


function_name: PDO.getAttribute
name: attribute
type: int
description:
<p class="para">
       One of the <code class="literal">PDO::ATTR_*</code> constants. The generic attributes that
       apply to database connections are as follows:
       <ul class="simplelist"> 
        <li><code class="literal">PDO::ATTR_AUTOCOMMIT</code></li>
        <li><code class="literal">PDO::ATTR_CASE</code></li>
        <li><code class="literal">PDO::ATTR_CLIENT_VERSION</code></li>
        <li><code class="literal">PDO::ATTR_CONNECTION_STATUS</code></li>
        <li><code class="literal">PDO::ATTR_DRIVER_NAME</code></li>
        <li><code class="literal">PDO::ATTR_ERRMODE</code></li>
        <li><code class="literal">PDO::ATTR_ORACLE_NULLS</code></li>
        <li><code class="literal">PDO::ATTR_PERSISTENT</code></li>
        <li><code class="literal">PDO::ATTR_PREFETCH</code></li>
        <li><code class="literal">PDO::ATTR_SERVER_INFO</code></li>
        <li><code class="literal">PDO::ATTR_SERVER_VERSION</code></li>
        <li><code class="literal">PDO::ATTR_TIMEOUT</code></li>
       </ul> 
      </p>
      <p class="simpara">
       Some drivers may make use of additional driver specific attributes.
       Note that driver specific attributes <em>must not</em> be used
       with other drivers.
      </p>


function_name: PDO.lastInsertId
name: name
type: null
description:
<p class="para">
       Name of the sequence object from which the ID should be returned.
      </p>


function_name: PDO.prepare
name: query
type: string
description:
<p class="para">
       This must be a valid SQL statement template for the target database server.
      </p>


function_name: PDO.prepare
name: options
type: array
initializer: []
description:
<p class="para">
       This array holds one or more key=&gt;value pairs to set
       attribute values for the PDOStatement object that this method
       returns. You would most commonly use this to set the
       <code class="literal">PDO::ATTR_CURSOR</code> value to
       <code class="literal">PDO::CURSOR_SCROLL</code> to request a scrollable cursor.
       Some drivers have driver-specific options that may be set at
       prepare-time.
      </p>


function_name: PDO.query
name: query
type: string
description:
<p class="para">
        The SQL statement to prepare and execute.
       </p>
       <p class="para">
        If the SQL contains placeholders,  <span class="methodname">PDO::prepare</span> and 
         <span class="methodname">PDOStatement::execute</span> must be used instead.
        Alternatively, the SQL can be prepared manually before calling 
         <span class="methodname">PDO::query</span>, with the data properly formatted using
         <span class="methodname">PDO::quote</span> if the driver supports it.
       </p>


function_name: PDO.query
name: fetchMode
type: null
initializer: PDO::FETCH_INTO
description:
<p class="para">
        The default fetch mode for the returned <span class="classname">PDOStatement</span>.
        It must be one of the <a href="pdo.constants.html" class="link"><code class="literal">PDO::FETCH_*</code></a> constants.
       </p>
       <p class="para">
        If this argument is passed to the function, the remaining arguments
        will be treated as though  <span class="methodname">PDOStatement::setFetchMode</span>
        was called on the resultant statement object.
        The subsequent arguments vary depending on the selected fetch mode.
       </p>


function_name: PDO.quote
name: type
type: int
initializer: PDO::PARAM_STR
description:
<p class="para">
        Provides a hint to  the type of data for drivers that have alternate quoting
        styles. For example <strong><code>PDO_PARAM_LOB</code></strong> will tell the driver to
        escape binary data.
       </p>


function_name: PDO.setAttribute
name: value
type: mixed
description:
<p class="para">
       The value to set the <code class="parameter">attribute</code>,
       might require a specific type depending on the attribute.
      </p>


function_name: PDOStatement.bindColumn
name: column
type: int
description:
<p class="para">
       Number of the column (1-indexed) or name of the column in the result set.
       If using the column name, be aware that the name should match the
       case of the column, as returned by the driver.
      </p>


function_name: PDOStatement.bindColumn
name: type
type: int
initializer: PDO::PARAM_STR
description:
<p class="para">
       Data type of the parameter, specified by the <a href="pdo.constants.html" class="link"><code class="literal">PDO::PARAM_*</code>
       constants</a>.
      </p>


function_name: PDOStatement.bindParam
name: param
type: int
description:
<p class="para">
        Parameter identifier. For a prepared statement using named
        placeholders, this will be a parameter name of the form
        <var class="varname">:name</var>. For a prepared statement using
        question mark placeholders, this will be the 1-indexed position of
        the parameter. 
       </p>


function_name: PDOStatement.bindParam
name: var
type: mixed
description:
<p class="para">
        Name of the PHP variable to bind to the SQL statement parameter.
       </p>


function_name: PDOStatement.bindParam
name: type
type: int
initializer: PDO::PARAM_STR
description:
<p class="para">
        Explicit data type for the parameter using the <a href="pdo.constants.html" class="link"><code class="literal">PDO::PARAM_*</code>
        constants</a>.
        To return an INOUT parameter from a stored procedure, 
        use the bitwise OR operator to set the <strong><code><a href="pdo.constants.html#pdo.constants.param-input-output">PDO::PARAM_INPUT_OUTPUT</a></code></strong> bits
        for the <code class="parameter">type</code> parameter.
       </p>


function_name: PDOStatement.bindParam
name: maxLength
type: int
description:
<p class="para">
        Length of the data type. To indicate that a parameter is an OUT
        parameter from a stored procedure, you must explicitly set the
        length.
        Meaningful only when <code class="parameter">type</code> parameter is <strong><code><a href="pdo.constants.html#pdo.constants.param-input-output">PDO::PARAM_INPUT_OUTPUT</a></code></strong>.
       </p>


function_name: PDOStatement.bindValue
name: type
type: int
initializer: PDO::PARAM_STR
description:
<p class="para">
        Explicit data type for the parameter using the <a href="pdo.constants.html" class="link"><code class="literal">PDO::PARAM_*</code>
        constants</a>.
       </p>


function_name: PDOStatement.execute
name: params
type: null
description:
<p class="para">
       An array of values with as many elements as there are bound
       parameters in the SQL statement being executed.
       All values are treated as <strong><code><a href="pdo.constants.html#pdo.constants.param-str">PDO::PARAM_STR</a></code></strong>.
      </p>
      <p class="para">
       Multiple values cannot be bound to a single parameter; for example,
       it is not allowed to bind two values to a single named parameter in an IN()
       clause.
      </p>
      <p class="para">
       Binding more values than specified is not possible; if more keys exist in 
       <code class="parameter">params</code> than in the SQL specified 
       in the  <span class="methodname">PDO::prepare</span>, then the statement will 
       fail and an error is emitted.
      </p>


function_name: PDOStatement.fetch
name: mode
type: int
initializer: PDO::FETCH_DEFAULT
description:
<p class="para">
         <code class="literal">PDO::FETCH_PROPS_LATE</code>: when used with
         <code class="literal">PDO::FETCH_CLASS</code>, the constructor of the class is
         called before the properties are assigned from the respective column
         values.
        </p>


function_name: PDOStatement.fetch
name: cursorOrientation
type: int
initializer: PDO::FETCH_ORI_NEXT
description:
<p class="para">
       For a PDOStatement object representing a scrollable cursor, this
       value determines which row will be returned to the caller. This value
       must be one of the <code class="literal">PDO::FETCH_ORI_*</code> constants,
       defaulting to <code class="literal">PDO::FETCH_ORI_NEXT</code>. To request a
       scrollable cursor for your PDOStatement object, you must set the
       <code class="literal">PDO::ATTR_CURSOR</code> attribute to
       <code class="literal">PDO::CURSOR_SCROLL</code> when you prepare the SQL
       statement with  <span class="methodname">PDO::prepare</span>.
      </p>


function_name: PDOStatement.fetch
name: cursorOffset
type: int
description:
<p class="para">
       For a PDOStatement object representing a scrollable cursor for which
       the <code class="parameter">cursorOrientation</code> parameter is set to
       <code class="literal">PDO::FETCH_ORI_ABS</code>, this value specifies the
       absolute number of the row in the result set that shall be fetched.
      </p>
      <p class="para">
       For a PDOStatement object representing a scrollable cursor for which
       the <code class="parameter">cursorOrientation</code> parameter is set to
       <code class="literal">PDO::FETCH_ORI_REL</code>, this value specifies the
       row to fetch relative to the cursor position before
        <span class="methodname">PDOStatement::fetch</span> was called.
      </p>


function_name: PDOStatement.fetchAll
name: mode
type: int
initializer: PDO::FETCH_FUNC
description:
<p class="para">
       Controls the contents of the returned array as documented in
        <span class="methodname">PDOStatement::fetch</span>.
       Defaults to value of <strong><code><a href="pdo.constants.html#pdo.constants.attr-default-fetch-mode">PDO::ATTR_DEFAULT_FETCH_MODE</a></code></strong>
       (which defaults to <strong><code><a href="pdo.constants.html#pdo.constants.fetch-both">PDO::FETCH_BOTH</a></code></strong>)
      </p>
      <p class="para">
       To return an array consisting of all values of a single column from
       the result set, specify <strong><code><a href="pdo.constants.html#pdo.constants.fetch-column">PDO::FETCH_COLUMN</a></code></strong>. You
       can specify which column you want with the
       <code class="parameter">column</code> parameter.
      </p>
      <p class="para">
       To fetch only the unique values of a single column from the result set,
       bitwise-OR <strong><code><a href="pdo.constants.html#pdo.constants.fetch-column">PDO::FETCH_COLUMN</a></code></strong> with
       <strong><code><a href="pdo.constants.html#pdo.constants.fetch-unique">PDO::FETCH_UNIQUE</a></code></strong>.
      </p>
      <p class="para">
       To return an associative array grouped by the values of a specified
       column, bitwise-OR <strong><code><a href="pdo.constants.html#pdo.constants.fetch-column">PDO::FETCH_COLUMN</a></code></strong> with
       <strong><code><a href="pdo.constants.html#pdo.constants.fetch-group">PDO::FETCH_GROUP</a></code></strong>.
      </p>


function_name: PDOStatement.fetchAll
name: column
type: int
description:
<p class="para">
       Used with <strong><code><a href="pdo.constants.html#pdo.constants.fetch-column">PDO::FETCH_COLUMN</a></code></strong>. Returns the indicated
       0-indexed column.
      </p>


function_name: PDOStatement.fetchAll
name: class
type: string
description:
<p class="para">
       Used with <strong><code><a href="pdo.constants.html#pdo.constants.fetch-class">PDO::FETCH_CLASS</a></code></strong>. Returns instances of the specified
       class, mapping the columns of each row to named properties in the class.
      </p>


function_name: PDOStatement.fetchAll
name: constructorArgs
type: null
description:
<p class="para">
       Arguments of custom class constructor when the <code class="parameter">mode</code> 
       parameter is <strong><code><a href="pdo.constants.html#pdo.constants.fetch-class">PDO::FETCH_CLASS</a></code></strong>.
      </p>


function_name: PDOStatement.fetchAll
name: callback
type: callable
description:
<p class="para">
       Used with <strong><code><a href="pdo.constants.html#pdo.constants.fetch-func">PDO::FETCH_FUNC</a></code></strong>. Returns the results of calling the
       specified function, using each row&#039;s columns as parameters in the call.
      </p>


function_name: PDOStatement.fetchColumn
name: column
type: int
description:
<p class="para">
       0-indexed number of the column you wish to retrieve from the row. If
       no value is supplied,  <span class="methodname">PDOStatement::fetchColumn</span>
       fetches the first column.
      </p>


function_name: PDOStatement.setFetchMode
name: mode
type: int
initializer: PDO::FETCH_INTO
description:
<p class="para">
       The fetch mode must be one of the
       <a href="pdo.constants.html" class="link"><strong><code>PDO::FETCH_<span class="replaceable">*</span></code></strong></a>
       constants.
      </p>


function_name: PDO.pgsqlCopyFromArray
name: rows
type: array
description:
<p class="para">
       Array of strings with fields separated by <code class="parameter">delimiter</code>
      </p>


function_name: PDO.pgsqlCopyFromFile
name: delimiter
type: string
initializer: "\t"
description:
<p class="para">
       Delimiter used in file specified by <code class="parameter">filename</code>
      </p>


function_name: PDO.pgsqlGetNotify
name: result_type
type: int
description:
<p class="para">
       The format the result set should be returned as, represented as a
       <a href="pdostatement.fetch.html" class="link"><strong><code>PDO::FETCH_*</code></strong></a>
       constant.
      </p>


function_name: PDO.pgsqlLOBOpen
name: mode
type: string
initializer: "rb"
description:
<p class="para">
       If mode is <code class="literal">r</code>, open the stream for reading.
       If mode is <code class="literal">w</code>, open the stream for writing.
      </p>


function_name: PDO.sqliteCreateAggregate
name: step_func
type: callable
description:
<p class="para">
       Callback function called for each row of the result set. Your PHP
       function should accumulate the result and store it in the aggregation
       context.
      </p>
      <p class="para">
       This function need to be defined as:
       <div class="methodsynopsis dc-description"><span class="type">mixed</span> <span class="methodname"><span class="replaceable">step</span></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type">mixed</span> <code class="parameter">$context</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type">int</span> <code class="parameter">$rownumber</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type">mixed</span> <code class="parameter">$value</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type">mixed</span> <code class="parameter">...$values</code></span><br>)</div>

       <dl>
        
         <dt><code class="parameter">context</code></dt>
         <dd>
          <p class="para">
           <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong> 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.
          </p>
         </dd>
        
        
         <dt><code class="parameter">rownumber</code></dt>
         <dd>
          <p class="para">
           The current row number.
          </p>
         </dd>
        
        
         <dt><code class="parameter">value</code></dt>
         <dd>
          <p class="para">
           The first argument passed to the aggregate.
          </p>
         </dd>
        
        
         <dt><code class="parameter">values</code></dt>
         <dd>
          <p class="para">
           Further arguments passed to the aggregate.
          </p>
         </dd>
        
       </dl>
       The return value of this function will be used as the
       <code class="parameter">context</code> argument in the next call of the step or
       finalize functions.
      </p>


function_name: PDO.sqliteCreateAggregate
name: finalize_func
type: callable
description:
<p class="para">
       Callback function to aggregate the &quot;stepped&quot; 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. <a href="language.types.intro.html" class="link">scalar type</a>).
      </p>
      <p class="para">
       This function need to be defined as:
       <div class="methodsynopsis dc-description"><span class="type">mixed</span> <span class="methodname"><span class="replaceable">fini</span></span>(<span class="methodparam"><span class="type">mixed</span> <code class="parameter">$context</code></span>, <span class="methodparam"><span class="type">int</span> <code class="parameter">$rowcount</code></span>)</div>

       <dl>
        
         <dt><code class="parameter">context</code></dt>
         <dd>
          <p class="para">
           Holds the return value from the very last call to the step function.
          </p>
         </dd>
        
        
         <dt><code class="parameter">rowcount</code></dt>
         <dd>
          <p class="para">
           Holds the number of rows over which the aggregate was performed.
          </p>
         </dd>
        
       </dl>
       The return value of this function will be used as the return value for
       the aggregate.
      </p>


function_name: PDO.sqliteCreateAggregate
name: num_args
type: int
description:
<p class="para">
       Hint to the SQLite parser if the callback function accepts a
       predetermined number of arguments.
      </p>


function_name: PDO.sqliteCreateCollation
name: callback
type: callable
description:
<p class="para">
      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.
      </p>
      <p class="para">
       This function need to be defined as:
       <div class="methodsynopsis dc-description"><span class="type">int</span> <span class="methodname"><span class="replaceable">collation</span></span>(<span class="methodparam"><span class="type">string</span> <code class="parameter">$string1</code></span>, <span class="methodparam"><span class="type">string</span> <code class="parameter">$string2</code></span>)</div>

      </p>


function_name: PDO.sqliteCreateFunction
name: callback
type: callable
description:
<p class="para">
       Callback function to handle the defined SQL function.
      </p>
      <blockquote class="note"><p><strong class="note">Note</strong>: 
       <span class="simpara">
        Callback functions should return a type understood by SQLite (i.e.
        <a href="language.types.intro.html" class="link">scalar type</a>).
       </span>
      </p></blockquote>
      <p class="para">
       This function need to be defined as:
       <div class="methodsynopsis dc-description">
        <span class="type">mixed</span> <span class="methodname"><span class="replaceable">callback</span></span>(<span class="methodparam"><span class="type">mixed</span> <code class="parameter">$value</code></span>, <span class="methodparam"><span class="type">mixed</span> <code class="parameter">...$values</code></span>)</div>

       <dl>
        
         <dt><code class="parameter">value</code></dt>
         <dd>
          <p class="para">
           The first argument passed to the SQL function.
          </p>
         </dd>
        
        
         <dt><code class="parameter">values</code></dt>
         <dd>
          <p class="para">
           Further arguments passed to the SQL function.
          </p>
         </dd>
        
       </dl>
      </p>


function_name: PDO.sqliteCreateFunction
name: num_args
type: int
initializer: -1
description:
<p class="para">
       The number of arguments that the SQL function takes. If
       this parameter is <code class="literal">-1</code>, then the SQL function may take
       any number of arguments.
      </p>


function_name: PDO.sqliteCreateFunction
name: flags
type: int
description:
<p class="para">
       A bitwise conjunction of flags. Currently, only
       <strong><code><a href="pdo.constants.html#pdo.constants.sqlite-deterministic">PDO::SQLITE_DETERMINISTIC</a></code></strong> is supported, which specifies
       that the function always returns the same result given the same inputs
       within a single SQL statement.
      </p>


function_name: cubrid_bind
name: req_identifier
type: resource
description:
<p class="para">Request identifier as a result of
    <span class="function">cubrid_prepare</span>.</p>


function_name: cubrid_bind
name: bind_value_type
type: string
description:
<p class="para">A type of the value to bind. (It is omitted by default.
    Thus, the system internally uses string by default. However, you need to
    specify the exact type of the value as an argument when they are NCHAR,
    BIT, or BLOB/CLOB).</p>


function_name: cubrid_connect_with_url
name: new_link
type: bool
description:
<p class="para">If a second call is made to
       <span class="function">cubrid_connect_with_url</span> with the same arguments,
       no new connection will be established, but instead, the connection
       identifier of the already opened connection will be returned. The
       <code class="parameter">new_link</code> parameter modifies this behavior and
       makes <span class="function">cubrid_connect_with_url</span> always open a new
       connection, even if <span class="function">cubrid_connect_with_url</span> was
       called before with the same parameters.</p>


function_name: cubrid_connect
name: port
type: int
description:
<p class="para">Port number of CUBRID CAS server (BROKER_PORT configured in $CUBRID/conf/cubrid_broker.conf).</p>


function_name: cubrid_connect
name: userid
type: string
description:
<p class="para">User name for the database. If not given, the default
      value is &quot;public&quot;.</p>


function_name: cubrid_connect
name: new_link
type: bool
description:
<p class="para">If a second call is made to
      <span class="function">cubrid_connect</span> with the same arguments, no new
      connection will be established, but instead, the connection identifier
      of the already opened connection will be returned. The
      <code class="parameter">new_link</code> parameter modifies this behavior and
      makes <span class="function">cubrid_connect</span> always open a new connection,
      even if <span class="function">cubrid_connect</span> was called before with the
      same parameters.</p>


function_name: cubrid_execute
name: option
type: int
description:
<p class="para">Query execution option <strong><code>CUBRID_INCLUDE_OID</code></strong>, <strong><code>CUBRID_ASYNC</code></strong>, <strong><code>CUBRID_EXEC_QUERY_ALL</code></strong>.</p>


function_name: cubrid_fetch
name: result
type: resource
description:
<p class="para"><code class="parameter">result</code> comes from a call to <span class="function">cubrid_execute</span></p>


function_name: cubrid_fetch
name: type
type: int
initializer: CUBRID_BOTH
description:
<p class="para">Array type of the fetched result CUBRID_NUM, CUBRID_ASSOC,
    CUBRID_BOTH, CUBRID_OBJECT. If you want to operate the lob object, you can
    use CUBRID_LOB.</p>


function_name: cubrid_get_db_parameter
name: conn_identifier
type: resource
description:
<p class="para">
      The CUBRID connection. If the connection identifier is not specified,
      the last link opened by <span class="function">cubrid_connect</span> is assumed. 
    </p>


function_name: cubrid_insert_id
name: conn_identifier
type: resource
description:
<p class="para">
      The connection identifier previously obtained by a call to
      <span class="function">cubrid_connect</span>.
    </p>


function_name: cubrid_lob_close
name: lob_identifier_array
type: array
description:
<p class="para">LOB identifier array returned from <span class="function">cubrid_lob_get</span>.</p>


function_name: cubrid_lob2_bind
name: bind_value_type
type: string
description:
<p class="para">It must be &quot;BLOB&quot; or &quot;CLOB&quot; and it won&#039;t be case-sensitive. If it not be given, the default value is &quot;BLOB&quot;.</p>


function_name: cubrid_lob2_close
name: lob_identifier
type: resource
description:
<p class="para">Lob identifier as a result of <span class="function">cubrid_lob2_new</span> or get from the result set.</p>


function_name: cubrid_lob2_new
name: conn_identifier
type: resource
description:
<p class="para">Connection identifier. If the connection identifier is not specified, 
      the last connection opened by <span class="function">cubrid_connect</span> or 
      <span class="function">cubrid_connect_with_url</span> is assumed.</p>


function_name: cubrid_lob2_new
name: type
type: string
initializer: "BLOB"
description:
<p class="para">It may be &quot;BLOB&quot; or &quot;CLOB&quot;, it won&#039;t be case-sensitive. The default value is &quot;BLOB&quot;.</p>


function_name: cubrid_lob2_seek64
name: origin
type: int
initializer: CUBRID_CURSOR_CURRENT
description:
<p class="para">This parameter can be the following values:</p>
     <p class="para">CUBRID_CURSOR_FIRST: move forward from the first beginning.</p>
     <p class="para">CUBRID_CURSOR_CURRENT: move forward or backward from the current position.</p>
     <p class="para">CUBRID_CURSOR_LAST: move backward at the end of LOB object.</p>


function_name: cubrid_move_cursor
name: origin
type: int
initializer: CUBRID_CURSOR_CURRENT
description:
<p class="para">Location where you want to move the cursor from <strong><code>CUBRID_CURSOR_FIRST</code></strong>, <strong><code>CUBRID_CURSOR_CURRENT</code></strong>, <strong><code>CUBRID_CURSOR_LAST</code></strong>.</p>


function_name: cubrid_num_rows
name: result
type: resource
description:
<p class="para"><code class="parameter">result</code> comes from a call to
    <span class="function">cubrid_execute</span>, <span class="function">cubrid_query</span> and
    <span class="function">cubrid_prepare</span></p>


function_name: cubrid_set_autocommit
name: mode
type: bool
description:
<p class="para">Auto-commit mode. The following constants can be used:</p>
     <p class="para">
     <ul class="simplelist">
       <li><strong><code>CUBRID_AUTOCOMMIT_FALSE</code></strong></li>
       <li><strong><code>CUBRID_AUTOCOMMIT_TRUE</code></strong></li>
     </ul>
     </p>


function_name: cubrid_set_db_parameter
name: conn_identifier
type: resource
description:
<p class="para">
      The CUBRID connection. If the connection identifier is not specified,
      the last link opened by <span class="function">cubrid_connect</span> is assumed.
     </p>


function_name: cubrid_affected_rows
name: conn_identifier
type: resource
description:
<p class="para">The CUBRID connection. If the connection identifier is not
      specified, the last link opend by <span class="function">cubrid_connect</span> is
    assumed.</p>


function_name: cubrid_affected_rows
name: req_identifier
type: resource
description:
<p class="para">
        Request Identifier, could be returned from either <span class="function">cubrid_prepare</span> or <span class="function">cubrid_execute</span>. 
        If the request identifier is not specified, the last identifier requested by 
        <span class="function">cubrid_prepare</span> or <span class="function">cubrid_execute</span> is assumed.
      </p>


function_name: cubrid_client_encoding
name: conn_identifier
type: resource
description:
<p class="para">The CUBRID connection. If the connection identifier is not specified, the last link opened by <span class="function">cubrid_connect</span> is assumed. </p>


function_name: cubrid_close
name: conn_identifier
type: resource
description:
<p class="para">The CUBRID connection identifier. If the connection identifier is not specified, the last connection opened by <span class="function">cubrid_connect</span> is assumed.</p>


function_name: cubrid_db_name
name: result
type: array
description:
<p class="para">
       The result pointer from a call to <span class="function">cubrid_list_dbs</span>.
      </p>


function_name: cubrid_errno
name: conn_identifier
type: resource
description:
<p class="para">
       The CUBRID connection identifier. If the connection identifier is not
       specified, the last connection opened by
       <span class="function">cubrid_connect</span> is assumed.
      </p>


function_name: cubrid_fetch_array
name: result
type: resource
description:
<p class="para"><code class="parameter">Result</code> comes from a call to <span class="function">cubrid_execute</span></p>


function_name: cubrid_fetch_array
name: type
type: int
initializer: CUBRID_BOTH
description:
<p class="para">Array type of the fetched result CUBRID_NUM, CUBRID_ASSOC,
      CUBRID_BOTH. If you need to operate the lob object, you can use CUBRID_LOB.</p>


function_name: cubrid_fetch_assoc
name: type
type: int
description:
<p class="para">Type can only be CUBRID_LOB, this parameter will be used
      only when you need to operate the lob object.</p>


function_name: cubrid_fetch_field
name: field_offset
type: int
description:
<p class="para">
     The numerical field offset. If the field offset is not specified, the
     next field (that was not yet retrieved by this function) is retrieved.
     The <code class="parameter">field_offset</code> starts at 0.
    </p>


function_name: cubrid_fetch_object
name: class_name
type: string
description:
<p class="para">
        The name of the class to instantiate. If not specified, a
        <span class="classname">stdClass</span> (stdClass is PHP&#039;s generic empty class
        that&#039;s used when casting other types to objects) object is returned.
       </p>


function_name: cubrid_fetch_object
name: params
type: array
description:
<p class="para">
        An optional <span class="type">array</span> of parameters to pass to the constructor
        for <code class="parameter">class_name</code> objects.
       </p>


function_name: cubrid_fetch_object
name: type
type: int
description:
<p class="para">
        Type can only be CUBRID_LOB, this parameter will be used only when you
        need to operate the lob object.
       </p>


function_name: cubrid_field_flags
name: field_offset
type: int
description:
<p class="para">
     The numerical field offset. The <code class="parameter">field_offset</code>
     starts at 0. If <code class="parameter">field_offset</code> does not exist, an
     error of level <strong><code><a href="errorfunc.constants.html#constant.e-warning">E_WARNING</a></code></strong> is also issued.
    </p>


function_name: cubrid_field_len
name: field_offset
type: int
description:
<p class="para">The numerical field offset. The <code class="parameter">field_offset</code> starts at 0. If <code class="parameter">field_offset</code> does not exist, an error of level <strong><code><a href="errorfunc.constants.html#constant.e-warning">E_WARNING</a></code></strong> is also issued.</p>


function_name: cubrid_field_seek
name: field_offset
type: int
description:
<p class="para">
       The numerical field offset. The <code class="parameter">field_offset</code>
       starts at 0. If <code class="parameter">field_offset</code> does not exist, an
       error of level <strong><code><a href="errorfunc.constants.html#constant.e-warning">E_WARNING</a></code></strong> is also issued.
     </p>


function_name: cubrid_field_table
name: result
type: resource
description:
<p class="para"><code class="parameter">result</code> comes from a call to
     <span class="function">cubrid_execute</span></p>


function_name: cubrid_num_fields
name: result
type: resource
description:
<p class="para"><code class="parameter">result</code> comes from a call to
      <span class="function">cubrid_execute</span>, <span class="function">cubrid_query</span>
      and <span class="function">cubrid_prepare</span></p>


function_name: cubrid_query
name: query
type: string
description:
<p class="para">
       An SQL query
      </p>
      <p class="para">
       Data inside the query should be <a href="function.cubrid-real-escape-string.html" class="link">properly escaped</a>.
      </p>


function_name: cubrid_query
name: conn_identifier
type: resource
description:
<p class="para">
       The CUBRID connection. If the connection identifier is not specified,
       the last connection opened by <span class="function">cubrid_connect</span> is
       assumed.
      </p>


function_name: cubrid_real_escape_string
name: conn_identifier
type: resource
description:
<p class="para">
     The CUBRID connection. If the connection identifier is not specified, the
     last connection opened by <span class="function">cubrid_connect</span> is assumed.
     </p>


function_name: cubrid_result
name: field
type: mixed
description:
<p class="para">
    The name or offset of the <code class="parameter">field</code> being retrieved. It
    can be the field&#039;s offset, the field&#039;s name, or the field&#039;s table dot
    field name (tablename.fieldname). If the column name has been aliased
    (&#039;select foo as bar from...&#039;), use the alias instead of the column name.
    If undefined, the first field is retrieved.
  </p>


function_name: cubrid_unbuffered_query
name: conn_identifier
type: resource
description:
<p class="para">The CUBRID connection. If the connection identifier is not specified, the last connection opened by <span class="function">cubrid_connect</span> is assumed.</p>


function_name: dbase_add_record
name: database
type: resource
description:
<p class="para">
       The database resource, returned by <span class="function">dbase_open</span>
       or <span class="function">dbase_create</span>.
      </p>


function_name: dbase_add_record
name: data
type: array
description:
<p class="para">
       An indexed array of data. The number of items must be equal to the number of 
       fields in the database, otherwise <span class="function">dbase_add_record</span>
       will fail.
      </p>
      <blockquote class="note"><p><strong class="note">Note</strong>: 
       <p class="para">
        If you&#039;re using <span class="function">dbase_get_record</span> return value for this
        parameter, remember to reset the key named <code class="literal">deleted</code>.
       </p>
      </p></blockquote>


function_name: dbase_create
name: path
type: string
description:
<p class="para">
       The path of the database. It can be a relative or absolute path to
       the file where dBase will store your data.
      </p>


function_name: dbase_create
name: fields
type: array
description:
<p class="para">
       An array of arrays, each array describing the format of one field of the
       database. Each field consists of a name, a character indicating the field
       type, and optionally, a length, a precision and a nullable flag.
       The supported field types are listed in the <a href="intro.dbase.html" class="link">introduction section</a>.
      </p>
      <blockquote class="note"><p><strong class="note">Note</strong>: 
       <p class="para">
        The fieldnames are limited in length and must not exceed 10 chars.
       </p>
      </p></blockquote>


function_name: dbase_create
name: type
type: int
initializer: DBASE_TYPE_DBASE
description:
<p class="para">
       The type of database to be created. Either
       <strong><code><a href="dbase.constants.html#constant.dbase-type-dbase">DBASE_TYPE_DBASE</a></code></strong> or
       <strong><code><a href="dbase.constants.html#constant.dbase-type-foxpro">DBASE_TYPE_FOXPRO</a></code></strong>.
      </p>


function_name: dbase_delete_record
name: number
type: int
description:
<p class="para">
       An integer which spans from 1 to the number of records in the database
       (as returned by <span class="function">dbase_numrecords</span>).
      </p>


function_name: dbase_get_record_with_names
name: number
type: int
description:
<p class="para">
       The index of the record between <code class="literal">1</code> and
       <code class="literal">dbase_numrecords($dbase_identifier)</code>.
      </p>


function_name: dbase_open
name: mode
type: int
description:
<p class="para">
       An integer which correspond to those for the <strong class="command">open()</strong> 
       system call (Typically 0 means read-only, 1 means write-only, and 2 
       means read and write).
      </p>
      <blockquote class="note"><p><strong class="note">Note</strong>: 
       <p class="para">
        You can&#039;t open a dBase file in write-only mode as the function will
        fail to read the headers information and thus you can&#039;t use 1 as
        <code class="parameter">mode</code>.
       </p>
      </p></blockquote>
      <p class="para">
       As of dbase 7.0.0 you can use <strong><code><a href="dbase.constants.html#constant.dbase-rdonly">DBASE_RDONLY</a></code></strong>
       and <strong><code><a href="dbase.constants.html#constant.dbase-rdwr">DBASE_RDWR</a></code></strong>, respectively, to specify the
       <code class="parameter">mode</code>.
      </p>


function_name: dbase_replace_record
name: data
type: array
description:
<p class="para">
       An indexed array of data. The number of items must be equal to the
       number of fields in the database, otherwise
       <span class="function">dbase_replace_record</span> will fail.
      </p>
      <blockquote class="note"><p><strong class="note">Note</strong>: 
       <p class="para">
        If you&#039;re using <span class="function">dbase_get_record</span> return value for this
        parameter, remember to reset the key named <code class="literal">deleted</code>.
       </p>
      </p></blockquote>


function_name: fbird_blob_cancel
name: blob_handle
type: resource
description:
<p class="para">
       A BLOB handle opened with <span class="function">fbird_blob_create</span>.
      </p>


function_name: ibase_affected_rows
name: link_identifier
type: resource
description:
<p class="para">
       A transaction context. If <code class="parameter">link_identifier</code> is a
       connection resource, its default transaction is used.
      </p>


function_name: ibase_backup
name: source_db
type: string
description:
<p class="para">
       The absolute file path to the database on the database server. You can also use a database alias.
      </p>


function_name: ibase_backup
name: options
type: int
description:
<p class="para">
       Additional options to pass to the database server for backup.
       The <code class="parameter">options</code> parameter can be a combination 
       of the following constants:
       <strong><code><a href="ibase.constants.html#constant.ibase-bkp-ignore-checksums">IBASE_BKP_IGNORE_CHECKSUMS</a></code></strong>,
       <strong><code><a href="ibase.constants.html#constant.ibase-bkp-ignore-limbo">IBASE_BKP_IGNORE_LIMBO</a></code></strong>, 
       <strong><code><a href="ibase.constants.html#constant.ibase-bkp-metadata-only">IBASE_BKP_METADATA_ONLY</a></code></strong>,
       <strong><code><a href="ibase.constants.html#constant.ibase-bkp-no-garbage-collect">IBASE_BKP_NO_GARBAGE_COLLECT</a></code></strong>,
       <strong><code><a href="ibase.constants.html#constant.ibase-bkp-old-descriptions">IBASE_BKP_OLD_DESCRIPTIONS</a></code></strong>,
       <strong><code><a href="ibase.constants.html#constant.ibase-bkp-non-transportable">IBASE_BKP_NON_TRANSPORTABLE</a></code></strong> or
       <strong><code><a href="ibase.constants.html#constant.ibase-bkp-convert">IBASE_BKP_CONVERT</a></code></strong>.
       Read the section about <a href="ibase.constants.html" class="xref">Predefined Constants</a> for further information.
      </p>


function_name: ibase_backup
name: verbose
type: bool
description:
<p class="para">
       Since the backup process is done on the database server, you don&#039;t have any chance
       to get its output. This argument is useless.
      </p>


function_name: ibase_blob_add
name: blob_handle
type: resource
description:
<p class="para">
       A blob handle opened with <span class="function">ibase_blob_create</span>.
      </p>


function_name: ibase_blob_cancel
name: blob_handle
type: resource
description:
<p class="para">
       A BLOB handle opened with <span class="function">ibase_blob_create</span>.
      </p>


function_name: ibase_blob_close
name: blob_handle
type: resource
description:
<p class="para">
       A BLOB handle opened with <span class="function">ibase_blob_create</span> or
       <span class="function">ibase_blob_open</span>.
      </p>


function_name: ibase_blob_create
name: link_identifier
type: resource
description:
<p class="para">
       An InterBase link identifier. If omitted, the last opened link is
       assumed.
      </p>


function_name: ibase_blob_get
name: blob_handle
type: resource
description:
<p class="para">
       A BLOB handle opened with <span class="function">ibase_blob_open</span>.
      </p>


function_name: ibase_blob_import
name: file_handle
type: resource
description:
<p class="para">
       The file handle is a handle returned by <span class="function">fopen</span>.
      </p>


function_name: ibase_close
name: connection_id
type: resource
description:
<p class="para">
       An InterBase link identifier returned from
       <span class="function">ibase_connect</span>. If omitted, the last opened link
       is assumed.
      </p>


function_name: ibase_commit_ret
name: link_or_trans_identifier
type: resource
description:
<p class="para">
       If called without an argument, this function commits the default
       transaction of the default link. If the argument is a connection
       identifier, the default transaction of the corresponding connection
       will be committed. If the argument is a transaction identifier, the
       corresponding transaction will be committed. The transaction context
       will be retained, so statements executed from within this transaction
       will not be invalidated.
      </p>


function_name: ibase_commit
name: link_or_trans_identifier
type: resource
description:
<p class="para">
       If called without an argument, this function commits the default
       transaction of the default link. If the argument is a connection
       identifier, the default transaction of the corresponding connection
       will be committed. If the argument is a transaction identifier, the
       corresponding transaction will be committed.
      </p>


function_name: ibase_connect
name: database
type: string
description:
<p class="para">
       The <code class="parameter">database</code> argument has to be a valid path to
       database file on the server it resides on. If the server is not local,
       it must be prefixed with either &#039;hostname:&#039; (TCP/IP), &#039;hostname/port:&#039;
       (TCP/IP with interbase server on custom TCP port), &#039;//hostname/&#039;
       (NetBEUI), depending on the connection
       protocol used.   
      </p>


function_name: ibase_connect
name: username
type: string
description:
<p class="para">
       The user name. Can be set with the
       <code class="literal">ibase.default_user</code> <var class="filename">php.ini</var> directive.
      </p>


function_name: ibase_connect
name: password
type: string
description:
<p class="para">
       The password for <code class="parameter">username</code>. Can be set with the
       <code class="literal">ibase.default_password</code> <var class="filename">php.ini</var> directive.
      </p>


function_name: ibase_connect
name: charset
type: string
description:
<p class="para">
       <code class="parameter">charset</code> is the default character set for a
       database.
      </p>


function_name: ibase_connect
name: buffers
type: int
description:
<p class="para">
       <code class="parameter">buffers</code> is the number of database buffers to
       allocate for the server-side cache. If 0 or omitted, server chooses
       its own default.
      </p>


function_name: ibase_connect
name: dialect
type: int
description:
<p class="para">
       <code class="parameter">dialect</code> selects the default SQL dialect for any
       statement executed within a connection, and it defaults to the highest
       one supported by client libraries.
      </p>


function_name: ibase_execute
name: query
type: resource
description:
<p class="para">
       An InterBase query prepared by <span class="function">ibase_prepare</span>.
      </p>


function_name: ibase_fetch_assoc
name: fetch_flag
type: int
description:
<p class="para">
       <code class="parameter">fetch_flag</code> is a combination of the constants
       <strong><code>IBASE_TEXT</code></strong> and <strong><code>IBASE_UNIXTIME</code></strong>
       ORed together. Passing <strong><code>IBASE_TEXT</code></strong> will cause this
       function to return BLOB contents instead of BLOB ids. Passing
       <strong><code>IBASE_UNIXTIME</code></strong> will cause this function to return
       date/time values as Unix timestamps instead of as formatted strings.
      </p>


function_name: ibase_fetch_object
name: result_id
type: resource
description:
<p class="para">
       An InterBase result identifier obtained either by
       <span class="function">ibase_query</span> or <span class="function">ibase_execute</span>.
      </p>


function_name: ibase_free_event_handler
name: event
type: resource
description:
<p class="para">
       An event resource, created by
       <span class="function">ibase_set_event_handler</span>.
      </p>


function_name: ibase_free_query
name: query
type: resource
description:
<p class="para">
       A query prepared with <span class="function">ibase_prepare</span>.
      </p>


function_name: ibase_free_result
name: result_identifier
type: resource
description:
<p class="para">
       A result set created by <span class="function">ibase_query</span> or
       <span class="function">ibase_execute</span>.
      </p>


function_name: ibase_pconnect
name: database
type: string
description:
<p class="para">
       The <code class="parameter">database</code> argument has to be a valid path to
       database file on the server it resides on. If the server is not local,
       it must be prefixed with either &#039;hostname:&#039; (TCP/IP), &#039;//hostname/&#039;
       (NetBEUI) or &#039;hostname@&#039; (IPX/SPX), depending on the connection
       protocol used.   
      </p>


function_name: ibase_pconnect
name: dialect
type: int
description:
<p class="para">
       <code class="parameter">dialect</code> selects the default SQL dialect for any
       statement executed within a connection, and it defaults to the highest
       one supported by client libraries. Functional only with InterBase 6
       and up.
      </p>


function_name: ibase_prepare
name: trans
type: string
description:
<p class="para">
       An InterBase transaction handle the query should be associated with.
       If omitted, the default transaction of the connection is assumed.
      </p>


function_name: ibase_restore
name: source_file
type: string
description:
<p class="para">
       The absolute path on the server where the backup file is located.
      </p>


function_name: ibase_restore
name: dest_db
type: string
description:
<p class="para">
       The path to create the new database on the server. You can also use database alias.
      </p>


function_name: ibase_restore
name: options
type: int
description:
<p class="para">
       Additional options to pass to the database server for restore.
       The <code class="parameter">options</code> parameter can be a combination 
       of the following constants:
       <strong><code><a href="ibase.constants.html#constant.ibase-res-deactivate-idx">IBASE_RES_DEACTIVATE_IDX</a></code></strong>,
       <strong><code><a href="ibase.constants.html#constant.ibase-res-no-shadow">IBASE_RES_NO_SHADOW</a></code></strong>, 
       <strong><code><a href="ibase.constants.html#constant.ibase-res-no-validity">IBASE_RES_NO_VALIDITY</a></code></strong>,
       <strong><code><a href="ibase.constants.html#constant.ibase-res-one-at-a-time">IBASE_RES_ONE_AT_A_TIME</a></code></strong>,
       <strong><code><a href="ibase.constants.html#constant.ibase-res-replace">IBASE_RES_REPLACE</a></code></strong>,
       <strong><code><a href="ibase.constants.html#constant.ibase-res-create">IBASE_RES_CREATE</a></code></strong>,
       <strong><code><a href="ibase.constants.html#constant.ibase-res-use-all-space">IBASE_RES_USE_ALL_SPACE</a></code></strong>,
       <strong><code><a href="ibase.constants.html#constant.ibase-prp-page-buffers">IBASE_PRP_PAGE_BUFFERS</a></code></strong>,
       <strong><code><a href="ibase.constants.html#constant.ibase-prp-sweep-interval">IBASE_PRP_SWEEP_INTERVAL</a></code></strong>,
       <strong><code><a href="ibase.constants.html#constant.ibase-res-create">IBASE_RES_CREATE</a></code></strong>.
       Read the section about <a href="ibase.constants.html" class="xref">Predefined Constants</a> for further information.
      </p>


function_name: ibase_restore
name: verbose
type: bool
description:
<p class="para">
       Since the restore process is done on the database server, you don&#039;t have any chance
       to get its output. This argument is useless.
      </p>


function_name: ibase_rollback_ret
name: link_or_trans_identifier
type: resource
description:
<p class="para">
       If called without an argument, this function rolls back the default
       transaction of the default link. If the argument is a connection
       identifier, the default transaction of the corresponding connection
       will be rolled back. If the argument is a transaction identifier, the
       corresponding transaction will be rolled back. The transaction context
       will be retained, so statements executed from within this transaction
       will not be invalidated.
      </p>


function_name: ibase_rollback
name: link_or_trans_identifier
type: resource
description:
<p class="para">
       If called without an argument, this function rolls back the default
       transaction of the default link. If the argument is a connection
       identifier, the default transaction of the corresponding connection
       will be rolled back. If the argument is a transaction identifier, the
       corresponding transaction will be rolled back.
      </p>


function_name: ibase_service_attach
name: host
type: string
description:
<p class="para">
       The name or ip address of the database host. You can define the port by adding 
       &#039;/&#039; and port number. If no port is specified, port 3050 will be used.
      </p>


function_name: ibase_set_event_handler
name: event_handler
type: callable
description:
<p class="para">
       The callback is called with the event name and the link resource as
       arguments whenever one of the specified events is posted by the
       database.
      </p>
      <p class="para">
       The callback must return <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> if the event handler should be
       canceled. Any other return value is ignored. This function accepts up
       to 15 event arguments.
      </p>


function_name: ibase_trans
name: trans_args
type: int
description:
<p class="para">
       <code class="parameter">trans_args</code> can be a combination of
       <strong><code>IBASE_READ</code></strong>,
       <strong><code>IBASE_WRITE</code></strong>,
       <strong><code>IBASE_COMMITTED</code></strong>, 
       <strong><code>IBASE_CONSISTENCY</code></strong>,
       <strong><code>IBASE_CONCURRENCY</code></strong>, 
       <strong><code>IBASE_REC_VERSION</code></strong>, 
       <strong><code>IBASE_REC_NO_VERSION</code></strong>,
       <strong><code>IBASE_WAIT</code></strong> and 
       <strong><code>IBASE_NOWAIT</code></strong>.
      </p>


function_name: db2_autocommit
name: connection
type: resource
description:
<p class="para">
       A valid database connection resource variable as returned from
       <span class="function">db2_connect</span> or <span class="function">db2_pconnect</span>.
      </p>


function_name: db2_bind_param
name: stmt
type: resource
description:
<p class="para">
       A prepared statement returned from <span class="function">db2_prepare</span>.
      </p>


function_name: db2_bind_param
name: parameter_number
type: int
description:
<p class="para">
       Specifies the 1-indexed position of the parameter in the prepared
       statement.
      </p>


function_name: db2_bind_param
name: variable_name
type: string
description:
<p class="para">
       A string specifying the name of the PHP variable to bind to the
       parameter specified by <code class="parameter">parameter_number</code>.
      </p>


function_name: db2_bind_param
name: parameter_type
type: int
description:
<p class="para">
       A constant specifying whether the PHP variable should be bound to the
       SQL parameter as an input parameter (<strong><code><a href="ibm-db2.constants.html#constant.db2-param-in">DB2_PARAM_IN</a></code></strong>),
       an output parameter (<strong><code><a href="ibm-db2.constants.html#constant.db2-param-out">DB2_PARAM_OUT</a></code></strong>), or as a
       parameter that accepts input and returns output
       (<strong><code><a href="ibm-db2.constants.html#constant.db2-param-inout">DB2_PARAM_INOUT</a></code></strong>). To avoid memory overhead, you can
       also specify <strong><code><a href="ibm-db2.constants.html#constant.db2-param-file">DB2_PARAM_FILE</a></code></strong> to bind the PHP variable
       to the name of a file that contains large object (BLOB, CLOB, or DBCLOB)
       data.
      </p>


function_name: db2_bind_param
name: data_type
type: int
description:
<p class="para">
       A constant specifying the SQL data type that the PHP variable should be
       bound as: one of <strong><code><a href="ibm-db2.constants.html#constant.db2-binary">DB2_BINARY</a></code></strong>,
       <strong><code><a href="ibm-db2.constants.html#constant.db2-char">DB2_CHAR</a></code></strong>, <code class="literal">DB2_DOUBLE</code>, or
       <strong><code><a href="ibm-db2.constants.html#constant.db2-long">DB2_LONG</a></code></strong> .
      </p>


function_name: db2_bind_param
name: precision
type: int
initializer: -1
description:
<p class="para">
       Specifies the precision with which the variable should be bound to the
       database. This parameter can also be used for retrieving XML output values 
       from stored procedures. A non-negative value specifies the maximum size of 
       the XML data that will be retrieved from the database. If this parameter 
       is not used, a default of 1MB will be assumed for retrieving the XML 
       output value from the stored procedure.
      </p>


function_name: db2_bind_param
name: scale
type: int
description:
<p class="para">
       Specifies the scale with which the variable should be bound to the
       database.
      </p>


function_name: db2_column_privileges
name: connection
type: resource
description:
<p class="para">
       A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.
      </p>


function_name: db2_column_privileges
name: qualifier
type: null
description:
<p class="para">
       A qualifier for DB2 databases running on OS/390 or z/OS servers. For
       other databases, pass <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong> or an empty string.
      </p>


function_name: db2_column_privileges
name: schema
type: null
description:
<p class="para">
       The schema which contains the tables. To match all schemas, pass <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>
       or an empty string.
      </p>


function_name: db2_column_privileges
name: table_name
type: null
description:
<p class="para">
       The name of the table or view. To match all tables in the database,
       pass <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong> or an empty string.
      </p>


function_name: db2_column_privileges
name: column_name
type: null
description:
<p class="para">
       The name of the column. To match all columns in the table, pass <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>
       or an empty string.
      </p>


function_name: db2_columns
name: schema
type: null
description:
<p class="para">
       The schema which contains the tables. To match all schemas, pass
       <code class="literal">&#039;%&#039;</code>.
      </p>


function_name: db2_conn_error
name: connection
type: null
description:
<p class="para">
       A connection resource associated with a connection that initially
       succeeded, but which over time became invalid.
      </p>


function_name: db2_conn_errormsg
name: connection
type: null
description:
<p class="para">
        A connection resource associated with a connection that initially
        succeeded, but which over time became invalid.
       </p>


function_name: db2_connect
name: username
type: null
description:
<p class="para">
       The username with which you are connecting to the database.
      </p>
      <p class="para">
       For uncataloged connections, you must pass a <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong> value or empty
       string.
      </p>


function_name: db2_connect
name: password
type: null
description:
<p class="para">
       The password with which you are connecting to the database.
      </p>
      <p class="para">
       For uncataloged connections, you must pass a <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong> value or empty
       string.
      </p>


function_name: db2_connect
name: options
type: array
initializer: []
description:
<p class="para">
       An associative array of connection options that affect the behavior
       of the connection, where valid array keys include:
       <dl>
        
         <dt><code class="parameter">autocommit</code></dt>
         <dd>
          <p class="para">
           Passing the <strong><code><a href="ibm-db2.constants.html#constant.db2-autocommit-on">DB2_AUTOCOMMIT_ON</a></code></strong> value turns
           autocommit on for this connection handle.
          </p>
          <p class="para">
           Passing the <strong><code><a href="ibm-db2.constants.html#constant.db2-autocommit-off">DB2_AUTOCOMMIT_OFF</a></code></strong> value turns
           autocommit off for this connection handle.
          </p>
         </dd>
        
        
         <dt><code class="parameter">DB2_ATTR_CASE</code></dt>
         <dd>
          <p class="para">
           Passing the <strong><code><a href="ibm-db2.constants.html#constant.db2-case-natural">DB2_CASE_NATURAL</a></code></strong> value specifies
           that column names are returned in natural case.
          </p>
          <p class="para">
           Passing the <strong><code><a href="ibm-db2.constants.html#constant.db2-case-lower">DB2_CASE_LOWER</a></code></strong> value specifies
           that column names are returned in lower case.
          </p>
          <p class="para">
           Passing the <strong><code><a href="ibm-db2.constants.html#constant.db2-case-upper">DB2_CASE_UPPER</a></code></strong> value specifies
           that column names are returned in upper case.
          </p>
         </dd>
        
        
         <dt><code class="parameter">CURSOR</code></dt>
         <dd>
          <p class="para">
           Passing the <strong><code><a href="ibm-db2.constants.html#constant.db2-forward-only">DB2_FORWARD_ONLY</a></code></strong> value specifies a
           forward-only cursor for a statement resource. This is the default
           cursor type and is supported on all database servers.
          </p>
          <p class="para">
           Passing the <strong><code><a href="ibm-db2.constants.html#constant.db2-scrollable">DB2_SCROLLABLE</a></code></strong> value specifies a
           scrollable cursor for a statement resource. This mode enables
           random access to rows in a result set, but currently is supported
           only by IBM DB2 Universal Database.
          </p>
         </dd>
        
       </dl>
      </p>
      <p class="para">
       The following new option is available in ibm_db2 version 1.7.0 and later.
       <dl>
        
         <dt><code class="parameter">trustedcontext</code></dt>
         <dd>
          <p class="para">
           Passing the DB2_TRUSTED_CONTEXT_ENABLE value turns trusted context
           on for this connection handle. This parameter cannot be set using
           <span class="function">db2_set_option</span>.
          </p>
          <p class="para">
           This key works only if the database is cataloged (even if the
           database is local), or if you specify the full DSN when you create
           the connection.
          </p>
          <p class="para">
           To catalog the database, use following commands:
          </p>
          <p class="para">
           <pre class="literallayout">db2 catalog tcpip node loopback remote &lt;SERVERNAME&gt; server &lt;SERVICENAME&gt;
db2 catalog database &lt;LOCALDBNAME&gt; as &lt;REMOTEDBNAME&gt; at node loopback
db2 &quot;update dbm cfg using svcename &lt;SERVICENAME&gt;&quot;
db2set DB2COMM=TCPIP</pre>
          </p>
         </dd>
        
      </dl>
      </p>
      <p class="para">
       The following new i5/OS options are available in ibm_db2 version 1.5.1
       and later.
       <dl>
        
         <dt><code class="parameter">i5_lib</code></dt>
         <dd>
          <p class="para">
           A character value that indicates the default library that will be
           used for resolving unqualified file references. This is not valid
           if the connection is using system naming mode.
          </p>
         </dd>
        
        
         <dt><code class="parameter">i5_naming</code></dt>
         <dd>
          <p class="para">
           <code class="literal">DB2_I5_NAMING_ON</code> value turns on DB2 UDB CLI iSeries
           system naming mode. Files are qualified using the slash (/) delimiter.
           Unqualified files are resolved using the library list for the job.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_NAMING_OFF</code> value turns off DB2 UDB CLI default
           naming mode, which is SQL naming. Files are qualified using the period (.)
           delimiter. Unqualified files are resolved using either the default library
           or the current user ID.
          </p>
         </dd>
        
        
         <dt><code class="parameter">i5_commit</code></dt>
         <dd>
          <p class="para">
           The <code class="parameter">i5_commit</code> attribute should be set before the
           <span class="function">db2_connect</span>. If the value is changed after the
           connection has been established, and the connection is to a remote data
           source, the change does not take effect until the next successful
           <span class="function">db2_connect</span> for the connection handle.
           <blockquote class="note"><p><strong class="note">Note</strong>: 
            <p class="para">
             The php.ini setting <code class="parameter">ibm_db2.i5_allow_commit</code>==0
             or <code class="literal">DB2_I5_TXN_NO_COMMIT</code> is the default, but may be
             overridden with the <code class="parameter">i5_commit</code> option.
            </p>
           </p></blockquote>
          </p>
          <p class="para">
           <code class="literal">DB2_I5_TXN_NO_COMMIT</code> - Commitment control is not used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_TXN_READ_UNCOMMITTED</code> - Dirty reads, nonrepeatable
           reads, and phantoms are possible.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_TXN_READ_COMMITTED</code> - Dirty reads are not possible.
           Nonrepeatable reads, and phantoms are possible.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_TXN_REPEATABLE_READ</code> - Dirty reads and nonrepeatable
           reads are not possible. Phantoms are possible.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_TXN_SERIALIZABLE</code> - Transactions are serializable.
           Dirty reads, non-repeatable reads, and phantoms are not possible
          </p>
         </dd>
        
        
         <dt><code class="parameter">i5_query_optimize</code></dt>
         <dd>
          <p class="para">
            <code class="literal">DB2_FIRST_IO</code> All queries are optimized with the goal of
            returning the first page of output as fast as possible. This goal works well
            when the output is controlled by a user who is most likely to cancel the query
            after viewing the first page of output data. Queries coded with an
            OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause.
          </p>
          <p class="para">
           <code class="literal">DB2_ALL_IO</code> All queries are optimized with the goal of running
           the entire query to completion in the shortest amount of elapsed time. This is a
           good option when the output of a query is being written to a file or report, or
           the interface is queuing the output data. Queries coded with an OPTIMIZE FOR nnn
           ROWS clause honor the goal specified by the clause. This is the default.
          </p>
         </dd>
        
        
         <dt><code class="parameter">i5_dbcs_alloc</code></dt>
         <dd>
          <p class="para">
           <code class="literal">DB2_I5_DBCS_ALLOC_ON</code> value turns on DB2 6X allocation scheme
           for DBCS translation column size growth.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_DBCS_ALLOC_OFF</code> value turns off DB2 6X allocation scheme
           for DBCS translation column size growth.
          </p>
          <p class="para">
           Note: php.ini setting <code class="parameter">ibm_db2.i5_dbcs_alloc</code>==0 or
           <code class="literal">DB2_I5_DBCS_ALLOC_OFF</code> is the default, but may be overridden
           with the <code class="parameter">i5_dbcs_alloc</code> option.
          </p>
         </dd>
        
        
         <dt><code class="parameter">i5_date_fmt</code></dt>
         <dd>
          <p class="para">
           <code class="literal">DB2_I5_FMT_ISO</code> - The International Organization for Standardization
           (ISO) date format yyyy-mm-dd is used. This is the default.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_USA</code> - The United States date format mm/dd/yyyy is used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_EUR</code> - The European date format dd.mm.yyyy is used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_JIS</code> - The Japanese Industrial Standard date format
           yyyy-mm-dd is used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_MDY</code> - The date format mm/dd/yyyy is used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_DMY</code> - The date format dd/mm/yyyy is used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_YMD</code> - The date format yy/mm/dd is used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_JUL</code> - The Julian date format yy/ddd is used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_JOB</code> - The job default is used.
          </p>
         </dd>
        
        
         <dt><code class="parameter">i5_date_sep</code></dt>
         <dd>
          <p class="para">
           <code class="literal">DB2_I5_SEP_SLASH</code> - A slash ( / ) is used as the date separator.
           This is the default.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_DASH</code> - A dash ( - ) is used as the date separator.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_PERIOD</code> - A period ( . ) is used as the date
           separator.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_COMMA</code> - A comma ( , ) is used as the date separator.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_BLANK</code> - A blank is used as the date separator.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_JOB</code> - The job default is used
          </p>
         </dd>
        
        
         <dt><code class="parameter">i5_time_fmt</code></dt>
         <dd>
          <p class="para">
           <code class="literal">DB2_I5_FMT_ISO</code> - The International Organization for
           Standardization (ISO) time format hh.mm.ss is used. This is the default.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_USA</code> - The United States time format
           hh:mmxx is used, where xx is AM or PM.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_EUR</code> - The European time format hh.mm.ss
           is used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_JIS</code> - The Japanese Industrial Standard
           time format hh:mm:ss is used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_HMS</code> - The hh:mm:ss format is used.
          </p>
         </dd>
        
        
         <dt><code class="parameter">i5_time_sep</code></dt>
         <dd>
          <p class="para">
           <code class="literal">DB2_I5_SEP_COLON</code> - A colon ( : ) is used as the time
           separator. This is the default.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_PERIOD</code> - A period ( . ) is used as the time
           separator.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_COMMA</code> - A comma ( , ) is used as the time
           separator.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_BLANK</code> - A blank is used as the time separator.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_JOB</code> - The job default is used.
          </p>
         </dd>
        
        
         <dt><code class="parameter">i5_decimal_sep</code></dt>
         <dd>
          <p class="para">
           <code class="literal">DB2_I5_SEP_PERIOD</code> - A period ( . ) is used as
           the decimal separator. This is the default.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_COMMA</code> - A comma ( , ) is used as the
           decimal separator.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_JOB</code> - The job default is used.
          </p>
         </dd>
        
       </dl>
      </p>
      <p class="para">
       The following new i5/OS option is available in ibm_db2 version 1.8.0
       and later.
       <dl>
        
         <dt><code class="parameter">i5_libl</code></dt>
         <dd>
          <p class="para">
           A character value that indicates the library list that will be used for
           resolving unqualified file references. Specify the library list
           elements separated by blanks &#039;i5_libl&#039;=&gt;&quot;MYLIB YOURLIB ANYLIB&quot;.
          </p>
          <blockquote class="note"><p><strong class="note">Note</strong>: 
           <p class="para">
            <code class="parameter">i5_libl</code> calls qsys2/qcmdexc(&#039;cmd&#039;,cmdlen), which is only
            available in i5/OS V5R4 and later.
           </p>
          </p></blockquote>
         </dd>
        
       </dl>
      </p>


function_name: db2_escape_string
name: string_literal
type: string
description:
<p class="para">
       The string that contains special characters that need to be modified. 
       Characters that are prepended with a backslash are <code class="literal">\x00</code>, 
       <code class="literal">\n</code>, <code class="literal">\r</code>, <code class="literal">\</code>, 
       <code class="literal">&#039;</code>, <code class="literal">&quot;</code> and <code class="literal">\x1a</code>.
      </p>


function_name: db2_exec
name: statement
type: string
description:
<p class="para">
       An SQL statement. The statement cannot contain any parameter markers.
      </p>


function_name: db2_exec
name: options
type: array
initializer: []
description:
<p class="para">
       An associative array containing statement options. You can use this
       parameter to request a scrollable cursor on database servers that
       support this functionality.
      </p>
      <p class="para">
       For a description of valid statement options, see 
       <span class="function">db2_set_option</span>.
      </p>


function_name: db2_execute
name: parameters
type: array
initializer: []
description:
<p class="para">
       An array of input parameters matching any parameter markers contained
       in the prepared statement.
      </p>


function_name: db2_fetch_array
name: stmt
type: resource
description:
<p class="para">
       A valid <code class="literal">stmt</code> resource containing a result set.
      </p>


function_name: db2_fetch_array
name: row_number
type: int
initializer: -1
description:
<p class="para">
       Requests a specific 1-indexed row from the result set. Passing this
       parameter results in a PHP warning if the result set uses a
       forward-only cursor.
      </p>


function_name: db2_fetch_row
name: row_number
type: int
initializer: -1
description:
<p class="para">
       With scrollable cursors, you can request a specific row number in the
       result set. Row numbering is 1-indexed.
      </p>


function_name: db2_field_display_size
name: column
type: string
description:
<p class="para">
        Specifies the column in the result set. This can either be an integer
        representing the 0-indexed position of the column, or a string
        containing the name of the column.
       </p>


function_name: db2_foreign_keys
name: schema
type: null
description:
<p class="para">
       The schema which contains the tables. If <code class="parameter">schema</code>
       is <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>, <span class="function">db2_foreign_keys</span> matches the schema for
       the current connection.
      </p>


function_name: db2_get_option
name: resource
type: resource
description:
<p class="para">
      A valid statement resource as returned from
      <span class="function">db2_prepare</span> or a valid connection resource as
      returned from <span class="function">db2_connect</span> or
      <span class="function">db2_pconnect</span>.
     </p>


function_name: db2_get_option
name: option
type: string
description:
<p class="para">
      A valid statement or connection options. The following new options are available 
      as of ibm_db2 version 1.6.0. They provide useful tracking information 
      that can be set during execution with <span class="function">db2_get_option</span>.
      <blockquote class="note"><p><strong class="note">Note</strong>: 
       <p class="para">
        Prior versions of ibm_db2 do not support these new options.
       </p>
       <p class="para">
        When the value in each option is being set, some servers might not handle 
        the entire length provided and might truncate the value.
       </p>
       <p class="para">
        To ensure that the data specified in each option is converted correctly 
        when transmitted to a host system, use only the characters A through Z, 
        0 through 9, and the underscore (_) or period (.).
       </p>
      </p></blockquote>
      <dl>
       
        <dt><code class="parameter">userid</code></dt>
         <dd>
          <p class="para">
           <code class="literal">SQL_ATTR_INFO_USERID</code> - A pointer to a null-terminated 
           character string used to identify the client user ID sent to the host 
           database server when using DB2 Connect.
           <blockquote class="note"><p><strong class="note">Note</strong>: 
            <p class="para">
             DB2 for z/OS and OS/390 servers support up to a length of 16 characters. 
             This user-id is not to be confused with the authentication user-id, it is for 
             identification purposes only and is not used for any authorization.
            </p>
           </p></blockquote>
          </p>
         </dd>
        
        
         <dt><code class="parameter">acctstr</code></dt>
         <dd>
          <p class="para">
           <code class="literal">SQL_ATTR_INFO_ACCTSTR</code> - A pointer to a null-terminated 
           character string used to identify the client accounting string sent to the 
           host database server when using DB2 Connect.
           <blockquote class="note"><p><strong class="note">Note</strong>: 
            <p class="para">
             DB2 for z/OS and OS/390 servers support up to a length of 200 characters.
            </p>
           </p></blockquote>
          </p>
         </dd>
        
        
         <dt><code class="parameter">applname</code></dt>
         <dd>
          <p class="para">
           <code class="literal">SQL_ATTR_INFO_APPLNAME</code> - A pointer to a null-terminated 
           character string used to identify the client application name sent to the 
           host database server when using DB2 Connect.
           <blockquote class="note"><p><strong class="note">Note</strong>: 
            <p class="para">
             DB2 for z/OS and OS/390 servers support up to a length of 32 characters.
            </p>
           </p></blockquote>
          </p>
         </dd>
        
        
         <dt><code class="parameter">wrkstnname</code></dt>
         <dd>
          <p class="para">
           <code class="literal">SQL_ATTR_INFO_WRKSTNNAME</code> - A pointer to a null-terminated 
           character string used to identify the client workstation name sent to the 
           host database server when using DB2 Connect.
           <blockquote class="note"><p><strong class="note">Note</strong>: 
            <p class="para">
             DB2 for z/OS and OS/390 servers support up to a length of 18 characters.
            </p>
           </p></blockquote>
          </p>
         </dd>
        
       </dl>
      </p>


function_name: db2_last_insert_id
name: resource
type: resource
description:
<p class="para">
       A valid connection resource as returned from <span class="function">db2_connect</span> 
       or <span class="function">db2_pconnect</span>. The value of this parameter cannot be a 
       statement resource or result set resource.
      </p>


function_name: db2_lob_read
name: stmt
type: resource
description:
<p class="para">
       A valid <code class="literal">stmt</code> resource containing LOB data.
      </p>


function_name: db2_lob_read
name: colnum
type: int
description:
<p class="para">
       A valid column number in the result set of the <code class="literal">stmt</code> resource.
      </p>


function_name: db2_lob_read
name: length
type: int
description:
<p class="para">
       The size of the LOB data to be retrieved from the <code class="literal">stmt</code> resource.
      </p>


function_name: db2_next_result
name: stmt
type: resource
description:
<p class="para">
       A prepared statement returned from <span class="function">db2_exec</span> or
       <span class="function">db2_execute</span>.
      </p>


function_name: db2_pconnect
name: options
type: array
initializer: []
description:
<p class="para">
       An associative array of connection options that affect the behavior
       of the connection, where valid array keys include:
       <dl>
        
         <dt><code class="parameter">autocommit</code></dt>
         <dd>
          <p class="para">
           Passing the <strong><code><a href="ibm-db2.constants.html#constant.db2-autocommit-on">DB2_AUTOCOMMIT_ON</a></code></strong> value turns
           autocommit on for this connection handle.
          </p>
          <p class="para">
           Passing the <strong><code><a href="ibm-db2.constants.html#constant.db2-autocommit-off">DB2_AUTOCOMMIT_OFF</a></code></strong> value turns
           autocommit off for this connection handle.
          </p>
         </dd>
        
        
         <dt><code class="parameter">DB2_ATTR_CASE</code></dt>
         <dd>
          <p class="para">
           Passing the <strong><code><a href="ibm-db2.constants.html#constant.db2-case-natural">DB2_CASE_NATURAL</a></code></strong> value specifies
           that column names are returned in natural case.
          </p>
          <p class="para">
           Passing the <strong><code><a href="ibm-db2.constants.html#constant.db2-case-lower">DB2_CASE_LOWER</a></code></strong> value specifies
           that column names are returned in lower case.
          </p>
          <p class="para">
           Passing the <strong><code><a href="ibm-db2.constants.html#constant.db2-case-upper">DB2_CASE_UPPER</a></code></strong> value specifies
           that column names are returned in upper case.
          </p>
         </dd>
        
        
         <dt><code class="parameter">CURSOR</code></dt>
         <dd>
          <p class="para">
           Passing the <strong><code><a href="ibm-db2.constants.html#constant.db2-forward-only">DB2_FORWARD_ONLY</a></code></strong> value specifies a
           forward-only cursor for a statement resource. This is the default
           cursor type and is supported on all database servers.
          </p>
          <p class="para">
           Passing the <strong><code><a href="ibm-db2.constants.html#constant.db2-scrollable">DB2_SCROLLABLE</a></code></strong> value specifies a
           scrollable cursor for a statement resource. This mode enables
           random access to rows in a result set, but currently is supported
           only by IBM DB2 Universal Database.
          </p>
         </dd>
        
       </dl>
      </p>
      <p class="para">
       The following new option is available in ibm_db2 version 1.7.0
       and later.
       <dl>
        
         <dt><code class="parameter">trustedcontext</code></dt>
         <dd>
          <p class="para">
           Passing the DB2_TRUSTED_CONTEXT_ENABLE value turns trusted context
           on for this connection handle. This parameter cannot be set using
           <span class="function">db2_set_option</span>.
          </p>
          <p class="para">
           This key works only if the database is cataloged (even if the
           database is local), or if you specify the full DSN when you create
           the connection.
          </p>
          <p class="para">
           To catalog the database, use following commands:
          </p>
          <p class="para">
           <pre class="literallayout">db2 catalog tcpip node loopback remote &lt;SERVERNAME&gt; server &lt;SERVICENAME&gt;
db2 catalog database &lt;LOCALDBNAME&gt; as &lt;REMOTEDBNAME&gt; at node loopback
db2 &quot;update dbm cfg using svcename &lt;SERVICENAME&gt;&quot;
db2set DB2COMM=TCPIP</pre>
          </p>

         </dd>
        
      </dl>
      </p>
      <p class="para">
       The following new i5/OS options are available in ibm_db2 version 1.5.1
       and later.
       <div class="tip"><strong class="tip">Tip</strong>
        <p class="para">Conflicting connection attributes used in conjunction with persistent
         connections can produce indeterminate results on i5/OS. Site policies should
         be establish for all applications using each persistent connection user
         profile. The default DB2_AUTOCOMMIT_ON is suggested when using persistent connections.
        </p>
       </div>
       <dl>
        
         <dt><code class="parameter">i5_lib</code></dt>
         <dd>
          <p class="para">
           A character value that indicates the default library that will be
           used for resolving unqualified file references. This is not valid
           if the connection is using system naming mode.
          </p>
         </dd>
        
        
         <dt><code class="parameter">i5_naming</code></dt>
         <dd>
          <p class="para">
           <code class="literal">DB2_I5_NAMING_ON</code> value turns on DB2 UDB CLI iSeries
           system naming mode. Files are qualified using the slash (/) delimiter.
           Unqualified files are resolved using the library list for the job.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_NAMING_OFF</code> value turns off DB2 UDB CLI default
           naming mode, which is SQL naming. Files are qualified using the period (.)
           delimiter. Unqualified files are resolved using either the default library
           or the current user ID.
          </p>
         </dd>
        
        
         <dt><code class="parameter">i5_commit</code></dt>
         <dd>
          <p class="para">
           The <code class="parameter">i5_commit</code> attribute should be set before the
           <span class="function">db2_pconnect</span>. If the value is changed after the
           connection has been established, and the connection is to a remote data
           source, the change does not take effect until the next successful
           <span class="function">db2_pconnect</span> for the connection handle.
           <blockquote class="note"><p><strong class="note">Note</strong>: 
            <p class="para">
             The php.ini setting <code class="parameter">ibm_db2.i5_allow_commit</code>==0
             or <code class="literal">DB2_I5_TXN_NO_COMMIT</code> is the default, but may be
             overridden with the <code class="parameter">i5_commit</code> option.
            </p>
           </p></blockquote>
          </p>
          <p class="para">
           <code class="literal">DB2_I5_TXN_NO_COMMIT</code> - Commitment control is not used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_TXN_READ_UNCOMMITTED</code> - Dirty reads, nonrepeatable
           reads, and phantoms are possible.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_TXN_READ_COMMITTED</code> - Dirty reads are not possible.
           Nonrepeatable reads, and phantoms are possible.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_TXN_REPEATABLE_READ</code> - Dirty reads and nonrepeatable
           reads are not possible. Phantoms are possible.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_TXN_SERIALIZABLE</code> - Transactions are serializable.
           Dirty reads, non-repeatable reads, and phantoms are not possible
          </p>
         </dd>
        
        
         <dt><code class="parameter">i5_query_optimize</code></dt>
         <dd>
          <p class="para">
            <code class="literal">DB2_FIRST_IO</code> All queries are optimized with the goal of
            returning the first page of output as fast as possible. This goal works well
            when the output is controlled by a user who is most likely to cancel the query
            after viewing the first page of output data. Queries coded with an
            OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause.
          </p>
          <p class="para">
           <code class="literal">DB2_ALL_IO</code> All queries are optimized with the goal of running
           the entire query to completion in the shortest amount of elapsed time. This is a
           good option when the output of a query is being written to a file or report, or
           the interface is queuing the output data. Queries coded with an OPTIMIZE FOR nnn
           ROWS clause honor the goal specified by the clause. This is the default.
          </p>
         </dd>
        
        
         <dt><code class="parameter">i5_dbcs_alloc</code></dt>
         <dd>
          <p class="para">
           <code class="literal">DB2_I5_DBCS_ALLOC_ON</code> value turns on DB2 6X allocation scheme
           for DBCS translation column size growth.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_DBCS_ALLOC_OFF</code> value turns off DB2 6X allocation scheme
           for DBCS translation column size growth.
           <blockquote class="note"><p><strong class="note">Note</strong>: 
            <p class="para">
             The php.ini setting <code class="parameter">ibm_db2.i5_dbcs_alloc</code>==0 or
             <code class="literal">DB2_I5_DBCS_ALLOC_OFF</code> is the default, but may be overridden
             with the <code class="parameter">i5_dbcs_alloc</code> option.
            </p>
           </p></blockquote>
           </p>
         </dd>
        
        
         <dt><code class="parameter">i5_date_fmt</code></dt>
         <dd>
          <p class="para">
           <code class="literal">DB2_I5_FMT_ISO</code> - The International Organization for Standardization
           (ISO) date format yyyy-mm-dd is used. This is the default.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_USA</code> - The United States date format mm/dd/yyyy is used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_EUR</code> - The European date format dd.mm.yyyy is used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_JIS</code> - The Japanese Industrial Standard date format
           yyyy-mm-dd is used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_MDY</code> - The date format mm/dd/yyyy is used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_DMY</code> - The date format dd/mm/yyyy is used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_YMD</code> - The date format yy/mm/dd is used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_JUL</code> - The Julian date format yy/ddd is used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_JOB</code> - The job default is used.
          </p>
         </dd>
        
        
         <dt><code class="parameter">i5_date_sep</code></dt>
         <dd>
          <p class="para">
           <code class="literal">DB2_I5_SEP_SLASH</code> - A slash ( / ) is used as the date separator.
           This is the default.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_DASH</code> - A dash ( - ) is used as the date separator.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_PERIOD</code> - A period ( . ) is used as the date
           separator.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_COMMA</code> - A comma ( , ) is used as the date separator.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_BLANK</code> - A blank is used as the date separator.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_JOB</code> - The job default is used
          </p>
         </dd>
        
        
         <dt><code class="parameter">i5_time_fmt</code></dt>
         <dd>
          <p class="para">
           <code class="literal">DB2_I5_FMT_ISO</code> - The International Organization for
           Standardization (ISO) time format hh.mm.ss is used. This is the default.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_USA</code> - The United States time format
           hh:mmxx is used, where xx is AM or PM.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_EUR</code> - The European time format hh.mm.ss
           is used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_JIS</code> - The Japanese Industrial Standard
           time format hh:mm:ss is used.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_FMT_HMS</code> - The hh:mm:ss format is used.
          </p>
         </dd>
        
        
         <dt><code class="parameter">i5_time_sep</code></dt>
         <dd>
          <p class="para">
           <code class="literal">DB2_I5_SEP_COLON</code> - A colon ( : ) is used as the time
           separator. This is the default.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_PERIOD</code> - A period ( . ) is used as the time
           separator.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_COMMA</code> - A comma ( , ) is used as the time
           separator.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_BLANK</code> - A blank is used as the time separator.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_JOB</code> - The job default is used.
          </p>
         </dd>
        
        
         <dt><code class="parameter">i5_decimal_sep</code></dt>
         <dd>
          <p class="para">
           <code class="literal">DB2_I5_SEP_PERIOD</code> - A period ( . ) is used as
           the decimal separator. This is the default.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_COMMA</code> - A comma ( , ) is used as the
           decimal separator.
          </p>
          <p class="para">
           <code class="literal">DB2_I5_SEP_JOB</code> - The job default is used.
          </p>
         </dd>
        
       </dl>
      </p>
      <p class="para">
       The following new i5/OS option is available in ibm_db2 version 1.8.0
       and later.
       <dl>
        
         <dt><code class="parameter">i5_libl</code></dt>
         <dd>
          <p class="para">
           A character value that indicates the library list that will be used for
           resolving unqualified file references. Specify the library list
           elements separated by blanks &#039;i5_libl&#039;=&gt;&quot;MYLIB YOURLIB ANYLIB&quot;.
           <blockquote class="note"><p><strong class="note">Note</strong>: 
            <p class="para">
             i5_libl calls qsys2/qcmdexc(&#039;cmd&#039;,cmdlen), which is only available
             in i5/OS V5R4 and later.
            </p>
           </p></blockquote>
          </p>
         </dd>
        
       </dl>
      </p>


function_name: db2_prepare
name: statement
type: string
description:
<p class="para">
       An SQL statement, optionally containing one or more parameter markers..
      </p>


function_name: db2_primary_keys
name: schema
type: null
description:
<p class="para">
       The schema which contains the tables. If <code class="parameter">schema</code>
       is <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>, <span class="function">db2_primary_keys</span> matches the schema for
       the current connection.
      </p>


function_name: db2_procedure_columns
name: schema
type: string
description:
<p class="para">
       The schema which contains the procedures. This parameter accepts a
       search pattern containing <code class="literal">_</code> and <code class="literal">%</code>
       as wildcards.
      </p>


function_name: db2_procedure_columns
name: procedure
type: string
description:
<p class="para">
       The name of the procedure. This parameter accepts a
       search pattern containing <code class="literal">_</code> and <code class="literal">%</code>
       as wildcards.
      </p>


function_name: db2_procedure_columns
name: parameter
type: null
description:
<p class="para">
       The name of the parameter. This parameter accepts a search pattern
       containing <code class="literal">_</code> and <code class="literal">%</code> as wildcards.
       If this parameter is <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>, all parameters for the specified stored
       procedures are returned.
      </p>


function_name: db2_result
name: column
type: string
description:
<p class="para">
        Either an integer mapping to the 0-indexed field in the result set, or
        a string matching the name of the column.
       </p>


function_name: db2_set_option
name: resource
type: resource
description:
<p class="para">
             A valid statement resource as returned from
             <span class="function">db2_prepare</span> or a valid connection resource as
             returned from <span class="function">db2_connect</span> or
             <span class="function">db2_pconnect</span>.
            </p>


function_name: db2_set_option
name: options
type: array
description:
<p class="para">
             An associative array containing valid statement or connection
             options. This parameter can be used to change autocommit values,
             cursor types (scrollable or forward), and to specify the case of
             the column names (lower, upper, or natural) that will appear in a
             result set.
              <dl>
                
                  <dt><code class="parameter">autocommit</code></dt>
                  <dd>
                    <p class="para">
                     Passing <strong><code><a href="ibm-db2.constants.html#constant.db2-autocommit-on">DB2_AUTOCOMMIT_ON</a></code></strong> turns
                     autocommit on for the specified connection resource.
                    </p>
                    <p class="para">
                     Passing <strong><code><a href="ibm-db2.constants.html#constant.db2-autocommit-off">DB2_AUTOCOMMIT_OFF</a></code></strong> turns
                     autocommit off for the specified connection resource.
                    </p>
                  </dd>
                
                
                  <dt><code class="parameter">cursor</code></dt>
                  <dd>
                    <p class="para">
                     Passing <strong><code><a href="ibm-db2.constants.html#constant.db2-forward-only">DB2_FORWARD_ONLY</a></code></strong> specifies a
                     forward-only cursor for a statement resource. This is the
                     default cursor type, and is supported by all database
                     servers.
                    </p>
                    <p class="para">
                     Passing <strong><code><a href="ibm-db2.constants.html#constant.db2-scrollable">DB2_SCROLLABLE</a></code></strong> specifies a
                     scrollable cursor for a statement resource. Scrollable
                     cursors enable result set rows to be accessed in
                     non-sequential order, but are only supported by
                     IBM DB2 Universal Database databases.
                    </p>
                  </dd>
                
                
                  <dt><code class="parameter">binmode</code></dt>
                  <dd>
                    <p class="para">
                     Passing <strong><code><a href="ibm-db2.constants.html#constant.db2-binary">DB2_BINARY</a></code></strong> specifies that
                     binary data will be returned as is. This is the default
                     mode. This is the equivalent of setting
                     <code class="literal">ibm_db2.binmode=1</code> in <var class="filename">php.ini</var>.
                    </p>
                    <p class="para">
                     Passing <strong><code><a href="ibm-db2.constants.html#constant.db2-convert">DB2_CONVERT</a></code></strong> specifies that
                     binary data will be converted to hexadecimal encoding,
                     and will be returned as such. This is the equivalent of
                     setting <code class="literal">ibm_db2.binmode=2</code> in <var class="filename">php.ini</var>.
                    </p>
                    <p class="para">
                     Passing <strong><code><a href="ibm-db2.constants.html#constant.db2-passthru">DB2_PASSTHRU</a></code></strong> specifies that
                     binary data will be converted to <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>. This is the
                     equivalent of setting <code class="literal">ibm_db2.binmode=3</code>
                     in <var class="filename">php.ini</var>.
                    </p>
                  </dd>
                
                
                  <dt><code class="parameter">db2_attr_case</code></dt>
                  <dd>
                    <p class="para">
                     Passing <strong><code><a href="ibm-db2.constants.html#constant.db2-case-lower">DB2_CASE_LOWER</a></code></strong> specifies that
                     column names of the result set are returned in lower case.
                    </p>
                    <p class="para">
                     Passing <strong><code><a href="ibm-db2.constants.html#constant.db2-case-upper">DB2_CASE_UPPER</a></code></strong> specifies that
                     column names of the result set are returned in upper case.
                    </p>
                    <p class="para">
                     Passing <strong><code><a href="ibm-db2.constants.html#constant.db2-case-natural">DB2_CASE_NATURAL</a></code></strong> specifies that
                     column names of the result set are returned in natural
                     case.
                    </p>
                  </dd>
                
                
                 <dt><code class="parameter">deferred_prepare</code></dt>
                 <dd>
                  <p class="para">
                   Passing <strong><code><a href="ibm-db2.constants.html#constant.db2-deferred-prepare-on">DB2_DEFERRED_PREPARE_ON</a></code></strong> turns deferred
                   prepare on for the specified statement resource.
                  </p>
                  <p class="para">
                   Passing <strong><code><a href="ibm-db2.constants.html#constant.db2-deferred-prepare-off">DB2_DEFERRED_PREPARE_OFF</a></code></strong> turns deferred
                   prepare off for the specified statement resource.
                  </p>
                 </dd>
                
              </dl>
            </p>
            <p class="para">
             The following new i5/OS options are available in ibm_db2 version 1.5.1
             and later. These options apply only when running PHP and ibm_db2 natively on i5 systems.
              <dl>
                
                  <dt><code class="parameter">i5_fetch_only</code></dt>
                  <dd>
                    <p class="para">
                     <code class="literal">DB2_I5_FETCH_ON</code> - Cursors are read-only
                     and cannot be used for positioned updates or deletes. This
                     is the default unless <code class="literal">SQL_ATTR_FOR_FETCH_ONLY</code>
                     environment has been set to <code class="literal">SQL_FALSE</code>.
                    </p>
                    <p class="para">
                     <code class="literal">DB2_I5_FETCH_OFF</code> - Cursors can be used
                     for positioned updates and deletes.
                    </p>
                  </dd>
                
               </dl>
            </p>
            <p class="para">
             The following new option is available in ibm_db2 version 1.8.0 and later.
              <dl>
                
                  <dt><code class="parameter">rowcount</code></dt>
                  <dd>
                    <p class="para">
                     <code class="literal">DB2_ROWCOUNT_PREFETCH_ON</code> - Client can request
                     the full row count prior to fetching, which means that
                     <span class="function">db2_num_rows</span> returns the number of rows selected
                     even when a <code class="literal">ROLLFORWARD_ONLY</code> cursor is used.
                    </p>
                    <p class="para">
                     <code class="literal">DB2_ROWCOUNT_PREFETCH_OFF</code> - Client cannot request
                     the full row count prior to fetching.
                    </p>
                  </dd>
                
              </dl>
            </p>
            <p class="para">
             The following new options are available in ibm_db2 version 1.7.0 and later.
              <dl>
                
                  <dt><code class="parameter">trusted_user</code></dt>
                  <dd>
                    <p class="para">
                     To switch the user to a trusted user, pass the User ID (String)
                     of the trusted user as the value of this key. This option can
                     be set on a connection resource only. To use this option, trusted
                     context must be enabled on the connection resource.
                    </p>
                  </dd>
                
                
                  <dt><code class="parameter">trusted_password</code></dt>
                  <dd>
                    <p class="para">
                     The password (String) that corresponds to the user specified
                     by the trusted_user key.
                    </p>
                  </dd>
                
               </dl>
            </p>
            <p class="para">
             The following new options are available in ibm_db2 version 1.6.0 and later.
             These options provide useful tracking information that can be accessed during
             execution with <span class="function">db2_get_option</span>.
             <blockquote class="note"><p><strong class="note">Note</strong>: 
              <p class="para">
               When the value in each option is being set, some servers might not handle
               the entire length provided and might truncate the value.
              </p>
              <p class="para">
               To ensure that the data specified in each option is converted correctly
               when transmitted to a host system, use only the characters A through Z,
               0 through 9, and the underscore (_) or period (.).
              </p>
             </p></blockquote>
             <dl>
              
               <dt><code class="parameter">userid</code></dt>
               <dd>
                <p class="para">
                 <code class="literal">SQL_ATTR_INFO_USERID</code> - A pointer to a null-terminated
                 character string used to identify the client user ID sent to the host
                 database server when using DB2 Connect.
                 <blockquote class="note"><p><strong class="note">Note</strong>: 
                  <p class="para">
                   DB2 for z/OS and OS/390 servers support up to a length of 16 characters.
                   This user-id is not to be confused with the authentication user-id, it is for
                   identification purposes only and is not used for any authorization.
                  </p>
                 </p></blockquote>
                </p>
               </dd>
              
              
               <dt><code class="parameter">acctstr</code></dt>
               <dd>
                <p class="para">
                 <code class="literal">SQL_ATTR_INFO_ACCTSTR</code> - A pointer to a null-terminated
                 character string used to identify the client accounting string sent to the
                 host database server when using DB2 Connect.
                 <blockquote class="note"><p><strong class="note">Note</strong>: 
                  <p class="para">
                   DB2 for z/OS and OS/390 servers support up to a length of 200 characters.
                  </p>
                 </p></blockquote>
                </p>
               </dd>
              
              
               <dt><code class="parameter">applname</code></dt>
               <dd>
                <p class="para">
                 <code class="literal">SQL_ATTR_INFO_APPLNAME</code> - A pointer to a null-terminated
                 character string used to identify the client application name sent to the
                 host database server when using DB2 Connect.
                 <blockquote class="note"><p><strong class="note">Note</strong>: 
                  <p class="para">
                   DB2 for z/OS and OS/390 servers support up to a length of 32 characters.
                  </p>
                 </p></blockquote>
                </p>
               </dd>
              
              
               <dt><code class="parameter">wrkstnname</code></dt>
               <dd>
                <p class="para">
                 <code class="literal">SQL_ATTR_INFO_WRKSTNNAME</code> - A pointer to a null-terminated
                 character string used to identify the client workstation name sent to the
                 host database server when using DB2 Connect.
                 <blockquote class="note"><p><strong class="note">Note</strong>: 
                  <p class="para">
                   DB2 for z/OS and OS/390 servers support up to a length of 18 characters.
                  </p>
                 </p></blockquote>
                </p>
               </dd>
              
             </dl>
            </p>


function_name: db2_set_option
name: type
type: int
description:
<p class="para">
             An integer value that specifies the type of resource that was
             passed into the function. The type of resource and this value
             must correspond.
            </p>
            <p class="para">
             Passing <code class="literal">1</code> as the value specifies that
             a connection resource has been passed into the function.
            </p>
            <p class="para">
             Passing any integer not equal to <code class="literal">1</code> as
             the value specifies that a statement resource has been
             passed into the function.
            </p>


function_name: db2_special_columns
name: scope
type: int
description:
<p class="para">
       Integer value representing the minimum duration for which the
       unique row identifier is valid. This can be one of the following
       values:
       <table class="doctable informaltable">
        
         <thead>
          <tr>
           <th>Integer value</th>
           <th>SQL constant</th>
           <th>Description</th>
          </tr>

         </thead>

         <tbody class="tbody">
          <tr>
           <td>0</td>
           <td>SQL_SCOPE_CURROW</td>
           <td>Row identifier is valid only while the cursor is positioned
           on the row.</td>
          </tr>

          <tr>
           <td>1</td>
           <td>SQL_SCOPE_TRANSACTION</td>
           <td>Row identifier is valid for the duration of the
            transaction.</td>
          </tr>

          <tr>
           <td>2</td>
           <td>SQL_SCOPE_SESSION</td>
           <td>Row identifier is valid for the duration of the
            connection.</td>
          </tr>

         </tbody>
        
       </table>

      </p>


function_name: db2_statistics
name: schema
type: null
description:
<p class="para">
       The schema that contains the targeted table. If this parameter is
       <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong>, the statistics and indexes are returned for the schema of the
       current user.
      </p>


function_name: db2_statistics
name: unique
type: bool
description:
<p class="para">
       When <code class="parameter">unique</code> is <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, the information for all
       indexes in the table are returned.
       Otherwise, only the information for unique indexes in the table are
       returned.
      </p>


function_name: db2_table_privileges
name: schema
type: null
description:
<p class="para">
       The schema which contains the tables. This parameter accepts a
       search pattern containing <code class="literal">_</code> and <code class="literal">%</code>
       as wildcards.
      </p>


function_name: db2_table_privileges
name: table_name
type: null
description:
<p class="para">
       The name of the table. This parameter accepts a search pattern
       containing <code class="literal">_</code> and <code class="literal">%</code> as wildcards.
      </p>


function_name: db2_tables
name: table_name
type: null
description:
<p class="para">
       The name of the table.  This parameter accepts a search pattern
       containing <code class="literal">_</code> and <code class="literal">%</code> as wildcards.
      </p>


function_name: db2_tables
name: table_type
type: null
description:
<p class="para">
       A list of comma-delimited table type identifiers. To match all table
       types, pass <strong><code><a href="reserved.constants.html#constant.null">null</a></code></strong> or an empty string. Valid table type identifiers
       include: ALIAS, HIERARCHY TABLE, INOPERATIVE VIEW, NICKNAME,
       MATERIALIZED QUERY TABLE, SYSTEM TABLE, TABLE, TYPED TABLE, TYPED VIEW,
       and VIEW. 
      </p>


function_name: MongoDB\Driver\Manager.__construct
name: uri
type: null
description:
<p class="para">
      A <a href="https://www.mongodb.com/docs/manual/reference/connection-string/" class="link external">&raquo;&nbsp;mongodb://</a> connection URI:
      <div class="example-contents">
<div class="txtcode"><pre class="txtcode">mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[defaultAuthDb][?options]]</pre>
</div>
      </div>

     </p>
     <p class="para">
      For details on supported URI options, see
      <a href="https://www.mongodb.com/docs/manual/reference/connection-string/#connections-connection-options" class="link external">&raquo;&nbsp;Connection String Options</a>
      in the MongoDB manual.
      <a href="https://www.mongodb.com/docs/manual/reference/connection-string/#connection-pool-options" class="link external">&raquo;&nbsp;Connection pool options</a>
      are not supported, as the PHP driver does not implement connection pools.
     </p>
     <p class="para">
      The <code class="parameter">uri</code> is a URL, hence any special characters in
      its components need to be URL encoded according to
      <a href="http://www.faqs.org/rfcs/rfc3986" class="link external">&raquo;&nbsp;RFC 3986</a>. This is particularly
      relevant to the username and password, which can often include special
      characters such as <code class="literal">@</code>, <code class="literal">:</code>, or
      <code class="literal">%</code>. When connecting via a Unix domain socket, the socket
      path may contain special characters such as slashes and must be encoded.
      The <span class="function">rawurlencode</span> function may be used to encode
      constituent parts of the URI.
     </p>
     <p class="para">
      The <code class="literal">defaultAuthDb</code> component may be used to specify the
      database name associated with the user&#039;s credentials; however the
      <code class="literal">authSource</code> URI option will take priority if specified.
      If neither <code class="literal">defaultAuthDb</code> nor
      <code class="literal">authSource</code> are specified, the <code class="literal">admin</code>
      database will be used by default. The <code class="literal">defaultAuthDb</code>
      component has no effect in the absence of user credentials.
     </p>


function_name: MongoDB\Driver\Manager.__construct
name: uriOptions
type: null
description:
<p class="para">
      Additional
      <a href="https://www.mongodb.com/docs/manual/reference/connection-string/#connections-connection-options" class="link external">&raquo;&nbsp;connection string options</a>,
      which will overwrite any options with the same name in the
      <code class="parameter">uri</code> parameter.
     </p>
     <p class="para">
      <table class="doctable table">
       <caption><strong>uriOptions</strong></caption>
       
        <thead>
         <tr>
          <th>Option</th>
          <th>Type</th>
          <th>Description</th>
         </tr>

        </thead>

        <tbody class="tbody">
         <tr>
          <td>appname</td>
          <td><span class="type">string</span></td>
          <td>
           <p class="para">
            MongoDB 3.4+ has the ability to annotate connections with metadata
            provided by the connecting client. This metadata is included in the
            server&#039;s logs upon establishing a connection and also recorded in
            slow query logs when database profiling is enabled.
           </p>
           <p class="para">
            This option may be used to specify an application name, which will
            be included in the metadata. The value cannot exceed 128 characters
            in length.
           </p>
          </td>
         </tr>

         <tr>
          <td>authMechanism</td>
          <td><span class="type">string</span></td>
          <td>
           <p class="para">
            The authentication mechanism that MongoDB will use to authenticate
            the connection. For additional details and a list of supported
            values, see
            <a href="https://www.mongodb.com/docs/manual/reference/connection-string/#urioption.authMechanism" class="link external">&raquo;&nbsp;Authentication Options</a>
            in the MongoDB manual.
           </p>
          </td>
         </tr>

         <tr>
          <td>authMechanismProperties</td>
          <td><span class="type">array</span></td>
          <td>
           <p class="para">
            Properties for the selected authentication mechanism. For additional
            details and a list of supported properties, see the
            <a href="https://github.com/mongodb/specifications/blob/master/source/auth/auth.rst#auth-related-options" class="link external">&raquo;&nbsp;Driver Authentication Specification</a>.
           </p>
           <blockquote class="note"><p><strong class="note">Note</strong>: 
            <span class="simpara">
             When not specified in the URI string, this option is expressed as
             an array of key/value pairs. The keys and values in this array
             should be strings.
            </span>
           </p></blockquote>
          </td>
         </tr>

         <tr>
          <td>authSource</td>
          <td><span class="type">string</span></td>
          <td>
           <p class="para">
            The database name associated with the user&#039;s credentials. Defaults
            to the database component of the connection URI, or the
            <code class="literal">admin</code> database if both are unspecified.
           </p>
           <p class="para">
            For authentication mechanisms that delegate credential storage to
            other services (e.g. GSSAPI), this should be
            <code class="literal">&quot;$external&quot;</code>.
           </p>
          </td>
         </tr>

         <tr>
          <td>canonicalizeHostname</td>
          <td><span class="type">bool</span></td>
          <td>
           <p class="para">
            If <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, the driver will resolve the real hostname for the server
            IP address before authenticating via SASL. Some underlying GSSAPI
            layers already do this, but the functionality may be disabled in
            their config (e.g. <code class="literal">krb.conf</code>). Defaults to
            <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
           </p>
           <p class="para">
            This option is a deprecated alias for the
            <code class="literal">&quot;CANONICALIZE_HOST_NAME&quot;</code> property of the
            <code class="literal">&quot;authMechanismProperties&quot;</code> URI option.
           </p>
          </td>
         </tr>

         <tr>
          <td>compressors</td>
          <td><span class="type">string</span></td>
          <td>
           <p class="para">
            A prioritized, comma-delimited list of compressors that the client
            wants to use. Messages are only compressed if the client and server
            share any compressors in common, and the compressor used in each
            direction will depend on the individual configuration of the server
            or driver. See the
            <a href="https://github.com/mongodb/specifications/blob/master/source/compression/OP_COMPRESSED.rst#compressors" class="link external">&raquo;&nbsp;Driver Compression Specification</a>
            for more information.
           </p>
          </td>
         </tr>

         <tr id="mongodb-driver-manager.construct-urioptions.connecttimeoutms">
          <td>connectTimeoutMS</td>
          <td><span class="type">int</span></td>
          <td>
           <p class="para">
            The time in milliseconds to attempt a connection before timing out.
            Defaults to 10,000 milliseconds.
           </p>
          </td>
         </tr>

         <tr>
          <td>directConnection</td>
          <td><span class="type">bool</span></td>
          <td>
           <p class="para">
            This option can be used to control replica set discovery behavior
            when only a single host is provided in the connection string. By
            default, providing a single member in the connection string will
            establish a direct connection or discover additional members
            depending on whether the <code class="literal">&quot;replicaSet&quot;</code> URI option
            is omitted or present, respectively. Specify <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong> to force
            discovery to occur (if <code class="literal">&quot;replicaSet&quot;</code> is omitted)
            or specify <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> to force a direct connection (if
            <code class="literal">&quot;replicaSet&quot;</code> is present).
           </p>
          </td>
         </tr>

         <tr>
          <td>gssapiServiceName</td>
          <td><span class="type">string</span></td>
          <td>
           <p class="para">
            Set the Kerberos service name when connecting to Kerberized MongoDB
            instances. This value must match the service name set on MongoDB
            instances (i.e.
            <a href="https://www.mongodb.com/docs/manual/reference/parameters/#param.saslServiceName" class="link external">&raquo;&nbsp;saslServiceName</a>
            server parameter). Defaults to <code class="literal">&quot;mongodb&quot;</code>.
           </p>
           <p class="para">
            This option is a deprecated alias for the
            <code class="literal">&quot;SERVICE_NAME&quot;</code> property of the
            <code class="literal">&quot;authMechanismProperties&quot;</code> URI option.
           </p>
          </td>
         </tr>

         <tr>
          <td>heartbeatFrequencyMS</td>
          <td><span class="type">int</span></td>
          <td>
           <p class="para">
            Specifies the interval in milliseconds between the driver&#039;s checks
            of the MongoDB topology, counted from the end of the previous check
            until the beginning of the next one. Defaults to 60,000
            milliseconds.
           </p>
           <p class="para">
            Per the
            <a href="https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring.rst#heartbeatfrequencyms" class="link external">&raquo;&nbsp;Server Discovery and Monitoring Specification</a>,
            this value cannot be less than 500 milliseconds.
           </p>
          </td>
         </tr>

         <tr>
          <td>journal</td>
          <td><span class="type">bool</span></td>
          <td>
           <p class="para">
            Corresponds to the default write concern&#039;s
            <code class="parameter">journal</code> parameter. If <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, writes will
            require acknowledgement from MongoDB that the operation has been
            written to the journal. For details, see
            <span class="classname">MongoDB\Driver\WriteConcern</span>.
           </p>
          </td>
         </tr>

         <tr>
          <td>loadBalanced</td>
          <td><span class="type">bool</span></td>
          <td>
           <p class="para">
            Specifies whether the driver is connecting to a MongoDB cluster
            through a load balancer. If <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, the driver may only connect to a
            single host (specified by either the connection string or SRV
            lookup), the <code class="literal">&quot;directConnection&quot;</code> URI option
            cannot be <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, and the <code class="literal">&quot;replicaSet&quot;</code> URI option
            must be omitted. Defaults to <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
           </p>
          </td>
         </tr>

         <tr>
          <td>localThresholdMS</td>
          <td><span class="type">int</span></td>
          <td>
           <p class="para">
            The size in milliseconds of the latency window for selecting among
            multiple suitable MongoDB instances while resolving a read
            preference. Defaults to 15 milliseconds.
           </p>
          </td>
         </tr>

         <tr>
          <td>maxStalenessSeconds</td>
          <td><span class="type">int</span></td>
          <td>
           <p class="para">
            Corresponds to the read preference&#039;s
            <code class="literal">&quot;maxStalenessSeconds&quot;</code>. Specifies, in seconds, how
            stale a secondary can be before the client stops using it for read
            operations. By default, there is no maximum staleness and clients
            will not consider a secondary’s lag when choosing where to direct a
            read operation. For details, see
            <span class="classname">MongoDB\Driver\ReadPreference</span>.
           </p>
           <p class="para">
            If specified, the max staleness must be a signed 32-bit integer
            greater than or equal to
            <strong><code><a href="class.mongodb-driver-readpreference.html#mongodb-driver-readpreference.constants.smallest-max-staleness-seconds">MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS</a></code></strong>
            (i.e. 90 seconds).
           </p>
          </td>
         </tr>

         <tr>
          <td>password</td>
          <td><span class="type">string</span></td>
          <td>
           The password for the user being authenticated. This option is useful
           if the password contains special characters, which would otherwise
           need to be URL encoded for the connection URI.
          </td>
         </tr>

         <tr>
          <td>readConcernLevel</td>
          <td><span class="type">string</span></td>
          <td>
           Corresponds to the read concern&#039;s <code class="parameter">level</code>
           parameter. Specifies the level of read isolation. For details, see
           <span class="classname">MongoDB\Driver\ReadConcern</span>.
          </td>
         </tr>

         <tr>
          <td>readPreference</td>
          <td><span class="type">string</span></td>
          <td>
           <p class="para">
            Corresponds to the read preference&#039;s <code class="parameter">mode</code>
            parameter. Defaults to <code class="literal">&quot;primary&quot;</code>. For details,
            see <span class="classname">MongoDB\Driver\ReadPreference</span>.
           </p>
          </td>
         </tr>

         <tr>
          <td>readPreferenceTags</td>
          <td><span class="type">array</span></td>
          <td>
           <p class="para">
            Corresponds to the read preference&#039;s <code class="parameter">tagSets</code>
            parameter. Tag sets allow you to target read operations to specific
            members of a replica set. For details, see
            <span class="classname">MongoDB\Driver\ReadPreference</span>.
           </p>
           <blockquote class="note"><p><strong class="note">Note</strong>: 
            <span class="simpara">
             When not specified in the URI string, this option is expressed as
             an array consistent with the format expected by
             <span class="function">MongoDB\Driver\ReadPreference::__construct</span>.
            </span>
           </p></blockquote>
          </td>
         </tr>

         <tr>
          <td>replicaSet</td>
          <td><span class="type">string</span></td>
          <td>
           <p class="para">
            Specifies the name of the replica set.
           </p>
          </td>
         </tr>

         <tr>
          <td>retryReads</td>
          <td><span class="type">bool</span></td>
          <td>
           <p class="para">
            Specifies whether or not the driver should automatically retry
            certain read operations that fail due to transient network errors
            or replica set elections. This functionality requires MongoDB 3.6+.
            Defaults to <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>.
           </p>
           <p class="para">
            See the
            <a href="https://github.com/mongodb/specifications/blob/master/source/retryable-reads/retryable-reads.rst" class="link external">&raquo;&nbsp;Retryable Reads Specification</a>
            for more information.
           </p>
          </td>
         </tr>

         <tr>
          <td>retryWrites</td>
          <td><span class="type">bool</span></td>
          <td>
           <p class="para">
            Specifies whether or not the driver should automatically retry
            certain write operations that fail due to transient network errors
            or replica set elections. This functionality requires MongoDB 3.6+.
            Defaults to <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>.
           </p>
           <p class="para">
            See
            <a href="https://www.mongodb.com/docs/manual/core/retryable-writes/" class="link external">&raquo;&nbsp;Retryable Writes</a>
            in the MongoDB manual for more information.
           </p>
          </td>
         </tr>

         <tr>
          <td>safe</td>
          <td><span class="type">bool</span></td>
          <td>
           <p class="para">
            If <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, specifies <code class="literal">1</code> for the default write
            concern&#039;s <code class="parameter">w</code> parameter. If <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>,
            <code class="literal">0</code> is specified. For details, see
            <span class="classname">MongoDB\Driver\WriteConcern</span>.
           </p>
           <p class="para">
            This option is deprecated and should not be used.
           </p>
          </td>
         </tr>

         <tr id="mongodb-driver-manager.construct-urioptions.serverselectiontimeoutms">
          <td>serverSelectionTimeoutMS</td>
          <td><span class="type">int</span></td>
          <td>
           <p class="para">
            Specifies how long in milliseconds to block for server selection
            before throwing an exception. Defaults to 30,000 milliseconds.
           </p>
          </td>
         </tr>

         <tr>
          <td>serverSelectionTryOnce</td>
          <td><span class="type">bool</span></td>
          <td>
           <p class="para">
            When <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, instructs the driver to scan the MongoDB deployment
            exactly once after server selection fails and then either select a
            server or raise an error. When <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>, the driver blocks and
            searches for a server up to the
            <code class="literal">&quot;serverSelectionTimeoutMS&quot;</code> value. Defaults to
            <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>.
           </p>
          </td>
         </tr>

         <tr>
          <td>socketCheckIntervalMS</td>
          <td><span class="type">int</span></td>
          <td>
           <p class="para">
            If a socket has not been used recently, the driver must check it via
            a <code class="literal">hello</code> command before using it for any
            operation. Defaults to 5,000 milliseconds.
           </p>
          </td>
         </tr>

         <tr>
          <td>socketTimeoutMS</td>
          <td><span class="type">int</span></td>
          <td>
           <p class="para">
            The time in milliseconds to attempt a send or receive on a socket
            before timing out. Defaults to 300,000 milliseconds (i.e. five
            minutes).
           </p>
          </td>
         </tr>

         <tr>
          <td>srvMaxHosts</td>
          <td><span class="type">int</span></td>
          <td>
           <p class="para">
            The maximum number of SRV results to randomly select when initially
            populating the seedlist or, during SRV polling, adding new hosts to
            the topology. Defaults to <code class="literal">0</code> (i.e. no maximum).
           </p>
          </td>
         </tr>

         <tr>
          <td>srvServiceName</td>
          <td><span class="type">string</span></td>
          <td>
           <p class="para">
            The service name to use for SRV lookup in initial DNS seedlist
            discovery and SRV polling. Defaults to <code class="literal">&quot;mongodb&quot;</code>.
           </p>
          </td>
         </tr>

         <tr>
          <td>ssl</td>
          <td><span class="type">bool</span></td>
          <td>
           <p class="para">
            Initiates the connection with TLS/SSL if <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>. Defaults to
            <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
           </p>
           <p class="para">
            This option is a deprecated alias for the <code class="literal">&quot;tls&quot;</code>
            URI option.
           </p>
          </td>
         </tr>

         <tr>
          <td>tls</td>
          <td><span class="type">bool</span></td>
          <td>
           <p class="para">
            Initiates the connection with TLS/SSL if <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>. Defaults to
            <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
           </p>
          </td>
         </tr>

         <tr>
          <td>tlsAllowInvalidCertificates</td>
          <td><span class="type">bool</span></td>
          <td>
           <p class="para">
            Specifies whether or not the driver should error when the server&#039;s
            TLS certificate is invalid. Defaults to <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
           </p>
           <div class="warning"><strong class="warning">Warning</strong>
            <p class="simpara">
             Disabling certificate validation creates a vulnerability.
            </p>
           </div>
          </td>
         </tr>

         <tr>
          <td>tlsAllowInvalidHostnames</td>
          <td><span class="type">bool</span></td>
          <td>
           <p class="para">
            Specifies whether or not the driver should error when there is a
            mismatch between the server&#039;s hostname and the hostname specified by
            the TLS certificate. Defaults to <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
           </p>
           <div class="warning"><strong class="warning">Warning</strong>
            <p class="simpara">
             Disabling certificate validation creates a vulnerability. Allowing
             invalid hostnames may expose the driver to a
             <a href="https://en.wikipedia.org/wiki/Man-in-the-middle_attack" class="link external">&raquo;&nbsp;man-in-the-middle attack</a>.
            </p>
           </div>
          </td>
         </tr>

         <tr>
          <td>tlsCAFile</td>
          <td><span class="type">string</span></td>
          <td>
           <p class="para">
            Path to file with either a single or bundle of certificate
            authorities to be considered trusted when making a TLS connection.
            The system certificate store will be used by default.
           </p>
          </td>
         </tr>

         <tr>
          <td>tlsCertificateKeyFile</td>
          <td><span class="type">string</span></td>
          <td>
           <p class="para">
            Path to the client certificate file or the client private key file;
            in the case that they both are needed, the files should be
            concatenated.
           </p>
          </td>
         </tr>

         <tr>
          <td>tlsCertificateKeyFilePassword</td>
          <td><span class="type">string</span></td>
          <td>
           <p class="para">
            Password to decrypt the client private key (i.e.
            <code class="literal">&quot;tlsCertificateKeyFile&quot;</code> URI option) to be used
            for TLS connections.
           </p>
          </td>
         </tr>

         <tr>
          <td>tlsDisableCertificateRevocationCheck</td>
          <td><span class="type">bool</span></td>
          <td>
           <p class="para">
            If <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, the driver will not attempt to check certificate
            revocation status (e.g. OCSP, CRL). Defaults to <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
           </p>
          </td>
         </tr>

         <tr>
          <td>tlsDisableOCSPEndpointCheck</td>
          <td><span class="type">bool</span></td>
          <td>
           <p class="para">
            If <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, the driver will not attempt to contact an OCSP responder
            endpoint if needed (i.e. an OCSP response is not stapled). Defaults
            to <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
           </p>
          </td>
         </tr>

         <tr>
          <td>tlsInsecure</td>
          <td><span class="type">bool</span></td>
          <td>
           <p class="para">
            Relax TLS constraints as much as possible. Specifying <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> for
            this option has the same effect as specifying <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong> for both the
            <code class="literal">&quot;tlsAllowInvalidCertificates&quot;</code> and
            <code class="literal">&quot;tlsAllowInvalidHostnames&quot;</code> URI options. Defaults
            to <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
           </p>
           <div class="warning"><strong class="warning">Warning</strong>
            <p class="simpara">
             Disabling certificate validation creates a vulnerability. Allowing
             invalid hostnames may expose the driver to a
             <a href="https://en.wikipedia.org/wiki/Man-in-the-middle_attack" class="link external">&raquo;&nbsp;man-in-the-middle attack</a>.
            </p>
           </div>
          </td>
         </tr>

         <tr>
          <td>username</td>
          <td><span class="type">string</span></td>
          <td>
           The username for the user being authenticated. This option is useful
           if the username contains special characters, which would otherwise
           need to be URL encoded for the connection URI.
          </td>
         </tr>

         <tr>
          <td>w</td>
          <td><span class="type"><span class="type">int</span><span class="type">string</span></span></td>
          <td>
           <p class="para">
            Corresponds to the default write concern&#039;s <code class="parameter">w</code>
            parameter. For details, see
            <span class="classname">MongoDB\Driver\WriteConcern</span>.
           </p>
          </td>
         </tr>

         <tr>
          <td>wTimeoutMS</td>
          <td><span class="type"><span class="type">int</span><span class="type">string</span></span></td>
          <td>
           <p class="para">
            Corresponds to the default write concern&#039;s
            <code class="parameter">wtimeout</code> parameter. Specifies a time limit,
            in milliseconds, for the write concern. For details, see
            <span class="classname">MongoDB\Driver\WriteConcern</span>.
           </p>
           <p class="para">
            If specified, <code class="literal">wTimeoutMS</code> must be a signed 32-bit
            integer greater than or equal to zero.
           </p>
          </td>
         </tr>

         <tr>
          <td>zlibCompressionLevel</td>
          <td><span class="type">int</span></td>
          <td>
           <p class="para">
            Specifies the compression level to use for the zlib compressor. This
            option has no effect if <code class="literal">zlib</code> is not included in
            the <code class="literal">&quot;compressors&quot;</code> URI option. See the
            <a href="https://github.com/mongodb/specifications/blob/master/source/compression/OP_COMPRESSED.rst#zlibcompressionlevel" class="link external">&raquo;&nbsp;Driver Compression Specification</a>
            for more information.
           </p>
          </td>
         </tr>

        </tbody>
       
      </table>

     </p>


function_name: MongoDB\Driver\Manager.__construct
name: driverOptions
type: null
description:
<p class="para">
      <table class="doctable table">
       <caption><strong>driverOptions</strong></caption>
       
        <thead>
         <tr>
          <th>Option</th>
          <th>Type</th>
          <th>Description</th>
         </tr>

        </thead>

        <tbody class="tbody">
         <tr>
          <td>allow_invalid_hostname</td>
          <td><span class="type">bool</span></td>
          <td>
           <p class="para">
            Disables hostname validation if <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>. Defaults to <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
           </p>
           <p class="para">
            Allowing invalid hostnames may expose the driver to a
            <a href="https://en.wikipedia.org/wiki/Man-in-the-middle_attack" class="link external">&raquo;&nbsp;man-in-the-middle attack</a>.
           </p>
           <p class="para">
            This option is a deprecated alias for the
            <code class="literal">&quot;tlsAllowInvalidHostnames&quot;</code> URI option.
           </p>
          </td>
         </tr>

         <tr>
          <td>autoEncryption</td>
          <td><span class="type">array</span></td>
          <td>
           <p class="para">
            Provides options to enable automatic client-side field level
            encryption.
           </p>
           <blockquote class="note"><p><strong class="note">Note</strong>: 
            <p class="para">
             Automatic encryption is an enterprise-only feature that only
             applies to operations on a collection. Automatic encryption is not
             supported for operations on a database or view, and operations that
             are not bypassed will result in error (see
             <a href="https://github.com/mongodb/specifications/blob/master/source/client-side-encryption/client-side-encryption.rst#libmongocrypt-auto-encryption-allow-list" class="link external">&raquo;&nbsp;libmongocrypt: Auto Encryption Allow-List</a>). To bypass automatic encryption
             for all operations, set <code class="literal">bypassAutoEncryption</code> to
             <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>.
            </p>
            <p class="para">
             Automatic encryption requires the authenticated user to have the
             <a href="https://www.mongodb.com/docs/manual/reference/command/listCollections/#required-access" class="link external">&raquo;&nbsp;listCollections</a>
             privilege action.
            </p>
            <p class="para">
             Explicit encryption/decryption and automatic decryption is a
             community feature. The driver can still automatically decrypt when
             <code class="literal">bypassAutoEncryption</code> is <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>.
            </p>
           </p></blockquote>
           <p class="para">
            The following options are supported:

            <table class="doctable table">
             <caption><strong>Options for automatic encryption</strong></caption>
             
              <thead>
               <tr>
                <th>Option</th>
                <th>Type</th>
                <th>Description</th>
               </tr>

              </thead>

              <tbody class="tbody">
               
         <tr>
          <td>keyVaultClient</td>
          <td><span class="classname">MongoDB\Driver\Manager</span></td>
          <td>The Manager used to route data key queries to a separate MongoDB cluster. By default, the current Manager and cluster is used.</td>
         </tr>


               
         <tr>
          <td>keyVaultNamespace</td>
          <td><span class="type">string</span></td>
          <td>A fully qualified namespace (e.g. <code class="literal">&quot;databaseName.collectionName&quot;</code>) denoting the collection that contains all data keys used for encryption and decryption. This option is required.</td>
         </tr>


               
         <tr>
          <td>kmsProviders</td>
          <td><span class="type">array</span></td>
          <td>
           <p class="para">
            A document containing the configuration for one or more KMS providers, which are used to encrypt data keys. Supported providers include <code class="literal">&quot;aws&quot;</code>, <code class="literal">&quot;azure&quot;</code>, <code class="literal">&quot;gcp&quot;</code>, <code class="literal">&quot;kmip&quot;</code>, and <code class="literal">&quot;local&quot;</code> and at least one must be specified.
           </p>
           <p class="para">
            If an empty document is specified for <code class="literal">&quot;aws&quot;</code>,
            <code class="literal">&quot;azure&quot;</code>, or <code class="literal">&quot;gcp&quot;</code>, the driver
            will attempt to configure the provider using
            <a href="https://github.com/mongodb/specifications/blob/master/source/client-side-encryption/client-side-encryption.rst#automatic-credentials" class="link external">&raquo;&nbsp;Automatic Credentials</a>.
           </p>
           <p class="para">
            The format for <code class="literal">&quot;aws&quot;</code> is as follows:
           </p>
           <div class="example-contents">
<div class="javascriptcode"><pre class="javascriptcode">aws: {
    accessKeyId: &lt;string&gt;,
    secretAccessKey: &lt;string&gt;,
    sessionToken: &lt;optional string&gt;
}</pre>
</div>
           </div>

           <p class="para">
            The format for <code class="literal">&quot;azure&quot;</code> is as follows:
           </p>
           <div class="example-contents">
<div class="javascriptcode"><pre class="javascriptcode">azure: {
    tenantId: &lt;string&gt;,
    clientId: &lt;string&gt;,
    clientSecret: &lt;string&gt;,
    identityPlatformEndpoint: &lt;optional string&gt; // Defaults to &quot;login.microsoftonline.com&quot;
}</pre>
</div>
           </div>

           <p class="para">
            The format for <code class="literal">&quot;gcp&quot;</code> is as follows:
           </p>
           <div class="example-contents">
<div class="javascriptcode"><pre class="javascriptcode">gcp: {
    email: &lt;string&gt;,
    privateKey: &lt;base64 string&gt;|&lt;MongoDB\BSON\Binary&gt;,
    endpoint: &lt;optional string&gt; // Defaults to &quot;oauth2.googleapis.com&quot;
}</pre>
</div>
           </div>

           <p class="para">
            The format for <code class="literal">&quot;kmip&quot;</code> is as follows:
           </p>
           <div class="example-contents">
<div class="javascriptcode"><pre class="javascriptcode">kmip: {
    endpoint: &lt;string&gt;
}</pre>
</div>
           </div>

           <p class="para">
            The format for <code class="literal">&quot;local&quot;</code> is as follows:
           </p>
           <div class="example-contents">
<div class="javascriptcode"><pre class="javascriptcode">local: {
    // 96-byte master key used to encrypt/decrypt data keys
    key: &lt;base64 string&gt;|&lt;MongoDB\BSON\Binary&gt;
}</pre>
</div>
           </div>

          </td>
         </tr>


               
         <tr>
          <td>tlsOptions</td>
          <td><span class="type">array</span></td>
          <td>
           <p class="para">
            A document containing the TLS configuration for one or more KMS providers. Supported providers include <code class="literal">&quot;aws&quot;</code>, <code class="literal">&quot;azure&quot;</code>, <code class="literal">&quot;gcp&quot;</code>, and <code class="literal">&quot;kmip&quot;</code>. All providers support the following options:
           </p>
           <div class="example-contents">
<div class="javascriptcode"><pre class="javascriptcode">&lt;provider&gt;: {
    tlsCaFile: &lt;optional string&gt;,
    tlsCertificateKeyFile: &lt;optional string&gt;,
    tlsCertificateKeyFilePassword: &lt;optional string&gt;,
    tlsDisableOCSPEndpointCheck: &lt;optional bool&gt;
}</pre>
</div>
           </div>

          </td>
         </tr>


               <tr>
                <td>schemaMap</td>
                <td><span class="type"><span class="type">array</span><span class="type">object</span></span></td>
                <td>
                 <p class="para">
                  Map of collection namespaces to a local JSON schema. This is
                  used to configure automatic encryption. See
                  <a href="https://www.mongodb.com/docs/manual/reference/security-client-side-automatic-json-schema/" class="link external">&raquo;&nbsp;Automatic Encryption Rules</a>
                  in the MongoDB manual for more information. It is an error to
                  specify a collection in both <code class="literal">schemaMap</code> and
                  <code class="literal">encryptedFieldsMap</code>.
                 </p>
                 <blockquote class="note"><p><strong class="note">Note</strong>: 
                  <span class="simpara">
                   Supplying a <code class="literal">schemaMap</code> provides more
                   security than relying on JSON schemas obtained from the
                   server. It protects against a malicious server advertising a
                   false JSON schema, which could trick the client into sending
                   unencrypted data that should be encrypted.
                  </span>
                 </p></blockquote>
                 <blockquote class="note"><p><strong class="note">Note</strong>: 
                  <span class="simpara">
                   Schemas supplied in the <code class="literal">schemaMap</code> only
                   apply to configuring automatic encryption for client side
                   encryption. Other validation rules in the JSON schema will
                   not be enforced by the driver and will result in an error.
                  </span>
                 </p></blockquote>
                </td>
               </tr>

               <tr>
                <td>bypassAutoEncryption</td>
                <td><span class="type">bool</span></td>
                <td>
                 If <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, <code class="literal">mongocryptd</code> will not be spawned
                 automatically. This is used to disable automatic encryption.
                 Defaults to <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
                </td>
               </tr>

               <tr>
                <td>bypassQueryAnalysis</td>
                <td><span class="type">bool</span></td>
                <td>
                 <p class="para">
                  If <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, automatic analysis of outgoing commands will be
                  disabled and <code class="literal">mongocryptd</code> will not be
                  spawned automatically. This enables the use case of explicit
                  encryption for querying indexed fields without requiring the
                  enterprise licensed <code class="literal">crypt_shared</code> library or
                  <code class="literal">mongocryptd</code> process. Defaults to <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
                 </p>
                </td>
               </tr>

               <tr>
                <td>encryptedFieldsMap</td>
                <td><span class="type"><span class="type">array</span><span class="type">object</span></span></td>
                <td>
                 <p class="para">
                  Map of collection namespaces to an
                  <code class="literal">encryptedFields</code> document. This is used to
                  configure queryable encryption. See
                  <a href="https://www.mongodb.com/docs/manual/core/queryable-encryption/fundamentals/encrypt-and-query/" class="link external">&raquo;&nbsp;Field Encryption and Queryability</a>
                  in the MongoDB manual for more information. It is an error to
                  specify a collection in both
                  <code class="literal">encryptedFieldsMap</code> and
                  <code class="literal">schemaMap</code>.
                 </p>
                 <blockquote class="note"><p><strong class="note">Note</strong>: 
                  <span class="simpara">
                   Supplying an <code class="literal">encryptedFieldsMap</code> provides
                   more security than relying on an
                   <code class="literal">encryptedFields</code> obtained from the server.
                   It protects against a malicious server advertising a false
                   <code class="literal">encryptedFields</code>.
                  </span>
                 </p></blockquote>
                </td>
               </tr>

               <tr>
                <td>extraOptions</td>
                <td><span class="type">array</span></td>
                <td>
                 <p class="para">
                  The <code class="literal">extraOptions</code> relate to the
                  <code class="literal">mongocryptd</code> process. The following options
                  are supported:
                 </p>
                 <ul class="simplelist">
                  <li><code class="literal">mongocryptdURI</code> (<span class="type">string</span>): URI to connect to an existing <code class="literal">mongocryptd</code> process. Defaults to <code class="literal">&quot;mongodb://localhost:27020&quot;</code>.</li>
                  <li><code class="literal">mongocryptdBypassSpawn</code> (<span class="type">bool</span>): If <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, prevent the driver from spawning <code class="literal">mongocryptd</code>. Defaults to <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.</li>
                  <li><code class="literal">mongocryptdSpawnPath</code> (<span class="type">string</span>): Absolute path to search for <code class="literal">mongocryptd</code> binary. Defaults to empty string and consults system paths.</li>
                  <li><code class="literal">mongocryptdSpawnArgs</code> (<span class="type">array</span>): Array of string arguments to pass to <code class="literal">mongocryptd</code> when spawning. Defaults to <code class="literal">[&quot;--idleShutdownTimeoutSecs=60&quot;]</code>.</li>
                  <li><code class="literal">cryptSharedLibPath</code> (<span class="type">string</span>): Absolute path to <code class="literal">crypt_shared</code> shared library. Defaults to empty string and consults system paths.</li>
                  <li><code class="literal">cryptSharedLibRequired</code> (<span class="type">bool</span>): If <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, require the driver to load <code class="literal">crypt_shared</code>. Defaults to <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.</li>
                 </ul>
                 <p class="para">
                  See the <a href="https://github.com/mongodb/specifications/blob/master/source/client-side-encryption/client-side-encryption.rst#extraoptions" class="link external">&raquo;&nbsp;Client-Side Encryption Specification</a> for more information.
                 </p>
                </td>
               </tr>

              </tbody>
             
            </table>

           </p>

           <blockquote class="note"><p><strong class="note">Note</strong>: 
            <span class="simpara">
             Automatic encryption is an enterprise only feature that only
             applies to operations on a collection. Automatic encryption is not
             supported for operations on a database or view, and operations that
             are not bypassed will result in error. To bypass automatic
             encryption for all operations, set <code class="literal">bypassAutoEncryption=true</code>
             in <code class="literal">autoEncryption</code>. For more information on
             allowed operations, see the
             <a href="https://github.com/mongodb/specifications/blob/master/source/client-side-encryption/client-side-encryption.rst#libmongocrypt-auto-encryption-whitelist" class="link external">&raquo;&nbsp;Client-Side Encryption Specification</a>.
            </span>
           </p></blockquote>
          </td>
         </tr>

         <tr>
          <td>ca_dir</td>
          <td><span class="type">string</span></td>
          <td>
           <p class="para">
            Path to a correctly hashed certificate directory. The system
            certificate store will be used by default.
           </p>
          </td>
         </tr>

         <tr>
          <td>ca_file</td>
          <td><span class="type">string</span></td>
          <td>
           <p class="para">
            Path to file with either a single or bundle of certificate
            authorities to be considered trusted when making a TLS connection.
            The system certificate store will be used by default.
           </p>
           <p class="para">
            This option is a deprecated alias for the
            <code class="literal">&quot;tlsCAFile&quot;</code> URI option.
           </p>
          </td>
         </tr>

         <tr>
          <td>context</td>
          <td><span class="type">resource</span></td>
          <td>
           <p class="para">
            <a href="context.ssl.html" class="link">SSL context options</a> to be used as
            fallbacks if a driver option or its equivalent URI option, if any,
            is not specified. Note that the driver does not consult the default
            stream context (i.e.
            <span class="function">stream_context_get_default</span>). The following
            context options are supported:
           </p>

           <table class="doctable table">
            <caption><strong>SSL context option fallbacks</strong></caption>
            
             <thead>
              <tr>
               <th>Driver option</th>
               <th>Context option (fallback)</th>
              </tr>

             </thead>

             <tbody class="tbody">
              <tr>
               <td>ca_dir</td>
               <td>capath</td>
              </tr>

              <tr>
               <td>ca_file</td>
               <td>cafile</td>
              </tr>

              <tr>
               <td>pem_file</td>
               <td>local_cert</td>
              </tr>

              <tr>
               <td>pem_pwd</td>
               <td>passphrase</td>
              </tr>

              <tr>
               <td>weak_cert_validation</td>
               <td>allow_self_signed</td>
              </tr>

             </tbody>
            
           </table>

           <p class="para">
            This option is supported for backwards compatibility, but should be
            considered deprecated.
           </p>
          </td>
         </tr>

         <tr>
          <td>crl_file</td>
          <td><span class="type">string</span></td>
          <td>Path to a certificate revocation list file.</td>
         </tr>

         <tr>
          <td>disableClientPersistence</td>
          <td><span class="type">bool</span></td>
          <td>
           <p class="para">
            If <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>, this Manager will use a new libmongoc client, which will
            not be persisted or shared with other Manager objects. When this
            Manager object is freed, its client will be destroyed and any
            connections will be closed. Defaults to <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>.
           </p>
           <blockquote class="note"><p><strong class="note">Note</strong>: 
            <span class="simpara">
             Disabling client persistence is not generally recommended.
            </span>
           </p></blockquote>
          </td>
         </tr>

         <tr>
          <td>driver</td>
          <td><span class="type">array</span></td>
          <td>
           <p class="para">
            Allows custom drivers to append their own metadata to the server
            handshake. By default, the driver submits its own name, version, and
            platform (i.e. PHP version) in the handshake. Custom drivers can
            specify strings for the <code class="literal">&quot;name&quot;</code>,
            <code class="literal">&quot;version&quot;</code>, and
            <code class="literal">&quot;platform&quot;</code> keys of this array, which will be
            appended to the respective field(s) in the handshake document.
           </p>
           <blockquote class="note"><p><strong class="note">Note</strong>: 
            <span class="simpara">
             Handshake information is limited to 512 bytes. The driver will
             truncate handshake data to fit within this 512-byte string. Drivers
             and ODMs are encouraged to keep their own metadata concise.
            </span>
           </p></blockquote>
          </td>
         </tr>

         <tr>
          <td>pem_file</td>
          <td><span class="type">string</span></td>
          <td>
           <p class="para">
            Path to a <acronym class="acronym">PEM</acronym> encoded certificate to use for client authentication.
           </p>
           <p class="para">
            This option is a deprecated alias for the
            <code class="literal">&quot;tlsCertificateKeyFile&quot;</code> URI option.
           </p>
          </td>
         </tr>

         <tr>
          <td>pem_pwd</td>
          <td><span class="type">string</span></td>
          <td>
           <p class="para">
            Passphrase for the <acronym class="acronym">PEM</acronym> encoded certificate (if applicable).
           </p>
           <p class="para">
            This option is a deprecated alias for the
            <code class="literal">&quot;tlsCertificateKeyFilePassword&quot;</code> URI option.
           </p>
          </td>
         </tr>

         <tr>
          <td>serverApi</td>
          <td><span class="classname">MongoDB\Driver\ServerApi</span></td>
          <td>
           <p class="para">
            This option is used to declare a server API version for the manager.
            If omitted, no API version is declared.
           </p>
          </td>
         </tr>

         <tr>
          <td>weak_cert_validation</td>
          <td><span class="type">bool</span></td>
          <td>
           <p class="para">
            Disables certificate validation if <strong><code><a href="reserved.constants.html#constant.true">true</a></code></strong>. Defaults to <strong><code><a href="reserved.constants.html#constant.false">false</a></code></strong>
           </p>
           <p class="para">
            This option is a deprecated alias for the
            <code class="literal">&quot;tlsAllowInvalidCertificates&quot;</code> URI option.
           </p>
          </td>
         </tr>

        </tbody>
       
      </table>

     </p>


