# php_manual

id: array_column
type: function
doc:
<comment>Description:</comment>
  Return the values from a single column in the input array
  
  <strong>array_column()</strong> returns the values from a single column of the <strong>$array</strong>, identified by the
  <strong>$column_key</strong>. Optionally, an <strong>$index_key</strong> may be provided to index the values in the returned array
  by the values from the <strong>$index_key</strong> column of the input array.

<comment>Param:</comment>
  <info>array</info>            <strong>$array</strong>       A multi-dimensional array or an array of objects from which to pull
                                a column of values from. If an array of objects is provided, then
                                public properties can be directly pulled. In order for protected or
                                private properties to be pulled, the class must implement both the
                                <strong>__get()</strong> and <strong>__isset()</strong> magic methods.
  <info>int|string|null</info>  <strong>$column_key</strong>  The column of values to return. This value may be an integer key of
                                the column you wish to retrieve, or it may be a string key name for
                                an associative array or property name. It may also be <info>null</info> to return
                                complete arrays or objects (this is useful together with <strong>$index_key</strong>
                                to reindex the array).
  <info>int|string|null</info>  <strong>$index_key</strong>   The column to use as the index/keys for the returned array. This
                                value may be the integer key of the column, or it may be the string
                                key name. The value is cast as usual for array keys (however, prior
                                to PHP 8.0.0, objects supporting conversion to string were also
                                allowed).

<comment>Return:</comment>
  <info>array</info>  Returns an array of values representing a single column from the input array.


id: array_combine
type: function
doc:
<comment>Description:</comment>
  Creates an array by using one array for keys and another for its values
  
  Creates an <info>array</info> by using the values from the <strong>$keys</strong> array as keys and the values from the <strong>$values</strong>
  array as the corresponding values.

<comment>Param:</comment>
  <info>array</info>  <strong>$keys</strong>    Array of keys to be used. Illegal values for key will be converted to <info>string</info>.
  <info>array</info>  <strong>$values</strong>  <info>Array</info> of values to be used

<comment>Return:</comment>
  <info>array</info>  Returns the combined <info>array</info>.

<comment>See Also:</comment>
   * <strong>array_merge()</strong>
   * <strong>array_walk()</strong>
   * <strong>array_values()</strong>
   * <strong>array_map()</strong>


id: array_count_values
type: function
doc:
<comment>Description:</comment>
  Counts the occurrences of each distinct value in an array
  
  <strong>array_count_values()</strong> returns an array using the values of <strong>$array</strong> (which must be <info>int</info>s or <info>string</info>s)
  as keys and their frequency in <strong>$array</strong> as values.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  The array of values to count

<comment>Return:</comment>
  <info>array</info>  Returns an associative array of values from <strong>$array</strong> as keys and their count as value.

<comment>See Also:</comment>
   * <strong>count()</strong>
   * <strong>array_unique()</strong>
   * <strong>array_values()</strong>
   * <strong>count_chars()</strong>


id: array_diff
type: function
doc:
<comment>Description:</comment>
  Computes the difference of arrays
  
  Compares <strong>$array</strong> against one or more other arrays and returns the values in <strong>$array</strong> that are not
  present in any of the other arrays.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>   The array to compare from
  <info>array</info>  <strong>$arrays</strong>  Arrays to compare against

<comment>Return:</comment>
  <info>array</info>  Returns an <info>array</info> containing all the entries from <strong>$array</strong> that are not present in any of the
         other arrays. Keys in the <strong>$array</strong> array are preserved.

<comment>See Also:</comment>
   * <strong>array_diff_assoc()</strong>
   * <strong>array_udiff()</strong>
   * <strong>array_intersect()</strong>
   * <strong>array_intersect_assoc()</strong>


id: array_diff_assoc
type: function
doc:
<comment>Description:</comment>
  Computes the difference of arrays with additional index check
  
  Compares <strong>$array</strong> against <strong>$arrays</strong> and returns the difference. Unlike <strong>array_diff()</strong> the array keys are
  also used in the comparison.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>   The array to compare from
  <info>array</info>  <strong>$arrays</strong>  Arrays to compare against

<comment>Return:</comment>
  <info>array</info>  Returns an <info>array</info> containing all the values from <strong>$array</strong> that are not present in any of the
         other arrays.

<comment>See Also:</comment>
   * <strong>array_diff()</strong>
   * <strong>array_diff_uassoc()</strong>
   * <strong>array_udiff_assoc()</strong>
   * <strong>array_udiff_uassoc()</strong>
   * <strong>array_intersect()</strong>
   * <strong>array_intersect_assoc()</strong>


id: array_diff_key
type: function
doc:
<comment>Description:</comment>
  Computes the difference of arrays using keys for comparison
  
  Compares the keys from <strong>$array</strong> against the keys from <strong>$arrays</strong> and returns the difference. This
  function is like <strong>array_diff()</strong> except the comparison is done on the keys instead of the values.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>   The array to compare from
  <info>array</info>  <strong>$arrays</strong>  Arrays to compare against

<comment>Return:</comment>
  <info>array</info>  Returns an <info>array</info> containing all the entries from <strong>$array</strong> whose keys are absent from all of
         the other arrays.

<comment>See Also:</comment>
   * <strong>array_diff()</strong>
   * <strong>array_udiff()</strong>
   * <strong>array_diff_assoc()</strong>
   * <strong>array_diff_uassoc()</strong>
   * <strong>array_udiff_assoc()</strong>
   * <strong>array_udiff_uassoc()</strong>
   * <strong>array_diff_ukey()</strong>
   * <strong>array_intersect()</strong>
   * <strong>array_intersect_assoc()</strong>
   * <strong>array_intersect_uassoc()</strong>
   * <strong>array_intersect_key()</strong>
   * <strong>array_intersect_ukey()</strong>


id: array_diff_uassoc
type: function
doc:
<comment>Description:</comment>
  Computes the difference of arrays with additional index check which is performed by a user
  supplied
  callback function
  
  Compares <strong>$array</strong> against <strong>$arrays</strong> and returns the difference. Unlike <strong>array_diff()</strong> the array keys are
  used in the comparison.
  
  Unlike <strong>array_diff_assoc()</strong> a user supplied callback function is used for the indices comparison,
  not internal function.

<comment>Param:</comment>
  <info>array</info>     <strong>$array</strong>             The array to compare from
  <info>array</info>     <strong>$arrays</strong>            Arrays to compare against
  <info>callable</info>  <strong>$key_compare_func</strong>  The comparison function must return an integer less than, equal to,
                               or greater than zero if the first argument is considered to be
                               respectively less than, equal to, or greater than the second.
                               
                               Returning non-integer values from the comparison function, such as
                               <info>float</info>, will result in an internal cast to <info>int</info> of the callback's
                               return value. So values such as <return>0.99</return> and <return>0.1</return> will both be cast to an
                               integer value of <return>0</return>, which will compare such values as equal.

<comment>Return:</comment>
  <info>array</info>  Returns an <info>array</info> containing all the entries from <strong>$array</strong> that are not present in any of the
         other arrays.

<comment>See Also:</comment>
   * <strong>array_diff()</strong>
   * <strong>array_diff_assoc()</strong>
   * <strong>array_udiff()</strong>
   * <strong>array_udiff_assoc()</strong>
   * <strong>array_udiff_uassoc()</strong>
   * <strong>array_intersect()</strong>
   * <strong>array_intersect_assoc()</strong>
   * <strong>array_uintersect()</strong>
   * <strong>array_uintersect_assoc()</strong>
   * <strong>array_uintersect_uassoc()</strong>


id: array_diff_ukey
type: function
doc:
<comment>Description:</comment>
  Computes the difference of arrays using a callback function on the keys for comparison
  
  Compares the keys from <strong>$array</strong> against the keys from <strong>$arrays</strong> and returns the difference. This
  function is like <strong>array_diff()</strong> except the comparison is done on the keys instead of the values.
  
  Unlike <strong>array_diff_key()</strong> a user supplied callback function is used for the indices comparison, not
  internal function.

<comment>Param:</comment>
  <info>array</info>     <strong>$array</strong>             The array to compare from
  <info>array</info>     <strong>$arrays</strong>            Arrays to compare against
  <info>callable</info>  <strong>$key_compare_func</strong>  The comparison function must return an integer less than, equal to,
                               or greater than zero if the first argument is considered to be
                               respectively less than, equal to, or greater than the second.
                               
                               Returning non-integer values from the comparison function, such as
                               <info>float</info>, will result in an internal cast to <info>int</info> of the callback's
                               return value. So values such as <return>0.99</return> and <return>0.1</return> will both be cast to an
                               integer value of <return>0</return>, which will compare such values as equal.

<comment>Return:</comment>
  <info>array</info>  Returns an <info>array</info> containing all the entries from <strong>$array</strong> that are not present in any of the
         other arrays.

<comment>See Also:</comment>
   * <strong>array_diff()</strong>
   * <strong>array_udiff()</strong>
   * <strong>array_diff_assoc()</strong>
   * <strong>array_diff_uassoc()</strong>
   * <strong>array_udiff_assoc()</strong>
   * <strong>array_udiff_uassoc()</strong>
   * <strong>array_diff_key()</strong>
   * <strong>array_intersect()</strong>
   * <strong>array_intersect_assoc()</strong>
   * <strong>array_intersect_uassoc()</strong>
   * <strong>array_intersect_key()</strong>
   * <strong>array_intersect_ukey()</strong>


id: array_fill
type: function
doc:
<comment>Description:</comment>
  Fill an array with values
  
  Fills an array with <strong>$count</strong> entries of the value of the <strong>$value</strong> parameter, keys starting at the
  <strong>$start_index</strong> parameter.

<comment>Param:</comment>
  <info>int</info>    <strong>$start_index</strong>  The first index of the returned array.
                       
                       If <strong>$start_index</strong> is negative,  the first index of the returned array will be
                       <strong>$start_index</strong> and the following  indices will start from zero prior to PHP
                       8.0.0; as of PHP 8.0.0, negative keys are incremented normally (see example).
  <info>int</info>    <strong>$count</strong>        Number of elements to insert. Must be greater than or equal to zero, and less
                       than or equal to <return>2147483647</return>.
  <info>mixed</info>  <strong>$value</strong>        Value to use for filling

<comment>Return:</comment>
  <info>array</info>  Returns the filled array

<comment>See Also:</comment>
   * <strong>array_fill_keys()</strong>
   * <strong>str_repeat()</strong>
   * <strong>range()</strong>


id: array_fill_keys
type: function
doc:
<comment>Description:</comment>
  Fill an array with values, specifying keys
  
  Fills an array with the value of the <strong>$value</strong> parameter, using the values of the <strong>$keys</strong> array as
  keys.

<comment>Param:</comment>
  <info>array</info>  <strong>$keys</strong>   Array of values that will be used as keys. Illegal values for key will be converted
                 to <info>string</info>.
  <info>mixed</info>  <strong>$value</strong>  Value to use for filling

<comment>Return:</comment>
  <info>array</info>  Returns the filled array

<comment>See Also:</comment>
   * <strong>array_fill()</strong>
   * <strong>array_combine()</strong>


id: array_filter
type: function
doc:
<comment>Description:</comment>
  Filters elements of an array using a callback function
  
  Iterates over each value in the <strong>$array</strong> passing them to the <strong>$callback</strong> function. If the <strong>$callback</strong>
  function returns <info>true</info>, the current value from <strong>$array</strong> is returned into the result <info>array</info>.
  
  Array keys are preserved, and may result in gaps if the <strong>$array</strong> was indexed. The result <info>array</info> can
  be reindexed using the <strong>array_values()</strong> function.

<comment>Param:</comment>
  <info>array</info>          <strong>$array</strong>     The array to iterate over
  <info>callable|null</info>  <strong>$callback</strong>  The callback function to use
                            
                            If no <strong>$callback</strong> is supplied, all empty entries of <strong>$array</strong> will be
                            removed. See <strong>empty()</strong> for how PHP defines empty in this case.
  <info>int</info>            <strong>$mode</strong>      Flag determining what arguments are sent to <strong>$callback</strong>:
                            <info>ARRAY_FILTER_USE_KEY</info> - pass key as the only argument to <strong>$callback</strong>
                            instead of the value<info>ARRAY_FILTER_USE_BOTH</info> - pass both value and key as
                            arguments to <strong>$callback</strong> instead of the value Default is <return>0</return> which will pass
                            value as the only argument to <strong>$callback</strong> instead.
                            
                            <info>ARRAY_FILTER_USE_KEY</info> - pass key as the only argument to <strong>$callback</strong>
                            instead of the value
                            
                            <info>ARRAY_FILTER_USE_BOTH</info> - pass both value and key as arguments to
                            <strong>$callback</strong> instead of the value

<comment>Return:</comment>
  <info>array</info>  Returns the filtered array.

<comment>See Also:</comment>
   * <strong>array_intersect()</strong>
   * <strong>array_map()</strong>
   * <strong>array_reduce()</strong>
   * <strong>array_walk()</strong>


id: array_flip
type: function
doc:
<comment>Description:</comment>
  Exchanges all keys with their associated values in an array
  
  <strong>array_flip()</strong> returns an <info>array</info> in flip order, i.e. keys from <strong>$array</strong> become values and values from
  <strong>$array</strong> become keys.
  
  Note that the values of <strong>$array</strong> need to be valid keys, i.e. they need to be either <info>int</info> or <info>string</info>. A
  warning will be emitted if a value has the wrong type, and the key/value pair in question will not
  be included in the result.
  
  If a value has several occurrences, the latest key will be used as its value, and all others will
  be lost.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  An array of key/value pairs to be flipped.

<comment>Return:</comment>
  <info>array</info>  Returns the flipped array.

<comment>See Also:</comment>
   * <strong>array_values()</strong>
   * <strong>array_keys()</strong>
   * <strong>array_reverse()</strong>


id: array_intersect
type: function
doc:
<comment>Description:</comment>
  Computes the intersection of arrays
  
  <strong>array_intersect()</strong> returns an array containing all the values of <strong>$array</strong> that are present in all the
  arguments. Note that keys are preserved.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>   The array with master values to check.
  <info>array</info>  <strong>$arrays</strong>  Arrays to compare values against.

<comment>Return:</comment>
  <info>array</info>  Returns an array containing all of the values in  <strong>$array</strong> whose values exist in all of the
         parameters.

<comment>See Also:</comment>
   * <strong>array_intersect_assoc()</strong>
   * <strong>array_diff()</strong>
   * <strong>array_diff_assoc()</strong>


id: array_intersect_assoc
type: function
doc:
<comment>Description:</comment>
  Computes the intersection of arrays with additional index check
  
  <strong>array_intersect_assoc()</strong> returns an array containing all the values of <strong>$array</strong> that are present in
  all the arguments. Note that the keys are also used in the comparison unlike in <strong>array_intersect()</strong>.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>   The array with master values to check.
  <info>array</info>  <strong>$arrays</strong>  Arrays to compare values against.

<comment>Return:</comment>
  <info>array</info>  Returns an associative array containing all the values in  <strong>$array</strong> that are present in all
         of the arguments.

<comment>See Also:</comment>
   * <strong>array_intersect()</strong>
   * <strong>array_uintersect_assoc()</strong>
   * <strong>array_intersect_uassoc()</strong>
   * <strong>array_uintersect_uassoc()</strong>
   * <strong>array_diff()</strong>
   * <strong>array_diff_assoc()</strong>


id: array_intersect_key
type: function
doc:
<comment>Description:</comment>
  Computes the intersection of arrays using keys for comparison
  
  <strong>array_intersect_key()</strong> returns an array containing all the entries of <strong>$array</strong> which have keys that
  are present in all the arguments.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>   The array with master keys to check.
  <info>array</info>  <strong>$arrays</strong>  Arrays to compare keys against.

<comment>Return:</comment>
  <info>array</info>  Returns an associative array containing all the entries of  <strong>$array</strong> which have keys that are
         present in all arguments.

<comment>See Also:</comment>
   * <strong>array_diff()</strong>
   * <strong>array_udiff()</strong>
   * <strong>array_diff_assoc()</strong>
   * <strong>array_diff_uassoc()</strong>
   * <strong>array_udiff_assoc()</strong>
   * <strong>array_udiff_uassoc()</strong>
   * <strong>array_diff_key()</strong>
   * <strong>array_diff_ukey()</strong>
   * <strong>array_intersect()</strong>
   * <strong>array_intersect_assoc()</strong>
   * <strong>array_intersect_uassoc()</strong>
   * <strong>array_intersect_ukey()</strong>


id: array_intersect_uassoc
type: function
doc:
<comment>Description:</comment>
  Computes the intersection of arrays with additional index check, compares indexes by a callback
  function
  
  <strong>array_intersect_uassoc()</strong> returns an array containing all the values of <strong>$array</strong> that are present in
  all the arguments. Note that the keys are used in the comparison unlike in <strong>array_intersect()</strong>.

<comment>Param:</comment>
  <info>array</info>     <strong>$array</strong>             Initial array for comparison of the arrays.
  <info>array</info>     <strong>$arrays</strong>            Arrays to compare keys against.
  <info>callable</info>  <strong>$key_compare_func</strong>  The comparison function must return an integer less than, equal to,
                               or greater than zero if the first argument is considered to be
                               respectively less than, equal to, or greater than the second.
                               
                               Returning non-integer values from the comparison function, such as
                               <info>float</info>, will result in an internal cast to <info>int</info> of the callback's
                               return value. So values such as <return>0.99</return> and <return>0.1</return> will both be cast to an
                               integer value of <return>0</return>, which will compare such values as equal.

<comment>Return:</comment>
  <info>array</info>  Returns the values of <strong>$array</strong> whose values exist in all of the arguments.

<comment>See Also:</comment>
   * <strong>array_intersect()</strong>
   * <strong>array_intersect_assoc()</strong>
   * <strong>array_uintersect_assoc()</strong>
   * <strong>array_uintersect_uassoc()</strong>
   * <strong>array_intersect_key()</strong>
   * <strong>array_intersect_ukey()</strong>


id: array_intersect_ukey
type: function
doc:
<comment>Description:</comment>
  Computes the intersection of arrays using a callback function on the keys for comparison
  
  <strong>array_intersect_ukey()</strong> returns an array containing all the values of <strong>$array</strong> which have matching
  keys that are present in all the arguments.

<comment>Param:</comment>
  <info>array</info>     <strong>$array</strong>             Initial array for comparison of the arrays.
  <info>array</info>     <strong>$arrays</strong>            Arrays to compare keys against.
  <info>callable</info>  <strong>$key_compare_func</strong>  The comparison function must return an integer less than, equal to,
                               or greater than zero if the first argument is considered to be
                               respectively less than, equal to, or greater than the second.
                               
                               Returning non-integer values from the comparison function, such as
                               <info>float</info>, will result in an internal cast to <info>int</info> of the callback's
                               return value. So values such as <return>0.99</return> and <return>0.1</return> will both be cast to an
                               integer value of <return>0</return>, which will compare such values as equal.

<comment>Return:</comment>
  <info>array</info>  Returns the values of <strong>$array</strong> whose keys exist in all the arguments.

<comment>See Also:</comment>
   * <strong>array_diff()</strong>
   * <strong>array_udiff()</strong>
   * <strong>array_diff_assoc()</strong>
   * <strong>array_diff_uassoc()</strong>
   * <strong>array_udiff_assoc()</strong>
   * <strong>array_udiff_uassoc()</strong>
   * <strong>array_diff_key()</strong>
   * <strong>array_diff_ukey()</strong>
   * <strong>array_intersect()</strong>
   * <strong>array_intersect_assoc()</strong>
   * <strong>array_intersect_uassoc()</strong>
   * <strong>array_intersect_key()</strong>


id: array_is_list
type: function
doc:
<comment>Description:</comment>
  Checks whether a given array is a list
  
  Determines if the given <strong>$array</strong> is a list. An <info>array</info> is considered a list if its keys consist of
  consecutive numbers from <return>0</return> to <return>count($array)-1</return>.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  The <info>array</info> being evaluated.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$array</strong> is a list, <info>false</info> otherwise.

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


id: array_key_exists
type: function
doc:
<comment>Description:</comment>
  Checks if the given key or index exists in the array
  
  <strong>array_key_exists()</strong> returns <info>true</info> if the given <strong>$key</strong> is set in the array. <strong>$key</strong> can be any value
  possible for an array index.

<comment>Param:</comment>
  <info>string|int</info>  <strong>$key</strong>    Value to check.
  <info>array</info>       <strong>$array</strong>  An array with keys to check.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.
        
        <strong>array_key_exists()</strong> will search for the keys in the first dimension only. Nested keys in
        multidimensional arrays will not be found.

<comment>See Also:</comment>
   * <strong>isset()</strong>
   * <strong>array_keys()</strong>
   * <strong>in_array()</strong>
   * <strong>property_exists()</strong>


id: array_key_first
type: function
doc:
<comment>Description:</comment>
  Gets the first key of an array
  
  Get the first key of the given <strong>$array</strong> without affecting the internal array pointer.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  An array.

<comment>Return:</comment>
  <info>int|string|null</info>  Returns the first key of <strong>$array</strong> if the array is not empty; <info>null</info> otherwise.

<comment>See Also:</comment>
   * <strong>array_key_last()</strong>
   * <strong>reset()</strong>


id: array_key_last
type: function
doc:
<comment>Description:</comment>
  Gets the last key of an array
  
  Get the last key of the given <strong>$array</strong> without affecting the internal array pointer.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  An array.

<comment>Return:</comment>
  <info>int|string|null</info>  Returns the last key of <strong>$array</strong> if the array is not empty; <info>null</info> otherwise.

<comment>See Also:</comment>
   * <strong>array_key_first()</strong>
   * <strong>end()</strong>


id: array_keys
type: function
doc:
<comment>Description:</comment>
  Return all the keys or a subset of the keys of an array
  
  <strong>array_keys()</strong> returns the keys, numeric and string, from the <strong>$array</strong>.
  
  If a <strong>$filter_value</strong> is specified, then only the keys for that value are returned. Otherwise, all
  the keys from the <strong>$array</strong> are returned.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>         An array containing keys to return.
  <info>mixed</info>  <strong>$filter_value</strong>  If specified, then only keys containing this value are returned.
  <info>bool</info>   <strong>$strict</strong>        Determines if strict comparison (===) should be used during the search.

<comment>Return:</comment>
  <info>array</info>  Returns an array of all the keys in <strong>$array</strong>.

<comment>See Also:</comment>
   * <strong>array_values()</strong>
   * <strong>array_combine()</strong>
   * <strong>array_key_exists()</strong>
   * <strong>array_search()</strong>


id: array_map
type: function
doc:
<comment>Description:</comment>
  Applies the callback to the elements of the given arrays
  
  <strong>array_map()</strong> returns an <info>array</info> containing the results of applying the <strong>$callback</strong> to the corresponding
  value of <strong>$array</strong> (and <strong>$arrays</strong> if more arrays are provided) used as arguments for the callback. The
  number of parameters that the <strong>$callback</strong> function accepts should match the number of arrays passed
  to <strong>array_map()</strong>. Excess input arrays are ignored. An <class>ArgumentCountError</class> is thrown if an
  insufficient number of arguments is provided.

<comment>Param:</comment>
  <info>callable|null</info>  <strong>$callback</strong>  A <info>callable</info> to run for each element in each array.
                            
                            <info>null</info> can be passed as a value to <strong>$callback</strong> to perform a zip operation on
                            multiple arrays. If only <strong>$array</strong> is provided, array_map will return the
                            input array.
  <info>array</info>          <strong>$array</strong>     An array to run through the <strong>$callback</strong> function.
  <info>array</info>          <strong>$arrays</strong>    Supplementary variable list of array arguments to run through the
                            <strong>$callback</strong> function.

<comment>Return:</comment>
  <info>array</info>  Returns an array containing the results of applying the <strong>$callback</strong> function to the
         corresponding value of <strong>$array</strong> (and <strong>$arrays</strong> if more arrays are provided) used as arguments
         for the callback.
         
         The returned array will preserve the keys of the array argument if and only if exactly one
         array is passed. If more than one array is passed, the returned array will have sequential
         integer keys.

<comment>See Also:</comment>
   * <strong>array_filter()</strong>
   * <strong>array_reduce()</strong>
   * <strong>array_walk()</strong>


id: array_merge
type: function
doc:
<comment>Description:</comment>
  Merge one or more arrays
  
  Merges the elements of one or more arrays together so that the values of one are appended to the
  end of the previous one. It returns the resulting array.
  
  If the input arrays have the same string keys, then the later value for that key will overwrite
  the previous one.  If, however, the arrays contain numeric keys, the later value will not
  overwrite the original value, but will be appended.
  
  Values in the input arrays with numeric keys will be renumbered with incrementing keys starting
  from zero in the result array.

<comment>Param:</comment>
  <info>array</info>  <strong>$arrays</strong>  Variable list of arrays to merge.

<comment>Return:</comment>
  <info>array</info>  Returns the resulting array. If called without any arguments, returns an empty <info>array</info>.

<comment>See Also:</comment>
   * <strong>array_merge_recursive()</strong>
   * <strong>array_replace()</strong>
   * <strong>array_combine()</strong>
   * array operators


id: array_merge_recursive
type: function
doc:
<comment>Description:</comment>
  Merge one or more arrays recursively
  
  <strong>array_merge_recursive()</strong> merges the elements of one or more arrays together so that the values of
  one are appended to the end of the previous one.  It returns the resulting array.
  
  If the input arrays have the same string keys, then the values for these keys are merged together
  into an array, and this is done recursively, so that if one of the values is an array itself, the
  function will merge it with a corresponding entry in another array too. If, however, the arrays
  have the same numeric key, the later value will not overwrite the original value, but will be
  appended.

<comment>Param:</comment>
  <info>array</info>  <strong>$arrays</strong>  Variable list of arrays to recursively merge.

<comment>Return:</comment>
  <info>array</info>  An array of values resulted from merging the arguments together. If called without any
         arguments, returns an empty <info>array</info>.

<comment>See Also:</comment>
   * <strong>array_merge()</strong>
   * <strong>array_replace_recursive()</strong>


id: array_multisort
type: function
doc:
<comment>Description:</comment>
  Sort multiple or multi-dimensional arrays
  
  <strong>array_multisort()</strong> can be used to sort several arrays at once, or a multi-dimensional array by one
  or more dimensions.
  
  Associative (<info>string</info>) keys will be maintained, but numeric keys will be re-indexed.
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.
  
  Resets array's internal pointer to the first element.

<comment>Param:</comment>
  <info>array</info>  <strong>$array1</strong>             An <info>array</info> being sorted.
  <info>mixed</info>  <strong>$array1_sort_order</strong>  The order used to sort the previous <info>array</info> argument. Either <info>SORT_ASC</info> to
                             sort ascendingly or <info>SORT_DESC</info> to sort descendingly.
                             
                             This argument can be swapped with <strong>$array1_sort_flags</strong> or omitted
                             entirely, in which case <info>SORT_ASC</info> is assumed.
  <info>mixed</info>  <strong>$array1_sort_flags</strong>  Sort options for the previous <info>array</info> argument:
                             
                             Sorting type flags: <info>SORT_REGULAR</info> - compare items normally (don't change
                             types)<info>SORT_NUMERIC</info> - compare items numerically<info>SORT_STRING</info> - compare
                             items as strings<info>SORT_LOCALE_STRING</info> - compare items as strings, based on
                             the current locale. It uses the locale, which can be changed using
                             <strong>setlocale()</strong> <info>SORT_NATURAL</info> - compare items as strings using "natural
                             ordering" like <strong>natsort()</strong> <info>SORT_FLAG_CASE</info> - can be combined (bitwise OR)
                             with <info>SORT_STRING</info> or <info>SORT_NATURAL</info> to sort strings case-insensitively
                             
                             <info>SORT_REGULAR</info> - compare items normally (don't change types)
                             
                             <info>SORT_NUMERIC</info> - compare items numerically
                             
                             <info>SORT_STRING</info> - compare items as strings
                             
                             <info>SORT_LOCALE_STRING</info> - compare items as strings, based on the current
                             locale. It uses the locale, which can be changed using <strong>setlocale()</strong>
                             
                             <info>SORT_NATURAL</info> - compare items as strings using "natural ordering" like
                             <strong>natsort()</strong>
                             
                             <info>SORT_FLAG_CASE</info> - can be combined (bitwise OR) with <info>SORT_STRING</info> or
                             <info>SORT_NATURAL</info> to sort strings case-insensitively
                             
                             This argument can be swapped with <strong>$array1_sort_order</strong> or omitted
                             entirely, in which case <info>SORT_REGULAR</info> is assumed.
  <info>mixed</info>  <strong>$rest</strong>               More arrays, optionally followed by sort order and flags. Only elements
                             corresponding to equivalent elements in previous arrays are compared.
                             In other words, the sort is lexicographical.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>usort()</strong>
   * The comparison of array sorting functions


id: array_pad
type: function
doc:
<comment>Description:</comment>
  Pad array to the specified length with a value
  
  <strong>array_pad()</strong> returns a copy of the <strong>$array</strong> padded to size specified by <strong>$length</strong> with value <strong>$value</strong>. If
  <strong>$length</strong> is positive then the array is padded on the right, if it's negative then on the left. If
  the absolute value of <strong>$length</strong> is less than or equal to the length of the <strong>$array</strong> then no padding
  takes place. It is possible to add at most 1048576 elements at a time.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>   Initial array of values to pad.
  <info>int</info>    <strong>$length</strong>  New size of the array.
  <info>mixed</info>  <strong>$value</strong>   Value to pad if <strong>$array</strong> is less than <strong>$length</strong>.

<comment>Return:</comment>
  <info>array</info>  Returns a copy of the <strong>$array</strong> padded to size specified by <strong>$length</strong> with value  <strong>$value</strong>. If
         <strong>$length</strong> is  positive then the array is padded on the right, if it's negative then  on the
         left. If the absolute value of <strong>$length</strong> is less than or equal to the length of the <strong>$array</strong>
         then no padding takes place.

<comment>See Also:</comment>
   * <strong>array_fill()</strong>
   * <strong>range()</strong>


id: array_pop
type: function
doc:
<comment>Description:</comment>
  Pop the element off the end of array
  
  <strong>array_pop()</strong> pops and returns the value of the last element of <strong>$array</strong>, shortening the <strong>$array</strong> by one
  element.
  
  This function will
  <strong>reset()</strong> the <info>array</info> pointer of the input array after
  use.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  The array to get the value from.

<comment>Return:</comment>
  <info>mixed</info>  Returns the value of the last element of <strong>$array</strong>. If <strong>$array</strong> is empty, <info>null</info> will be returned.

<comment>See Also:</comment>
   * <strong>array_push()</strong>
   * <strong>array_shift()</strong>
   * <strong>array_unshift()</strong>


id: array_product
type: function
doc:
<comment>Description:</comment>
  Calculate the product of values in an array
  
  <strong>array_product()</strong> returns the product of values in an array.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  The array.

<comment>Return:</comment>
  <info>int|float</info>  Returns the product as an integer or float.


id: array_push
type: function
doc:
<comment>Description:</comment>
  Push one or more elements onto the end of array
  
  <strong>array_push()</strong> treats <strong>$array</strong> as a stack, and pushes the passed variables onto the end of <strong>$array</strong>. The
  length of <strong>$array</strong> increases by the number of variables pushed. Has the same effect as:
  ]]> repeated for each passed value.
  
  If you use <strong>array_push()</strong> to add one element to the array, it's better to use <return>$array[] = </return> because in
  that way there is no overhead of calling a function.
  
  <strong>array_push()</strong> will raise a warning if the first argument is not an array. This differed from the
  <return>$var[]</return> behaviour where a new array was created, prior to PHP 7.1.0.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>   The input array.
  <info>mixed</info>  <strong>$values</strong>  The values to push onto the end of the <strong>$array</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the new number of elements in the array.

<comment>See Also:</comment>
   * <strong>array_pop()</strong>
   * <strong>array_shift()</strong>
   * <strong>array_unshift()</strong>


id: array_rand
type: function
doc:
<comment>Description:</comment>
  Pick one or more random keys out of an array
  
  Picks one or more random entries out of an array, and returns the key (or keys) of the random
  entries.
  
  This function does not generate cryptographically secure values, and must not be used for
  cryptographic purposes, or purposes that require returned values to be unguessable.
  
  If cryptographically secure randomness is required, the <class>Random\Randomizer</class> may be used with the
  <class>Random\Engine\Secure</class> engine. For simple use cases, the <strong>random_int()</strong> and <strong>random_bytes()</strong> functions
  provide a convenient and secure API that is backed by the operating system’s CSPRNG.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  The input array.
  <info>int</info>    <strong>$num</strong>    Specifies how many entries should be picked.

<comment>Return:</comment>
  <info>int|string|array</info>  When picking only one entry, <strong>array_rand()</strong> returns the key for a random entry.
                    Otherwise, an array of keys for the random entries is returned. This is done so
                    that random keys can be picked from the array as well as random values. If
                    multiple keys are returned, they will be returned in the order they were present
                    in the original array. Trying to pick more elements than there are in the array
                    will result in an <info>E_WARNING</info> level error, and NULL will be returned.

<comment>See Also:</comment>
   * <strong>Random\Randomizer::pickArrayKeys()</strong>
   * <strong>Random\Randomizer::shuffleArray()</strong>


id: array_reduce
type: function
doc:
<comment>Description:</comment>
  Iteratively reduce the array to a single value using a callback function
  
  <strong>array_reduce()</strong> applies iteratively the <strong>$callback</strong> function to the elements of the <strong>$array</strong>, so as to
  reduce the array to a single value.

<comment>Param:</comment>
  <info>array</info>     <strong>$array</strong>     The input array.
  <info>callable</info>  <strong>$callback</strong>  Holds the return value of the previous iteration; in the case of the first
                       iteration it instead holds the value of  <strong>$initial</strong>.
                       
                       Holds the value of the current iteration.
  <info>mixed</info>     <strong>$carry</strong>     Holds the return value of the previous iteration; in the case of the first
                       iteration it instead holds the value of  <strong>$initial</strong>.
  <info>mixed</info>     <strong>$item</strong>      Holds the value of the current iteration.
  <info>mixed</info>     <strong>$initial</strong>   If the optional <strong>$initial</strong> is available, it will be used at the beginning of
                       the process, or as a final result in case the array is empty.

<comment>Return:</comment>
  <info>mixed</info>  Returns the resulting value.
         
         If the array is empty and <strong>$initial</strong> is not passed, <strong>array_reduce()</strong> returns <info>null</info>.

<comment>See Also:</comment>
   * <strong>array_filter()</strong>
   * <strong>array_map()</strong>
   * <strong>array_unique()</strong>
   * <strong>array_count_values()</strong>


id: array_replace
type: function
doc:
<comment>Description:</comment>
  Replaces elements from passed arrays into the first array
  
  <strong>array_replace()</strong> replaces the values of <strong>$array</strong> with values having the same keys in each of the
  following arrays. If a key from the first array exists in the second array, its value will be
  replaced by the value from the second array. If the key exists in the second array, and not the
  first, it will be created in the first array. If a key only exists in the first array, it will be
  left as is. If several arrays are passed for replacement, they will be processed in order, the
  later arrays overwriting the previous values.
  
  <strong>array_replace()</strong> is not recursive : it will replace values in the first array by whatever type is
  in the second array.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>         The array in which elements are replaced.
  <info>array</info>  <strong>$replacements</strong>  Arrays from which elements will be extracted. Values from later arrays
                        overwrite the previous values.

<comment>Return:</comment>
  <info>array</info>  Returns an <info>array</info>.

<comment>See Also:</comment>
   * <strong>array_replace_recursive()</strong>
   * <strong>array_merge()</strong>


id: array_replace_recursive
type: function
doc:
<comment>Description:</comment>
  Replaces elements from passed arrays into the first array recursively
  
  <strong>array_replace_recursive()</strong> replaces the values of <strong>$array</strong> with the same values from all the
  following arrays. If a key from the first array exists in the second array, its value will be
  replaced by the value from the second array. If the key exists in the second array, and not the
  first, it will be created in the first array. If a key only exists in the first array, it will be
  left as is.  If several arrays are passed for replacement, they will be processed in order, the
  later array overwriting the previous values.
  
  <strong>array_replace_recursive()</strong> is recursive : it will recurse into arrays and apply the same process to
  the inner value.
  
  When the value in the first array is scalar, it will be replaced by the value in the second array,
  may it be scalar or array. When the value in the first array and the second array are both arrays,
  <strong>array_replace_recursive()</strong> will replace their respective value recursively.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>         The array in which elements are replaced.
  <info>array</info>  <strong>$replacements</strong>  Arrays from which elements will be extracted.

<comment>Return:</comment>
  <info>array</info>  Returns an <info>array</info>.

<comment>See Also:</comment>
   * <strong>array_replace()</strong>
   * <strong>array_merge_recursive()</strong>


id: array_reverse
type: function
doc:
<comment>Description:</comment>
  Return an array with elements in reverse order
  
  Takes an input <strong>$array</strong> and returns a new array with the order of the elements reversed.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>          The input array.
  <info>bool</info>   <strong>$preserve_keys</strong>  If set to <info>true</info> numeric keys are preserved.  Non-numeric keys are not
                         affected by this setting and will always be preserved.

<comment>Return:</comment>
  <info>array</info>  Returns the reversed array.

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


id: array_search
type: function
doc:
<comment>Description:</comment>
  Searches the array for a given value and returns the first corresponding key if successful
  
  Searches for <strong>$needle</strong> in <strong>$haystack</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$needle</strong>    The searched value.
                    
                    If <strong>$needle</strong> is a string, the comparison is done in a case-sensitive manner.
  <info>array</info>  <strong>$haystack</strong>  The array.
  <info>bool</info>   <strong>$strict</strong>    If the third parameter <strong>$strict</strong> is set to <info>true</info> then the <strong>array_search()</strong> function
                    will search for identical elements in the <strong>$haystack</strong>. This means it will also
                    perform a strict type comparison of the <strong>$needle</strong> in the <strong>$haystack</strong>, and objects
                    must be the same instance.

<comment>Return:</comment>
  <info>int|string|false</info>  Returns the key for <strong>$needle</strong> if it is found in the array, <info>false</info> otherwise.
                    
                    If <strong>$needle</strong> is found in <strong>$haystack</strong> more than once, the first matching key is
                    returned. To return the keys for all matching values, use <strong>array_keys()</strong> with the
                    optional <strong>$search_value</strong> parameter instead.
                    
                    This function may
                    return Boolean <info>false</info>, but may also return a non-Boolean value which
                    evaluates to <info>false</info>. Please read the section on Booleans for more
                    information. Use the ===
                    operator for testing the return value of this
                    function.

<comment>See Also:</comment>
   * <strong>array_keys()</strong>
   * <strong>array_values()</strong>
   * <strong>array_key_exists()</strong>
   * <strong>in_array()</strong>


id: array_shift
type: function
doc:
<comment>Description:</comment>
  Shift an element off the beginning of array
  
  <strong>array_shift()</strong> shifts the first value of the <strong>$array</strong> off and returns it, shortening the <strong>$array</strong> by
  one element and moving everything down. All numerical array keys will be modified to start
  counting from zero while literal keys won't be affected.
  
  This function will
  <strong>reset()</strong> the <info>array</info> pointer of the input array after
  use.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  The input array.

<comment>Return:</comment>
  <info>mixed</info>  Returns the shifted value, or <info>null</info> if <strong>$array</strong> is empty or is not an array.

<comment>See Also:</comment>
   * <strong>array_unshift()</strong>
   * <strong>array_push()</strong>
   * <strong>array_pop()</strong>


id: array_slice
type: function
doc:
<comment>Description:</comment>
  Extract a slice of the array
  
  <strong>array_slice()</strong> returns the sequence of elements from the array <strong>$array</strong> as specified by the <strong>$offset</strong>
  and <strong>$length</strong> parameters.

<comment>Param:</comment>
  <info>array</info>     <strong>$array</strong>          The input array.
  <info>int</info>       <strong>$offset</strong>         If <strong>$offset</strong> is non-negative, the sequence will start at that offset in
                            the <strong>$array</strong>.
                            
                            If <strong>$offset</strong> is negative, the sequence will start that far from the end of
                            the <strong>$array</strong>.
                            
                            The <strong>$offset</strong> parameter denotes the position in the array, not the key.
  <info>int|null</info>  <strong>$length</strong>         If <strong>$length</strong> is given and is positive, then the sequence will have up to
                            that many elements in it.
                            
                            If the array is shorter than the <strong>$length</strong>, then only the available array
                            elements will be present.
                            
                            If <strong>$length</strong> is given and is negative then the sequence will stop that
                            many elements from the end of the array.
                            
                            If it is omitted, then the sequence will have everything from <strong>$offset</strong> up
                            until the end of the <strong>$array</strong>.
  <info>bool</info>      <strong>$preserve_keys</strong>  <strong>array_slice()</strong> will reorder and reset the integer array indices by
                            default. This behaviour can be changed by setting <strong>$preserve_keys</strong> to
                            <info>true</info>. String keys are always preserved, regardless of this parameter.

<comment>Return:</comment>
  <info>array</info>  Returns the slice. If the offset is larger than the size of the array, an empty array is
         returned.

<comment>See Also:</comment>
   * <strong>array_chunk()</strong>
   * <strong>array_splice()</strong>
   * <strong>unset()</strong>


id: array_splice
type: function
doc:
<comment>Description:</comment>
  Remove a portion of the array and replace it with something else
  
  Removes the elements designated by <strong>$offset</strong> and <strong>$length</strong> from the <strong>$array</strong> array, and replaces them
  with the elements of the <strong>$replacement</strong> array, if supplied.
  
  Numerical keys in <strong>$array</strong> are not preserved.
  
  If <strong>$replacement</strong> is not an array, it will be typecast to one (i.e. (array) $replacement). This may
  result in unexpected behavior when using an object or <info>null</info> <strong>$replacement</strong>.

<comment>Param:</comment>
  <info>array</info>     <strong>$array</strong>        The input array.
  <info>int</info>       <strong>$offset</strong>       If <strong>$offset</strong> is positive then the start of the removed portion is at that
                          offset from the beginning of the <strong>$array</strong> array.
                          
                          If <strong>$offset</strong> is negative then the start of the removed portion is at that
                          offset from the end of the <strong>$array</strong> array.
  <info>int|null</info>  <strong>$length</strong>       If <strong>$length</strong> is omitted, removes everything from <strong>$offset</strong> to the end of the
                          array.
                          
                          If <strong>$length</strong> is specified and is positive, then that many elements will be
                          removed.
                          
                          If <strong>$length</strong> is specified and is negative, then the end of the removed
                          portion will be that many elements from the end of the array.
                          
                          If <strong>$length</strong> is specified and is zero, no elements will be removed.
                          
                          To remove everything from <strong>$offset</strong> to the end of the array when
                          <strong>$replacement</strong> is also specified, use count($input) for <strong>$length</strong>.
  <info>mixed</info>     <strong>$replacement</strong>  If <strong>$replacement</strong> array is specified, then the removed elements are replaced
                          with elements from this array.
                          
                          If <strong>$offset</strong> and <strong>$length</strong> are such that nothing is removed, then the elements
                          from the <strong>$replacement</strong> array are inserted in the place specified by the
                          <strong>$offset</strong>.
                          
                          Keys in the <strong>$replacement</strong> array are not preserved.
                          
                          If <strong>$replacement</strong> is just one element it is not necessary to put <return>array()</return> or
                          square brackets around it, unless the element is an array itself, an
                          object or <info>null</info>.

<comment>Return:</comment>
  <info>array</info>  Returns an array consisting of the extracted elements.

<comment>See Also:</comment>
   * <strong>array_merge()</strong>
   * <strong>array_slice()</strong>
   * <strong>unset()</strong>


id: array_sum
type: function
doc:
<comment>Description:</comment>
  Calculate the sum of values in an array
  
  <strong>array_sum()</strong> returns the sum of values in an array.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  The input array.

<comment>Return:</comment>
  <info>int|float</info>  Returns the sum of values as an integer or float; <return>0</return> if the <strong>$array</strong> is empty.


id: array_udiff
type: function
doc:
<comment>Description:</comment>
  Computes the difference of arrays by using a callback function for data comparison
  
  Computes the difference of arrays by using a callback function for data comparison. This is unlike
  <strong>array_diff()</strong> which uses an internal function for comparing the data.

<comment>Param:</comment>
  <info>array</info>     <strong>$array</strong>               The first array.
  <info>array</info>     <strong>$arrays</strong>              Arrays to compare against.
  <info>callable</info>  <strong>$value_compare_func</strong>  The comparison function must return an integer less than, equal to,
                                 or greater than zero if the first argument is considered to be
                                 respectively less than, equal to, or greater than the second.
                                 
                                 Returning non-integer values from the comparison function, such as
                                 <info>float</info>, will result in an internal cast to <info>int</info> of the callback's
                                 return value. So values such as <return>0.99</return> and <return>0.1</return> will both be cast to
                                 an integer value of <return>0</return>, which will compare such values as equal.

<comment>Return:</comment>
  <info>array</info>  Returns an array containing all the values of <strong>$array</strong> that are not present in any of the
         other arguments.

<comment>See Also:</comment>
   * <strong>array_diff()</strong>
   * <strong>array_diff_assoc()</strong>
   * <strong>array_diff_uassoc()</strong>
   * <strong>array_udiff_assoc()</strong>
   * <strong>array_udiff_uassoc()</strong>
   * <strong>array_intersect()</strong>
   * <strong>array_intersect_assoc()</strong>
   * <strong>array_uintersect()</strong>
   * <strong>array_uintersect_assoc()</strong>
   * <strong>array_uintersect_uassoc()</strong>


id: array_udiff_assoc
type: function
doc:
<comment>Description:</comment>
  Computes the difference of arrays with additional index check, compares data by a callback
  function
  
  Computes the difference of arrays with additional index check, compares data by a callback
  function.
  
  Please note that this function only checks one dimension of a n-dimensional array. Of course you
  can check deeper dimensions by using, for example, <return>array_udiff_assoc($array1[0], $array2[0],
  "some_comparison_func");</return>.

<comment>Param:</comment>
  <info>array</info>     <strong>$array</strong>               The first array.
  <info>array</info>     <strong>$arrays</strong>              Arrays to compare against.
  <info>callable</info>  <strong>$value_compare_func</strong>  The comparison function must return an integer less than, equal to,
                                 or greater than zero if the first argument is considered to be
                                 respectively less than, equal to, or greater than the second.
                                 
                                 Returning non-integer values from the comparison function, such as
                                 <info>float</info>, will result in an internal cast to <info>int</info> of the callback's
                                 return value. So values such as <return>0.99</return> and <return>0.1</return> will both be cast to
                                 an integer value of <return>0</return>, which will compare such values as equal.

<comment>Return:</comment>
  <info>array</info>  <strong>array_udiff_assoc()</strong> returns an <info>array</info> containing all the values from <strong>$array</strong> that are not
         present in any of the other arguments. Note that the keys are used in the comparison unlike
         <strong>array_diff()</strong> and <strong>array_udiff()</strong>. The comparison of arrays' data is performed by using an
         user-supplied callback. In this aspect the behaviour is opposite to the behaviour of
         <strong>array_diff_assoc()</strong> which uses internal function for comparison.

<comment>See Also:</comment>
   * <strong>array_diff()</strong>
   * <strong>array_diff_assoc()</strong>
   * <strong>array_diff_uassoc()</strong>
   * <strong>array_udiff()</strong>
   * <strong>array_udiff_uassoc()</strong>
   * <strong>array_intersect()</strong>
   * <strong>array_intersect_assoc()</strong>
   * <strong>array_uintersect()</strong>
   * <strong>array_uintersect_assoc()</strong>
   * <strong>array_uintersect_uassoc()</strong>


id: array_udiff_uassoc
type: function
doc:
<comment>Description:</comment>
  Computes the difference of arrays with additional index check, compares data and indexes by a
  callback function
  
  Computes the difference of arrays with additional index check, compares data and indexes by a
  callback function.
  
  Note that the keys are used in the comparison unlike <strong>array_diff()</strong> and <strong>array_udiff()</strong>.

<comment>Param:</comment>
  <info>array</info>     <strong>$array</strong>               The first array.
  <info>array</info>     <strong>$arrays</strong>              Arrays to compare against.
  <info>callable</info>  <strong>$value_compare_func</strong>  The comparison function must return an integer less than, equal to,
                                 or greater than zero if the first argument is considered to be
                                 respectively less than, equal to, or greater than the second.
                                 
                                 Returning non-integer values from the comparison function, such as
                                 <info>float</info>, will result in an internal cast to <info>int</info> of the callback's
                                 return value. So values such as <return>0.99</return> and <return>0.1</return> will both be cast to
                                 an integer value of <return>0</return>, which will compare such values as equal.
  <info>callable</info>  <strong>$key_compare_func</strong>    The comparison of keys (indices) is done also by the callback
                                 function <strong>$key_compare_func</strong>. This behaviour is unlike what
                                 <strong>array_udiff_assoc()</strong> does, since the latter compares the indices by
                                 using an internal function.

<comment>Return:</comment>
  <info>array</info>  Returns an <info>array</info> containing all the values from <strong>$array</strong> that are not present in any of the
         other arguments.

<comment>See Also:</comment>
   * <strong>array_diff()</strong>
   * <strong>array_diff_assoc()</strong>
   * <strong>array_udiff()</strong>
   * <strong>array_udiff_assoc()</strong>
   * <strong>array_intersect()</strong>
   * <strong>array_intersect_assoc()</strong>
   * <strong>array_uintersect()</strong>
   * <strong>array_uintersect_assoc()</strong>
   * <strong>array_uintersect_uassoc()</strong>


id: array_uintersect
type: function
doc:
<comment>Description:</comment>
  Computes the intersection of arrays, compares data by a callback function
  
  Computes the intersection of arrays, compares data by a callback function.

<comment>Param:</comment>
  <info>array</info>     <strong>$array</strong>               The first array.
  <info>array</info>     <strong>$arrays</strong>              Arrays to compare against.
  <info>callable</info>  <strong>$value_compare_func</strong>  The comparison function must return an integer less than, equal to,
                                 or greater than zero if the first argument is considered to be
                                 respectively less than, equal to, or greater than the second.
                                 
                                 Returning non-integer values from the comparison function, such as
                                 <info>float</info>, will result in an internal cast to <info>int</info> of the callback's
                                 return value. So values such as <return>0.99</return> and <return>0.1</return> will both be cast to
                                 an integer value of <return>0</return>, which will compare such values as equal.

<comment>Return:</comment>
  <info>array</info>  Returns an array containing all the values of <strong>$array</strong> that are present in all the arguments.

<comment>See Also:</comment>
   * <strong>array_intersect()</strong>
   * <strong>array_intersect_assoc()</strong>
   * <strong>array_uintersect_assoc()</strong>
   * <strong>array_uintersect_uassoc()</strong>


id: array_uintersect_assoc
type: function
doc:
<comment>Description:</comment>
  Computes the intersection of arrays with additional index check, compares data by a callback
  function
  
  Computes the intersection of arrays with additional index check, compares data by a callback
  function.
  
  Note that the keys are used in the comparison unlike in <strong>array_uintersect()</strong>. The data is compared
  by using a callback function.

<comment>Param:</comment>
  <info>array</info>     <strong>$array</strong>               The first array.
  <info>array</info>     <strong>$arrays</strong>              Arrays to compare against.
  <info>callable</info>  <strong>$value_compare_func</strong>  The comparison function must return an integer less than, equal to,
                                 or greater than zero if the first argument is considered to be
                                 respectively less than, equal to, or greater than the second.
                                 
                                 Returning non-integer values from the comparison function, such as
                                 <info>float</info>, will result in an internal cast to <info>int</info> of the callback's
                                 return value. So values such as <return>0.99</return> and <return>0.1</return> will both be cast to
                                 an integer value of <return>0</return>, which will compare such values as equal.

<comment>Return:</comment>
  <info>array</info>  Returns an array containing all the values of <strong>$array</strong> that are present in all the arguments.

<comment>See Also:</comment>
   * <strong>array_uintersect()</strong>
   * <strong>array_intersect_assoc()</strong>
   * <strong>array_intersect_uassoc()</strong>
   * <strong>array_uintersect_uassoc()</strong>


id: array_uintersect_uassoc
type: function
doc:
<comment>Description:</comment>
  Computes the intersection of arrays with additional index check, compares data and indexes by
  separate callback functions
  
  Computes the intersection of arrays with additional index check, compares data and indexes by
  separate callback functions.

<comment>Param:</comment>
  <info>array</info>     <strong>$array1</strong>              The first array.
  <info>array</info>     <strong>$arrays</strong>              Further arrays.
  <info>callable</info>  <strong>$value_compare_func</strong>  The comparison function must return an integer less than, equal to,
                                 or greater than zero if the first argument is considered to be
                                 respectively less than, equal to, or greater than the second.
                                 
                                 Returning non-integer values from the comparison function, such as
                                 <info>float</info>, will result in an internal cast to <info>int</info> of the callback's
                                 return value. So values such as <return>0.99</return> and <return>0.1</return> will both be cast to
                                 an integer value of <return>0</return>, which will compare such values as equal.
  <info>callable</info>  <strong>$key_compare_func</strong>    Key comparison callback function.

<comment>Return:</comment>
  <info>array</info>  Returns an array containing all the values of <strong>$array1</strong> that are present in all the
         arguments.

<comment>See Also:</comment>
   * <strong>array_uintersect()</strong>
   * <strong>array_intersect_assoc()</strong>
   * <strong>array_intersect_uassoc()</strong>
   * <strong>array_uintersect_assoc()</strong>


id: array_unique
type: function
doc:
<comment>Description:</comment>
  Removes duplicate values from an array
  
  Takes an input <strong>$array</strong> and returns a new array without duplicate values.
  
  Note that keys are preserved. If multiple elements compare equal under the given <strong>$flags</strong>, then the
  key and value of the first equal element will be retained.
  
  Two elements are considered equal if and only if <return>(string) $elem1 === (string) $elem2</return> i.e.  when
  the string representation is the same, the first element will be used.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  The input array.
  <info>int</info>    <strong>$flags</strong>  The optional second parameter <strong>$flags</strong> may be used to modify the comparison behavior
                 using these values:
                 
                 Comparison type flags: <info>SORT_REGULAR</info> - compare items normally (don't change
                 types)<info>SORT_NUMERIC</info> - compare items numerically<info>SORT_STRING</info> - compare items as
                 strings<info>SORT_LOCALE_STRING</info> - compare items as strings, based on the current locale.
                 
                 <info>SORT_REGULAR</info> - compare items normally (don't change types)
                 
                 <info>SORT_NUMERIC</info> - compare items numerically
                 
                 <info>SORT_STRING</info> - compare items as strings
                 
                 <info>SORT_LOCALE_STRING</info> - compare items as strings, based on the current locale.

<comment>Return:</comment>
  <info>array</info>  Returns the filtered array.

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


id: array_unshift
type: function
doc:
<comment>Description:</comment>
  Prepend one or more elements to the beginning of an array
  
  <strong>array_unshift()</strong> prepends passed elements to the front of the <strong>$array</strong>. Note that the list of
  elements is prepended as a whole, so that the prepended elements stay in the same order.  All
  numerical array keys will be modified to start counting from zero while literal keys won't be
  changed.
  
  Resets array's internal pointer to the first element.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>   The input array.
  <info>mixed</info>  <strong>$values</strong>  The values to prepend.

<comment>Return:</comment>
  <info>int</info>  Returns the new number of elements in the <strong>$array</strong>.

<comment>See Also:</comment>
   * <strong>array_merge()</strong>
   * <strong>array_shift()</strong>
   * <strong>array_push()</strong>
   * <strong>array_pop()</strong>


id: array_values
type: function
doc:
<comment>Description:</comment>
  Return all the values of an array
  
  <strong>array_values()</strong> returns all the values from the <strong>$array</strong> and indexes the array numerically.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  The array.

<comment>Return:</comment>
  <info>array</info>  Returns an indexed array of values.

<comment>See Also:</comment>
   * <strong>array_keys()</strong>
   * <strong>array_combine()</strong>


id: array_walk
type: function
doc:
<comment>Description:</comment>
  Apply a user supplied function to every member of an array
  
  Applies the user-defined <strong>$callback</strong> function to each element of the <strong>$array</strong> array.
  
  <strong>array_walk()</strong> is not affected by the internal array pointer of <strong>$array</strong>.  <strong>array_walk()</strong> will walk
  through the entire array regardless of pointer position.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$array</strong>     The input array.
  <info>callable</info>      <strong>$callback</strong>  Typically, <strong>$callback</strong> takes on two parameters. The <strong>$array</strong> parameter's
                           value being the first, and the key/index second.
                           
                           If <strong>$callback</strong> needs to be working with the actual values of the array,
                           specify the first parameter of <strong>$callback</strong> as a reference. Then, any
                           changes made to those elements will be made in the original array itself.
                           
                           Many internal functions (for example <strong>strtolower()</strong>) will throw a warning
                           if more than the expected number of argument are passed in and are not
                           usable directly as a <strong>$callback</strong>.
                           
                           Only the values of the <strong>$array</strong> may potentially be changed; its structure
                           cannot be altered, i.e., the programmer cannot add, unset or reorder
                           elements. If the callback does not respect this requirement, the behavior
                           of this function is undefined, and       unpredictable.
  <info>mixed</info>         <strong>$arg</strong>       If the optional <strong>$arg</strong> parameter is supplied, it will be passed as the
                           third parameter to the <strong>$callback</strong>.

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

<comment>See Also:</comment>
   * <strong>array_walk_recursive()</strong>
   * <strong>iterator_apply()</strong>
   * <strong>list()</strong>
   * <strong>each()</strong>
   * <strong>call_user_func_array()</strong>
   * <strong>array_map()</strong>
   * foreach


id: array_walk_recursive
type: function
doc:
<comment>Description:</comment>
  Apply a user function recursively to every member of an array
  
  Applies the user-defined <strong>$callback</strong> function to each element of the <strong>$array</strong>. This function will
  recurse into deeper arrays.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$array</strong>     The input array.
  <info>callable</info>      <strong>$callback</strong>  Typically, <strong>$callback</strong> takes on two parameters. The <strong>$array</strong> parameter's
                           value being the first, and the key/index second.
                           
                           If <strong>$callback</strong> needs to be working with the actual values of the array,
                           specify the first parameter of <strong>$callback</strong> as a reference. Then, any
                           changes made to those elements will be made in the original array itself.
  <info>mixed</info>         <strong>$arg</strong>       If the optional <strong>$arg</strong> parameter is supplied, it will be passed as the
                           third parameter to the <strong>$callback</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

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


id: arsort
type: function
doc:
<comment>Description:</comment>
  Sort an array in descending order and maintain index association
  
  Sorts <strong>$array</strong> in place in descending order, such that its keys maintain their correlation with the
  values they are associated with.
  
  This is used mainly when sorting associative arrays where the actual element order is significant.
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.
  
  Resets array's internal pointer to the first element.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  The input array.
  <info>int</info>    <strong>$flags</strong>  The optional second parameter <strong>$flags</strong> may be used to modify the sorting behavior
                 using these values:
                 
                 Sorting type flags: <info>SORT_REGULAR</info> - compare items normally; the details are
                 described in the comparison operators section<info>SORT_NUMERIC</info> - compare items
                 numerically<info>SORT_STRING</info> - compare items as strings<info>SORT_LOCALE_STRING</info> - compare items
                 as strings, based on the current locale. It uses the locale, which can be changed
                 using <strong>setlocale()</strong> <info>SORT_NATURAL</info> - compare items as strings using "natural ordering"
                 like <strong>natsort()</strong> <info>SORT_FLAG_CASE</info> - can be combined (bitwise OR) with <info>SORT_STRING</info> or
                 <info>SORT_NATURAL</info> to sort strings case-insensitively
                 
                 <info>SORT_REGULAR</info> - compare items normally; the details are described in the comparison
                 operators section
                 
                 <info>SORT_NUMERIC</info> - compare items numerically
                 
                 <info>SORT_STRING</info> - compare items as strings
                 
                 <info>SORT_LOCALE_STRING</info> - compare items as strings, based on the current locale. It uses
                 the locale, which can be changed using <strong>setlocale()</strong>
                 
                 <info>SORT_NATURAL</info> - compare items as strings using "natural ordering" like <strong>natsort()</strong>
                 
                 <info>SORT_FLAG_CASE</info> - can be combined (bitwise OR) with <info>SORT_STRING</info> or <info>SORT_NATURAL</info> to
                 sort strings case-insensitively

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * <strong>sort()</strong>
   * <strong>asort()</strong>
   * The comparison of array sorting functions


id: asin
type: function
doc:
<comment>Description:</comment>
  Arc sine
  
  Returns the arc sine of <strong>$num</strong> in radians. <strong>asin()</strong> is the inverse function of <strong>sin()</strong>, which means that
  $num == sin(asin($num)) for every value of <strong>$num</strong> that is in the domain of <strong>asin()</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  The argument to process

<comment>Return:</comment>
  <info>float</info>  The arc sine of <strong>$num</strong> in radians

<comment>See Also:</comment>
   * <strong>sin()</strong>
   * <strong>asinh()</strong>
   * <strong>acos()</strong>
   * <strong>atan()</strong>


id: asinh
type: function
doc:
<comment>Description:</comment>
  Inverse hyperbolic sine
  
  Returns the inverse hyperbolic sine of <strong>$num</strong>, i.e. the value whose hyperbolic sine is <strong>$num</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  The argument to process

<comment>Return:</comment>
  <info>float</info>  The inverse hyperbolic sine of <strong>$num</strong>

<comment>See Also:</comment>
   * <strong>sinh()</strong>
   * <strong>asin()</strong>
   * <strong>acosh()</strong>
   * <strong>atanh()</strong>


id: asort
type: function
doc:
<comment>Description:</comment>
  Sort an array in ascending order and maintain index association
  
  Sorts <strong>$array</strong> in place in ascending order, such that its keys maintain their correlation with the
  values they are associated with.
  
  This is used mainly when sorting associative arrays where the actual element order is significant.
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.
  
  Resets array's internal pointer to the first element.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  The input array.
  <info>int</info>    <strong>$flags</strong>  The optional second parameter <strong>$flags</strong> may be used to modify the sorting behavior
                 using these values:
                 
                 Sorting type flags: <info>SORT_REGULAR</info> - compare items normally; the details are
                 described in the comparison operators section<info>SORT_NUMERIC</info> - compare items
                 numerically<info>SORT_STRING</info> - compare items as strings<info>SORT_LOCALE_STRING</info> - compare items
                 as strings, based on the current locale. It uses the locale, which can be changed
                 using <strong>setlocale()</strong> <info>SORT_NATURAL</info> - compare items as strings using "natural ordering"
                 like <strong>natsort()</strong> <info>SORT_FLAG_CASE</info> - can be combined (bitwise OR) with <info>SORT_STRING</info> or
                 <info>SORT_NATURAL</info> to sort strings case-insensitively
                 
                 <info>SORT_REGULAR</info> - compare items normally; the details are described in the comparison
                 operators section
                 
                 <info>SORT_NUMERIC</info> - compare items numerically
                 
                 <info>SORT_STRING</info> - compare items as strings
                 
                 <info>SORT_LOCALE_STRING</info> - compare items as strings, based on the current locale. It uses
                 the locale, which can be changed using <strong>setlocale()</strong>
                 
                 <info>SORT_NATURAL</info> - compare items as strings using "natural ordering" like <strong>natsort()</strong>
                 
                 <info>SORT_FLAG_CASE</info> - can be combined (bitwise OR) with <info>SORT_STRING</info> or <info>SORT_NATURAL</info> to
                 sort strings case-insensitively

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * <strong>sort()</strong>
   * <strong>arsort()</strong>
   * The comparison of array sorting functions


id: assert
type: function
doc:
<comment>Description:</comment>
  Checks an assertion
  
  <strong>assert()</strong> allows for the definition of expectations: assertions that take effect in development and
  testing environments, but are optimised away to have zero cost in production.
  
  Assertions should be used as a debugging feature only. One use case for them is to act as
  sanity-checks for preconditions that should always be <info>true</info> and that if they aren't upheld this
  indicates some programming errors. Another use case is to ensure the presence of certain features
  like extension functions or certain system limits and features.
  
  As assertions can be configured to be eliminated, they should not be used for normal runtime
  operations like input parameter checks. As a rule of thumb code should behave as expected even if
  assertion checking is deactivated.
  
  <strong>assert()</strong> will check that the expectation given in <strong>$assertion</strong> holds. If not, and thus the result is
  <info>false</info>, it will take the appropriate action depending on how <strong>assert()</strong> was configured.
  
  The behaviour of <strong>assert()</strong> is dictated by the following INI settings: Assert Configure
  OptionsNameDefaultDescriptionChangelogzend.assertions<return>1</return><return>1</return>: generate and execute code (development
  mode) <return>0</return>: generate code but jump around it at runtime <return>-1</return>: do not generate code (production mode)
  assert.active<info>true</info> If <info>false</info>, <strong>assert()</strong> does not check the expectation and returns <info>true</info>,
  unconditionally.  Deprecated as of PHP 8.3.0. assert.callback<info>null</info> A user defined function to call
  when an assertion fails. It's signature should be:
  <info>void</info>assert_callback<info>string</info><strong>$file</strong><info>int</info><strong>$line</strong><info>null</info><strong>$assertion</strong><info>string</info><strong>$description</strong>  Prior to PHP 8.0.0, the
  signature of the callback should be:
  <info>void</info>assert_callback<info>string</info><strong>$file</strong><info>int</info><strong>$line</strong><info>string</info><strong>$assertion</strong><info>string</info><strong>$description</strong> Deprecated as of PHP
  8.3.0. assert.exception<info>true</info> If <info>true</info> will throw an <class>AssertionError</class> if the expectation isn't upheld.
  Deprecated as of PHP 8.3.0. assert.bail<info>false</info> If <info>true</info> will abort execution of the PHP script if the
  expectation isn't upheld.  Deprecated as of PHP 8.3.0. assert.warning<info>true</info> If <info>true</info>, will emit an
  <info>E_WARNING</info> if the expectation isn't upheld. This INI setting is ineffective if assert.exception is
  enabled.  Deprecated as of PHP 8.3.0.

<comment>Param:</comment>
  <info>mixed</info>                  <strong>$assertion</strong>    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.
                                       
                                       Prior to PHP 8.0.0, if <strong>$assertion</strong> was a <info>string</info> it was
                                       interpreted as PHP code and executed via <strong>eval()</strong>. This string
                                       would be passed to the callback as the third argument. This
                                       behaviour was DEPRECATED in PHP 7.2.0, and REMOVED in PHP
                                       8.0.0.
  <info>Throwable|string|null</info>  <strong>$description</strong>  If <strong>$description</strong> is an instance of <class>Throwable</class>, it will be
                                       thrown only if the <strong>$assertion</strong> is executed and fails.  As of
                                       PHP 8.0.0, this is done prior to calling the potentially
                                       defined assertion callback.   As of PHP 8.0.0, the <info>object</info>
                                       will be thrown regardless of the configuration of
                                       assert.exception.   As of PHP 8.0.0, the assert.bail setting
                                       has no effect in this case.
                                       
                                       As of PHP 8.0.0, this is done prior to calling the
                                       potentially defined assertion callback.
                                       
                                       As of PHP 8.0.0, the <info>object</info> will be thrown regardless of the
                                       configuration of assert.exception.
                                       
                                       As of PHP 8.0.0, the assert.bail setting has no effect in
                                       this case.
                                       
                                       If <strong>$description</strong> is a <info>string</info> 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
                                       <strong>$assertion</strong> fails.
                                       
                                       If <strong>$description</strong> is omitted.  A default description equal to
                                       the source code for the invocation of <strong>assert()</strong> is created at
                                       compile time.

<comment>Return:</comment>
  <info>bool</info>  <strong>assert()</strong> will always return <info>true</info> if at least one of the following is true:
        
        If none of the conditions are true <strong>assert()</strong> will return <info>true</info> if <strong>$assertion</strong> is truthy and
        <info>false</info> otherwise.

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


id: assert_options
type: function
doc:
<comment>Description:</comment>
  Set/get the various assert flags
  
  Set the various <strong>assert()</strong> control options or just query their current settings.
  
  The use of <strong>assert_options()</strong> is discouraged in favor of setting and getting the php.ini directives
  zend.assertions and assert.exception with <strong>ini_set()</strong> and <strong>ini_get()</strong>, respectively.

<comment>Param:</comment>
  <info>int</info>          <strong>$option</strong>       Assert OptionsOptionINI SettingDefault
                             valueDescriptionASSERT_ACTIVEassert.active1enable <strong>assert()</strong>
                             evaluationASSERT_EXCEPTIONassert.exception1throws an <class>AssertionError</class> for
                             each failed assertionsASSERT_WARNINGassert.warning1issue a PHP warning
                             for each failed assertionASSERT_BAILassert.bail0terminate execution on
                             failed assertionsASSERT_QUIET_EVALassert.quiet_eval0 disable
                             error_reporting during assertion expression evaluation. Removed as of
                             PHP 8.0.0. ASSERT_CALLBACKassert.callback(<info>null</info>)Callback to call on
                             failed assertions
  <info>mixed</info>        <strong>$value</strong>        An optional new value for the option.
                             
                             The callback function set via <info>ASSERT_CALLBACK</info> or assert.callback should
                             have the following signature:
                             <info>void</info>assert_callback<info>string</info><strong>$file</strong><info>int</info><strong>$line</strong><info>string</info><info>null</info></info><strong>$assertion</strong><info>string</info><strong>$description</strong>
                             <strong>$file</strong> The file where <strong>assert()</strong> has been called. <strong>$line</strong> The line where
                             <strong>assert()</strong> has been called. <strong>$assertion</strong> Prior to PHP 8.0.0, the assertion
                             which has been passed to <strong>assert()</strong>, 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
                             <info>null</info>. <strong>$description</strong> The description that has been passed to <strong>assert()</strong>.
                             
                             The file where <strong>assert()</strong> has been called.
                             
                             The line where <strong>assert()</strong> has been called.
                             
                             Prior to PHP 8.0.0, the assertion which has been passed to <strong>assert()</strong>,
                             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 <info>null</info>.
                             
                             The description that has been passed to <strong>assert()</strong>.
  <info>string</info>       <strong>$file</strong>         The file where <strong>assert()</strong> has been called.
  <info>int</info>          <strong>$line</strong>         The line where <strong>assert()</strong> has been called.
  <info>string|null</info>  <strong>$assertion</strong>    Prior to PHP 8.0.0, the assertion which has been passed to <strong>assert()</strong>,
                             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 <info>null</info>.
  <info>string</info>       <strong>$description</strong>  The description that has been passed to <strong>assert()</strong>.

<comment>Return:</comment>
  <info>mixed</info>  Returns the original setting of any option.

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


id: atan
type: function
doc:
<comment>Description:</comment>
  Arc tangent
  
  Returns the arc tangent of <strong>$num</strong> in radians. <strong>atan()</strong> is the inverse function of <strong>tan()</strong>, which means
  that $num == tan(atan($num)) for every value of <strong>$num</strong> that is in the domain of <strong>atan()</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  The argument to process

<comment>Return:</comment>
  <info>float</info>  The arc tangent of <strong>$num</strong> in radians.

<comment>See Also:</comment>
   * <strong>tan()</strong>
   * <strong>atanh()</strong>
   * <strong>asin()</strong>
   * <strong>acos()</strong>


id: atan2
type: function
doc:
<comment>Description:</comment>
  Arc tangent of two variables
  
  This function calculates the arc tangent of the two variables <strong>$x</strong> and <strong>$y</strong>.  It is similar to
  calculating the arc tangent of <strong>$y</strong> / <strong>$x</strong>, except that the signs of both arguments are used to
  determine the quadrant of the result.
  
  The function returns the result in radians, which is between -PI and PI (inclusive).

<comment>Param:</comment>
  <info>float</info>  <strong>$y</strong>  Dividend parameter
  <info>float</info>  <strong>$x</strong>  Divisor parameter

<comment>Return:</comment>
  <info>float</info>  The arc tangent of <strong>$y</strong>/<strong>$x</strong>  in radians.

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


id: atanh
type: function
doc:
<comment>Description:</comment>
  Inverse hyperbolic tangent
  
  Returns the inverse hyperbolic tangent of <strong>$num</strong>, i.e. the value whose hyperbolic tangent is <strong>$num</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  The argument to process

<comment>Return:</comment>
  <info>float</info>  Inverse hyperbolic tangent of <strong>$num</strong>

<comment>See Also:</comment>
   * <strong>tanh()</strong>
   * <strong>atan()</strong>
   * <strong>asinh()</strong>
   * <strong>acosh()</strong>


id: base64_decode
type: function
doc:
<comment>Description:</comment>
  Decodes data encoded with MIME base64
  
  Decodes a base64 encoded <strong>$string</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The encoded data.
  <info>bool</info>    <strong>$strict</strong>  If the <strong>$strict</strong> parameter is set to <info>true</info> then the <strong>base64_decode()</strong> function will
                   return <info>false</info> if the input contains character from outside the base64 alphabet.
                   Otherwise invalid characters will be silently discarded.

<comment>Return:</comment>
  <info>string|false</info>  Returns the decoded data or <info>false</info> on failure. The returned data may be binary.

<comment>See Also:</comment>
   * <strong>base64_encode()</strong>
   * RFC 2045 section 6.8


id: base64_encode
type: function
doc:
<comment>Description:</comment>
  Encodes data with MIME base64
  
  Encodes the given <strong>$string</strong> with base64.
  
  This encoding is designed to make binary data survive transport through transport layers that are
  not 8-bit clean, such as mail bodies.
  
  Base64-encoded data takes about 33% more space than the original data.

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

<comment>Return:</comment>
  <info>string</info>  The encoded data, as a string.

<comment>See Also:</comment>
   * <strong>base64_decode()</strong>
   * <strong>chunk_split()</strong>
   * <strong>convert_uuencode()</strong>
   * RFC 2045 section 6.8


id: base_convert
type: function
doc:
<comment>Description:</comment>
  Convert a number between arbitrary bases
  
  Returns a string containing <strong>$num</strong> represented in base <strong>$to_base</strong>.  The base in which <strong>$num</strong> is given is
  specified in <strong>$from_base</strong>.  Both <strong>$from_base</strong> and <strong>$to_base</strong> have to be between 2 and 36, inclusive.
  Digits in numbers with a base higher than 10 will be represented with the letters a-z, with a
  meaning 10, b meaning 11 and z meaning 35. The case of the letters doesn't matter, i.e. <strong>$num</strong> is
  interpreted case-insensitively.
  
  <strong>base_convert()</strong> may lose precision on large numbers due to properties related to the internal <info>float</info>
  type used. Please see the Floating point numbers section in the manual for more specific
  information and limitations.

<comment>Param:</comment>
  <info>string</info>  <strong>$num</strong>        The number to convert. Any invalid characters in <strong>$num</strong> are silently ignored. As
                      of PHP 7.4.0 supplying any invalid characters is deprecated.
  <info>int</info>     <strong>$from_base</strong>  The base <strong>$num</strong> is in
  <info>int</info>     <strong>$to_base</strong>    The base to convert <strong>$num</strong> to

<comment>Return:</comment>
  <info>string</info>  <strong>$num</strong> converted to base <strong>$to_base</strong>

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


id: basename
type: function
doc:
<comment>Description:</comment>
  Returns trailing name component of path
  
  Given a string containing the path to a file or directory, this function will return the trailing
  name component.
  
  <strong>basename()</strong> operates naively on the input string, and is not aware of the actual filesystem, or
  path components such as "<return>..</return>".
  
  <strong>basename()</strong> is locale aware, so for it to see the  correct basename with multibyte character paths,
  the matching locale must  be set using the <strong>setlocale()</strong> function. If <strong>$path</strong> contains characters
  which are invalid for the current locale, the behavior of <strong>basename()</strong> is undefined.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>    A path.
                   
                   On Windows, both slash (<return>/</return>) and backslash (<return>\</return>) are used as directory separator
                   character. In other environments, it is the forward slash (<return>/</return>).
  <info>string</info>  <strong>$suffix</strong>  If the name component ends in <strong>$suffix</strong> this will also be cut off.

<comment>Return:</comment>
  <info>string</info>  Returns the base name of the given <strong>$path</strong>.

<comment>See Also:</comment>
   * <strong>dirname()</strong>
   * <strong>pathinfo()</strong>


id: bcadd
type: function
doc:
<comment>Description:</comment>
  Add two arbitrary precision numbers
  
  Sums <strong>$num1</strong> and <strong>$num2</strong>.

<comment>Param:</comment>
  <info>string</info>    <strong>$num1</strong>   The left operand, as a string.
  <info>string</info>    <strong>$num2</strong>   The right operand, as a string.
  <info>int|null</info>  <strong>$scale</strong>  This optional parameter is used to set the number
                    of digits after the decimal place in the result. If omitted, it will default to
                    the scale set
                    globally with the <strong>bcscale()</strong> function, or fallback to <return>0</return> if
                    this has not been set.

<comment>Return:</comment>
  <info>string</info>  The sum of the two operands, as a string.

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


id: bccomp
type: function
doc:
<comment>Description:</comment>
  Compare two arbitrary precision numbers
  
  Compares the <strong>$num1</strong> to the <strong>$num2</strong> and returns the result as an integer.

<comment>Param:</comment>
  <info>string</info>    <strong>$num1</strong>   The left operand, as a string.
  <info>string</info>    <strong>$num2</strong>   The right operand, as a string.
  <info>int|null</info>  <strong>$scale</strong>  The optional <strong>$scale</strong> parameter is used to set the number of digits after the
                    decimal place which will be used in the comparison.

<comment>Return:</comment>
  <info>int</info>  Returns 0 if the two operands are equal, 1 if the <strong>$num1</strong> is larger than the  <strong>$num2</strong>, -1
       otherwise.


id: bcdiv
type: function
doc:
<comment>Description:</comment>
  Divide two arbitrary precision numbers
  
  Divides the <strong>$num1</strong> by the <strong>$num2</strong>.

<comment>Param:</comment>
  <info>string</info>    <strong>$num1</strong>   The dividend, as a string.
  <info>string</info>    <strong>$num2</strong>   The divisor, as a string.
  <info>int|null</info>  <strong>$scale</strong>  This optional parameter is used to set the number
                    of digits after the decimal place in the result. If omitted, it will default to
                    the scale set
                    globally with the <strong>bcscale()</strong> function, or fallback to <return>0</return> if
                    this has not been set.

<comment>Return:</comment>
  <info>string</info>  Returns the result of the division as a string, or <info>null</info> if  <strong>$num2</strong> is <return>0</return>.

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


id: bcmod
type: function
doc:
<comment>Description:</comment>
  Get modulus of an arbitrary precision number
  
  Get the remainder of dividing <strong>$num1</strong> by <strong>$num2</strong>. Unless <strong>$num2</strong> is zero, the result has the same sign
  as <strong>$num1</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$num1</strong>  The dividend, as a string.
  <info>string</info>  <strong>$num2</strong>  The divisor, as a string.

<comment>Return:</comment>
  <info>string</info>  Returns the modulus as a string, or <info>null</info> if  <strong>$num2</strong> is <return>0</return>.

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


id: bcmul
type: function
doc:
<comment>Description:</comment>
  Multiply two arbitrary precision numbers
  
  Multiply the <strong>$num1</strong> by the <strong>$num2</strong>.

<comment>Param:</comment>
  <info>string</info>    <strong>$num1</strong>   The left operand, as a string.
  <info>string</info>    <strong>$num2</strong>   The right operand, as a string.
  <info>int|null</info>  <strong>$scale</strong>  This optional parameter is used to set the number
                    of digits after the decimal place in the result. If omitted, it will default to
                    the scale set
                    globally with the <strong>bcscale()</strong> function, or fallback to <return>0</return> if
                    this has not been set.

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

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


id: bcpow
type: function
doc:
<comment>Description:</comment>
  Raise an arbitrary precision number to another
  
  Raise <strong>$num</strong> to the power  <strong>$exponent</strong>.

<comment>Param:</comment>
  <info>string</info>    <strong>$num</strong>       The base, as a string.
  <info>string</info>    <strong>$exponent</strong>  The exponent, as a string. If the exponent is non-integral, it is truncated.
                       The valid range of the exponent is platform specific, but is at least
                       <return>-2147483648</return> to <return>2147483647</return>.
  <info>int|null</info>  <strong>$scale</strong>     This optional parameter is used to set the number
                       of digits after the decimal place in the result. If omitted, it will default
                       to the scale set
                       globally with the <strong>bcscale()</strong> function, or fallback to <return>0</return> if
                       this has not been set.

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

<comment>See Also:</comment>
   * <strong>bcpowmod()</strong>
   * <strong>bcsqrt()</strong>


id: bcpowmod
type: function
doc:
<comment>Description:</comment>
  Raise an arbitrary precision number to another, reduced by a specified modulus
  
  Use the fast-exponentiation method to raise  <strong>$num</strong> to the power <strong>$exponent</strong> with respect to the
  modulus <strong>$modulus</strong>.

<comment>Param:</comment>
  <info>string</info>    <strong>$num</strong>       The base, as an integral string (i.e. the scale has to be zero).
  <info>string</info>    <strong>$exponent</strong>  The exponent, as an non-negative, integral string (i.e. the scale has to be
                       zero).
  <info>string</info>    <strong>$modulus</strong>   The modulus, as an integral string (i.e. the scale has to be zero).
  <info>int|null</info>  <strong>$scale</strong>     This optional parameter is used to set the number
                       of digits after the decimal place in the result. If omitted, it will default
                       to the scale set
                       globally with the <strong>bcscale()</strong> function, or fallback to <return>0</return> if
                       this has not been set.

<comment>Return:</comment>
  <info>string</info>  Returns the result as a string, or <info>false</info> if <strong>$modulus</strong> is <return>0</return> or <strong>$exponent</strong> is negative.

<comment>See Also:</comment>
   * <strong>bcpow()</strong>
   * <strong>bcmod()</strong>


id: bcscale
type: function
doc:
<comment>Description:</comment>
  Set or get default scale parameter for all bc math functions
  
  Sets the default scale parameter for all subsequent calls to bc math functions that do not
  explicitly specify a scale parameter.
  
  Gets the current scale factor.

<comment>Param:</comment>
  <info>int</info>  <strong>$scale</strong>  The scale factor.

<comment>Return:</comment>
  <info>int</info>  Returns the old scale when used as setter. Otherwise the current scale is returned.


id: bcsqrt
type: function
doc:
<comment>Description:</comment>
  Get the square root of an arbitrary precision number
  
  Return the square root of the <strong>$num</strong>.

<comment>Param:</comment>
  <info>string</info>    <strong>$num</strong>    The operand, as a well-formed BCMath numeric string.
  <info>int|null</info>  <strong>$scale</strong>  This optional parameter is used to set the number
                    of digits after the decimal place in the result. If omitted, it will default to
                    the scale set
                    globally with the <strong>bcscale()</strong> function, or fallback to <return>0</return> if
                    this has not been set.

<comment>Return:</comment>
  <info>string</info>  Returns the square root as a well-formed BCMath numeric string.

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


id: bcsub
type: function
doc:
<comment>Description:</comment>
  Subtract one arbitrary precision number from another
  
  Subtracts the <strong>$num2</strong> from the <strong>$num1</strong>.

<comment>Param:</comment>
  <info>string</info>    <strong>$num1</strong>   The left operand, as a string.
  <info>string</info>    <strong>$num2</strong>   The right operand, as a string.
  <info>int|null</info>  <strong>$scale</strong>  This optional parameter is used to set the number
                    of digits after the decimal place in the result. If omitted, it will default to
                    the scale set
                    globally with the <strong>bcscale()</strong> function, or fallback to <return>0</return> if
                    this has not been set.

<comment>Return:</comment>
  <info>string</info>  The result of the subtraction, as a string.

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


id: bin2hex
type: function
doc:
<comment>Description:</comment>
  Convert binary data into hexadecimal representation
  
  Returns an ASCII string containing the hexadecimal representation of <strong>$string</strong>. The conversion is
  done byte-wise with the high-nibble first.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  A string.

<comment>Return:</comment>
  <info>string</info>  Returns the hexadecimal representation of the given string.

<comment>See Also:</comment>
   * <strong>hex2bin()</strong>
   * <strong>pack()</strong>


id: bind_textdomain_codeset
type: function
doc:
<comment>Description:</comment>
  Specify or get the character encoding in which the messages from the DOMAIN message catalog will
  be
  returned
  
  <strong>bind_textdomain_codeset()</strong> allows to set or get the encoding in which messages from <strong>$domain</strong> will be
  returned by <strong>gettext()</strong> and similar functions.

<comment>Param:</comment>
  <info>string</info>       <strong>$domain</strong>   The domain.
  <info>string|null</info>  <strong>$codeset</strong>  The code set. If <info>null</info>, the currently set encoding is returned.

<comment>Return:</comment>
  <info>string|false</info>  A <info>string</info> on success.


id: bindec
type: function
doc:
<comment>Description:</comment>
  Binary to decimal
  
  Returns the decimal equivalent of the binary number represented by the <strong>$binary_string</strong> argument.
  
  <strong>bindec()</strong> converts a binary number to an <info>int</info> or, if needed for size reasons, <info>float</info>.
  
  <strong>bindec()</strong> interprets all <strong>$binary_string</strong> values as unsigned integers. This is because <strong>bindec()</strong> sees
  the most significant bit as another order of magnitude rather than as the sign bit.

<comment>Param:</comment>
  <info>string</info>  <strong>$binary_string</strong>  The binary string to convert. Any invalid characters in <strong>$binary_string</strong> are
                          silently ignored. As of PHP 7.4.0 supplying any invalid characters is
                          deprecated.

<comment>Return:</comment>
  <info>int|float</info>  The decimal value of <strong>$binary_string</strong>

<comment>See Also:</comment>
   * <strong>decbin()</strong>
   * <strong>octdec()</strong>
   * <strong>hexdec()</strong>
   * <strong>base_convert()</strong>


id: bindtextdomain
type: function
doc:
<comment>Description:</comment>
  Sets or gets the path for a domain
  
  The <strong>bindtextdomain()</strong> function sets or gets the path for a domain.

<comment>Param:</comment>
  <info>string</info>       <strong>$domain</strong>     The domain.
  <info>string|null</info>  <strong>$directory</strong>  The directory path. An empty string means the current directory. If <info>null</info>,
                           the currently set directory is returned.

<comment>Return:</comment>
  <info>string|false</info>  The full pathname for the <strong>$domain</strong> currently being set, or <info>false</info> on failure.


id: boolval
type: function
doc:
<comment>Description:</comment>
  Get the boolean value of a variable
  
  Returns the <info>bool</info> value of <strong>$value</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The scalar value being converted to a <info>bool</info>.

<comment>Return:</comment>
  <info>bool</info>  The <info>bool</info> value of <strong>$value</strong>.

<comment>See Also:</comment>
   * <strong>floatval()</strong>
   * <strong>intval()</strong>
   * <strong>strval()</strong>
   * <strong>settype()</strong>
   * <strong>is_bool()</strong>
   * Type juggling


id: bzclose
type: function
doc:
<comment>Description:</comment>
  Close a bzip2 file
  
  Closes the given bzip2 file pointer.

<comment>Param:</comment>
  <info>resource</info>  <strong>$bz</strong>  The file pointer. It must be valid and must point to a file  successfully opened by
                 <strong>bzopen()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

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


id: bzcompress
type: function
doc:
<comment>Description:</comment>
  Compress a string into bzip2 encoded data
  
  <strong>bzcompress()</strong> compresses the given string and returns it as bzip2 encoded data.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>         The string to compress.
  <info>int</info>     <strong>$block_size</strong>   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.
  <info>int</info>     <strong>$work_factor</strong>  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.
                        
                        Regardless of the <strong>$work_factor</strong>, the generated  output is the same.

<comment>Return:</comment>
  <info>string|int</info>  The compressed string, or an error number if an error occurred.

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


id: bzdecompress
type: function
doc:
<comment>Description:</comment>
  Decompresses bzip2 encoded data
  
  <strong>bzdecompress()</strong> decompresses the given string containing bzip2 encoded data.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>             The string to decompress.
  <info>bool</info>    <strong>$use_less_memory</strong>  If <info>true</info>, 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.
                            
                            See the bzip2 documentation for more  information about this feature.

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

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


id: bzerrno
type: function
doc:
<comment>Description:</comment>
  Returns a bzip2 error number
  
  Returns the error number of any bzip2 error returned by the given file pointer.

<comment>Param:</comment>
  <info>resource</info>  <strong>$bz</strong>  The file pointer. It must be valid and must point to a file  successfully opened by
                 <strong>bzopen()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the error number as an integer.

<comment>See Also:</comment>
   * <strong>bzerror()</strong>
   * <strong>bzerrstr()</strong>


id: bzerror
type: function
doc:
<comment>Description:</comment>
  Returns the bzip2 error number and error string in an array
    
  
  Returns the error number and error string of any bzip2 error returned by  the given file pointer.

<comment>Param:</comment>
  <info>resource</info>  <strong>$bz</strong>  The file pointer. It must be valid and must point to a file  successfully opened by
                 <strong>bzopen()</strong>.

<comment>Return:</comment>
  <info>array</info>  Returns an associative array, with the error code in the  <return>errno</return> entry, and the error
         message in the <return>errstr</return> entry.

<comment>See Also:</comment>
   * <strong>bzerrno()</strong>
   * <strong>bzerrstr()</strong>


id: bzerrstr
type: function
doc:
<comment>Description:</comment>
  Returns a bzip2 error string
  
  Gets the error string of any bzip2 error returned by the given file pointer.

<comment>Param:</comment>
  <info>resource</info>  <strong>$bz</strong>  The file pointer. It must be valid and must point to a file  successfully opened by
                 <strong>bzopen()</strong>.

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

<comment>See Also:</comment>
   * <strong>bzerrno()</strong>
   * <strong>bzerror()</strong>


id: bzflush
type: function
doc:
<comment>Description:</comment>
  Do nothing
  
  This function is supposed to force a write of all buffered bzip2 data for the file pointer <strong>$bz</strong>,
  but is implemented as null function in libbz2, and as such does nothing.

<comment>Param:</comment>
  <info>resource</info>  <strong>$bz</strong>  The file pointer. It must be valid and must point to a file  successfully opened by
                 <strong>bzopen()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>bzread()</strong>
   * <strong>bzwrite()</strong>


id: bzopen
type: function
doc:
<comment>Description:</comment>
  Opens a bzip2 compressed file
  
  <strong>bzopen()</strong> opens a bzip2 (.bz2) file for reading or writing.

<comment>Param:</comment>
  <info>string|resource</info>  <strong>$file</strong>  The name of the file to open, or an existing stream resource.
  <info>string</info>           <strong>$mode</strong>  The modes <return>'r'</return> (read), and <return>'w'</return> (write) are supported. Everything else will
                          cause <strong>bzopen()</strong> to return <info>false</info>.

<comment>Return:</comment>
  <info>resource|false</info>  If the open fails, <strong>bzopen()</strong> returns <info>false</info>, otherwise it returns a pointer to the
                  newly opened file.

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


id: bzread
type: function
doc:
<comment>Description:</comment>
  Binary safe bzip2 file read
  
  <strong>bzread()</strong> reads from the given bzip2 file pointer.
  
  Reading stops when <strong>$length</strong> (uncompressed) bytes have been read or EOF is reached, whichever comes
  first.

<comment>Param:</comment>
  <info>resource</info>  <strong>$bz</strong>      The file pointer. It must be valid and must point to a file  successfully
                     opened by <strong>bzopen()</strong>.
  <info>int</info>       <strong>$length</strong>  If not specified, <strong>bzread()</strong> will read 1024  (uncompressed) bytes at a time. A
                     maximum of 8192 uncompressed bytes will be read at a time.

<comment>Return:</comment>
  <info>string|false</info>  Returns the uncompressed data, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>bzwrite()</strong>
   * <strong>feof()</strong>
   * <strong>bzopen()</strong>


id: bzwrite
type: function
doc:
<comment>Description:</comment>
  Binary safe bzip2 file write
  
  <strong>bzwrite()</strong> writes a string into the given bzip2 file  stream.

<comment>Param:</comment>
  <info>resource</info>  <strong>$bz</strong>      The file pointer. It must be valid and must point to a file  successfully
                     opened by <strong>bzopen()</strong>.
  <info>string</info>    <strong>$data</strong>    The written data.
  <info>int|null</info>  <strong>$length</strong>  If supplied, writing will stop after <strong>$length</strong>  (uncompressed) bytes have been
                     written or the end of  <strong>$data</strong> is reached, whichever comes first.

<comment>Return:</comment>
  <info>int|false</info>  Returns the number of bytes written, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>bzread()</strong>
   * <strong>bzopen()</strong>


id: cal_days_in_month
type: function
doc:
<comment>Description:</comment>
  Return the number of days in a month for a given year and calendar
  
  This function will return the number of days in the <strong>$month</strong> of <strong>$year</strong> for the specified <strong>$calendar</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$calendar</strong>  Calendar to use for calculation
  <info>int</info>  <strong>$month</strong>     Month in the selected calendar
  <info>int</info>  <strong>$year</strong>      Year in the selected calendar

<comment>Return:</comment>
  <info>int</info>  The length in days of the selected month in the given calendar


id: cal_from_jd
type: function
doc:
<comment>Description:</comment>
  Converts from Julian Day Count to a supported calendar
  
  <strong>cal_from_jd()</strong> converts the Julian day given in <strong>$julian_day</strong> into a date of the specified <strong>$calendar</strong>.
  Supported <strong>$calendar</strong> values are <info>CAL_GREGORIAN</info>, <info>CAL_JULIAN</info>, <info>CAL_JEWISH</info> and <info>CAL_FRENCH</info>.

<comment>Param:</comment>
  <info>int</info>  <strong>$julian_day</strong>  Julian day as integer
  <info>int</info>  <strong>$calendar</strong>    Calendar to convert to

<comment>Return:</comment>
  <info>array</info>  Returns an array containing calendar information like month, day, year, day of week (<return>dow</return>),
         abbreviated and full names of weekday and month and the date in string form
         "month/day/year". The day of week ranges from <return>0</return> (Sunday) to <return>6</return> (Saturday).

<comment>See Also:</comment>
   * <strong>cal_to_jd()</strong>
   * <strong>jdtofrench()</strong>
   * <strong>jdtogregorian()</strong>
   * <strong>jdtojewish()</strong>
   * <strong>jdtojulian()</strong>
   * <strong>jdtounix()</strong>


id: cal_info
type: function
doc:
<comment>Description:</comment>
  Returns information about a particular calendar
  
  <strong>cal_info()</strong> returns information on the specified <strong>$calendar</strong>.
  
  Calendar information is returned as an array containing the elements <return>calname</return>, <return>calsymbol</return>, <return>month</return>,
  <return>abbrevmonth</return> and <return>maxdaysinmonth</return>. The names of the different calendars  which can be used as
  <strong>$calendar</strong> are as follows:  0 or <info>CAL_GREGORIAN</info> - Gregorian Calendar  1 or <info>CAL_JULIAN</info> - Julian
  Calendar  2 or <info>CAL_JEWISH</info> - Jewish Calendar  3 or <info>CAL_FRENCH</info> - French Revolutionary Calendar
  
  0 or <info>CAL_GREGORIAN</info> - Gregorian Calendar
  
  1 or <info>CAL_JULIAN</info> - Julian Calendar
  
  2 or <info>CAL_JEWISH</info> - Jewish Calendar
  
  3 or <info>CAL_FRENCH</info> - French Revolutionary Calendar
  
  If no <strong>$calendar</strong> is specified information on all supported calendars is returned as an array.

<comment>Param:</comment>
  <info>int</info>  <strong>$calendar</strong>  Calendar to return information for. If no calendar is specified information about
                  all calendars is returned.

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


id: cal_to_jd
type: function
doc:
<comment>Description:</comment>
  Converts from a supported calendar to Julian Day Count
  
  <strong>cal_to_jd()</strong> calculates the Julian day count for a date in the specified <strong>$calendar</strong>. Supported
  <strong>$calendar</strong>s are <info>CAL_GREGORIAN</info>, <info>CAL_JULIAN</info>, <info>CAL_JEWISH</info> and <info>CAL_FRENCH</info>.

<comment>Param:</comment>
  <info>int</info>  <strong>$calendar</strong>  Calendar to convert from, one of  <info>CAL_GREGORIAN</info>, <info>CAL_JULIAN</info>, <info>CAL_JEWISH</info> or
                  <info>CAL_FRENCH</info>.
  <info>int</info>  <strong>$month</strong>     The month as a number, the valid range depends  on the <strong>$calendar</strong>
  <info>int</info>  <strong>$day</strong>       The day as a number, the valid range depends  on the <strong>$calendar</strong>
  <info>int</info>  <strong>$year</strong>      The year as a number, the valid range depends  on the <strong>$calendar</strong>

<comment>Return:</comment>
  <info>int</info>  A Julian Day number.

<comment>See Also:</comment>
   * <strong>cal_from_jd()</strong>
   * <strong>frenchtojd()</strong>
   * <strong>gregoriantojd()</strong>
   * <strong>jewishtojd()</strong>
   * <strong>juliantojd()</strong>
   * <strong>unixtojd()</strong>


id: call_user_func
type: function
doc:
<comment>Description:</comment>
  Call the callback given by the first parameter
  
  Calls the <strong>$callback</strong> given by the first parameter and passes the remaining parameters as arguments.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  The <info>callable</info> to be called.
  <info>mixed</info>     <strong>$args</strong>      Zero or more parameters to be passed to the callback.
                       
                       Note that the parameters for <strong>call_user_func()</strong> are not passed by reference.
                       <strong>call_user_func()</strong> example and references
                       ]]>The above example will output:
                       
                       The above example will output:

<comment>Return:</comment>
  <info>mixed</info>  Returns the return value of the callback.

<comment>See Also:</comment>
   * <strong>call_user_func_array()</strong>
   * <strong>is_callable()</strong>
   * Variable functions
   * ReflectionFunction::invoke
   * ReflectionMethod::invoke


id: call_user_func_array
type: function
doc:
<comment>Description:</comment>
  Call a callback with an array of parameters
  
  Calls the <strong>$callback</strong> given by the first parameter with the parameters in <strong>$args</strong>.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  The <info>callable</info> to be called.
  <info>array</info>     <strong>$args</strong>      The parameters to be passed to the callback, as an array.
                       
                       If the keys of <strong>$args</strong> are all numeric, the keys are ignored and each element
                       will be passed to <strong>$callback</strong> as a positional argument, in order.
                       
                       If any keys of <strong>$args</strong> are strings, those elements will be passed to <strong>$callback</strong>
                       as named arguments, with the name given by the key.
                       
                       It is a fatal error to have a numeric key in <strong>$args</strong> appear after a string key,
                       or to have a string key that does not match the name of any parameter of
                       <strong>$callback</strong>.

<comment>Return:</comment>
  <info>mixed</info>  Returns the return value of the callback, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>call_user_func()</strong>
   * ReflectionFunction::invokeArgs
   * ReflectionMethod::invokeArgs


id: ceil
type: function
doc:
<comment>Description:</comment>
  Round fractions up
  
  Returns the next highest integer value by rounding up  <strong>$num</strong> if necessary.

<comment>Param:</comment>
  <info>int|float</info>  <strong>$num</strong>  The value to round

<comment>Return:</comment>
  <info>float</info>  <strong>$num</strong> rounded up to the next highest integer. The return value of <strong>ceil()</strong> is still of type
         <info>float</info> as the value range of <info>float</info> is  usually bigger than that of <info>int</info>.

<comment>See Also:</comment>
   * <strong>floor()</strong>
   * <strong>round()</strong>


id: chdir
type: function
doc:
<comment>Description:</comment>
  Change directory
  
  Changes PHP's current directory to  <strong>$directory</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$directory</strong>  The new current directory

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

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


id: checkdate
type: function
doc:
<comment>Description:</comment>
  Validate a Gregorian date
  
  Checks the validity of the date formed by the arguments. A date is considered valid if each
  parameter is properly defined.

<comment>Param:</comment>
  <info>int</info>  <strong>$month</strong>  The month is between 1 and 12 inclusive.
  <info>int</info>  <strong>$day</strong>    The day is within the allowed number of days for the given  <strong>$month</strong>.  Leap <strong>$year</strong>s  are
               taken into consideration.
  <info>int</info>  <strong>$year</strong>   The year is between 1 and 32767 inclusive.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the date given is valid; otherwise returns <info>false</info>.

<comment>See Also:</comment>
   * <strong>mktime()</strong>
   * <strong>strtotime()</strong>


id: checkdnsrr
type: function
doc:
<comment>Description:</comment>
  Check DNS records corresponding to a given Internet host name or IP address
  
  Searches DNS for records of type <strong>$type</strong> corresponding to <strong>$hostname</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$hostname</strong>  <strong>$hostname</strong> may either be the IP address in dotted-quad notation or the host
                     name.
  <info>string</info>  <strong>$type</strong>      <strong>$type</strong> may be any one of: A, MX, NS, SOA, PTR, CNAME, AAAA, A6, SRV, NAPTR, TXT
                     or ANY.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if any records are found; returns <info>false</info> if no records were found or if an error
        occurred.

<comment>See Also:</comment>
   * <strong>dns_get_record()</strong>
   * <strong>getmxrr()</strong>
   * <strong>gethostbyaddr()</strong>
   * <strong>gethostbyname()</strong>
   * <strong>gethostbynamel()</strong>
   * the named(8) manual page


id: chgrp
type: function
doc:
<comment>Description:</comment>
  Changes file group
  
  Attempts to change the group of the file <strong>$filename</strong> to <strong>$group</strong>.
  
  Only the superuser may change the group of a file arbitrarily; other users may change the group of
  a file to any group of which that user is a member.

<comment>Param:</comment>
  <info>string</info>      <strong>$filename</strong>  Path to the file.
  <info>string|int</info>  <strong>$group</strong>     A group name or number.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>chown()</strong>
   * <strong>chmod()</strong>


id: chmod
type: function
doc:
<comment>Description:</comment>
  Changes file mode
  
  Attempts to change the mode of the specified file to that given in <strong>$permissions</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>     Path to the file.
  <info>int</info>     <strong>$permissions</strong>  Note that <strong>$permissions</strong> is not automatically assumed to be an octal value, so
                        to ensure the expected operation, you need to prefix <strong>$permissions</strong> with a
                        zero (0).  Strings such as "g+w" will not work properly.
                        
                        
                        ]]>
                        
                        The <strong>$permissions</strong> parameter consists of three octal number components
                        specifying access restrictions for the owner, the user group in which the
                        owner is in, and to everybody else in this order. One component can be
                        computed by adding up the needed permissions for that target user base.
                        Number 1 means that you grant execute rights, number 2 means that you make
                        the file writeable, number 4 means that you make the file readable. Add up
                        these numbers to specify needed rights. You can also read more about modes
                        on Unix systems with 'man 1 chmod' and 'man 2 chmod'.
                        
                        

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

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


id: chop
type: function
doc:
<comment>Description:</comment>
  Alias of rtrim
  
  This function is an alias of:  <strong>rtrim()</strong>.


id: chown
type: function
doc:
<comment>Description:</comment>
  Changes file owner
  
  Attempts to change the owner of the file <strong>$filename</strong> to user <strong>$user</strong>. Only the superuser may change
  the owner of a file.

<comment>Param:</comment>
  <info>string</info>      <strong>$filename</strong>  Path to the file.
  <info>string|int</info>  <strong>$user</strong>      A user name or number.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>chmod()</strong>
   * <strong>chgrp()</strong>


id: chr
type: function
doc:
<comment>Description:</comment>
  Generate a single-byte string from a number
  
  Returns a one-character string containing the character specified by interpreting <strong>$codepoint</strong> as an
  unsigned integer.
  
  This can be used to create a one-character string in a single-byte encoding such as ASCII,
  ISO-8859, or Windows 1252, by passing the position of a desired character in the encoding's
  mapping table. However, note that this function is not aware of any string encoding, and in
  particular cannot be passed a Unicode code point value to generate a string in a multibyte
  encoding like UTF-8 or UTF-16.
  
  This function complements <strong>ord()</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$codepoint</strong>  An integer between 0 and 255.
                   
                   Values outside the valid range (0..255) will be bitwise and'ed with 255, which is
                   equivalent to the following algorithm:

<comment>Return:</comment>
  <info>string</info>  A single-character string containing the specified byte.

<comment>See Also:</comment>
   * <strong>sprintf()</strong> with a format string of <return>%c</return>
   * <strong>ord()</strong>
   * An ASCII-table
   * <strong>mb_chr()</strong>
   * <strong>IntlChar::chr()</strong>


id: chroot
type: function
doc:
<comment>Description:</comment>
  Change the root directory
  
  Changes the root directory of the current process to <strong>$directory</strong>, and changes the current working
  directory to "/".
  
  This function is only available to GNU and BSD systems, and only when using the CLI, CGI or Embed
  SAPI. Also, this function requires root privileges.
  
  Calling this function does not change the values of the <return>__DIR__</return> and <return>__FILE__</return> magic constants.

<comment>Param:</comment>
  <info>string</info>  <strong>$directory</strong>  The path to change the root directory to.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: chunk_split
type: function
doc:
<comment>Description:</comment>
  Split a string into smaller chunks
  
  Can be used to split a string into smaller chunks which is useful for e.g. converting
  <strong>base64_encode()</strong> output to match RFC 2045 semantics. It inserts <strong>$separator</strong> every  <strong>$length</strong>
  characters.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>     The string to be chunked.
  <info>int</info>     <strong>$length</strong>     The chunk length.
  <info>string</info>  <strong>$separator</strong>  The line ending sequence.

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

<comment>See Also:</comment>
   * <strong>str_split()</strong>
   * <strong>explode()</strong>
   * <strong>wordwrap()</strong>
   * RFC 2045


id: class_alias
type: function
doc:
<comment>Description:</comment>
  Creates an alias for a class
  
  Creates an alias named <strong>$alias</strong> based on the user defined class <strong>$class</strong>. The aliased class is exactly
  the same as the original class.

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>     The original class.
  <info>string</info>  <strong>$alias</strong>     The alias name for the class.
  <info>bool</info>    <strong>$autoload</strong>  Whether to autoload if the original class is not found.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>get_parent_class()</strong>
   * <strong>is_subclass_of()</strong>


id: class_exists
type: function
doc:
<comment>Description:</comment>
  Checks if the class has been defined
  
  This function checks whether or not the given class has been defined.

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>     The class name. The name is matched in a case-insensitive manner.
  <info>bool</info>    <strong>$autoload</strong>  Whether to autoload if not already loaded.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$class</strong> is a defined class, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>function_exists()</strong>
   * <strong>enum_exists()</strong>
   * <strong>interface_exists()</strong>
   * <strong>get_declared_classes()</strong>


id: class_implements
type: function
doc:
<comment>Description:</comment>
  Return the interfaces which are implemented by the given class or interface
    
  
  This function returns an array with the names of the interfaces that the given <strong>$object_or_class</strong>
  and its parents implement.

<comment>Param:</comment>
  <info>object|string</info>  <strong>$object_or_class</strong>  An object (class instance) or a string (class or interface name).
  <info>bool</info>           <strong>$autoload</strong>         Whether to autoload if not already loaded.

<comment>Return:</comment>
  <info>array|false</info>  An array on success, or <info>false</info> when the given class doesn't exist.

<comment>See Also:</comment>
   * <strong>class_parents()</strong>
   * <strong>get_declared_interfaces()</strong>
   * <strong>is_a()</strong>
   * <return>instanceof</return>


id: class_parents
type: function
doc:
<comment>Description:</comment>
  Return the parent classes of the given class
    
  
  This function returns an array with the name of the parent classes of the given <strong>$object_or_class</strong>.

<comment>Param:</comment>
  <info>object|string</info>  <strong>$object_or_class</strong>  An object (class instance) or a string (class name).
  <info>bool</info>           <strong>$autoload</strong>         Whether to autoload if not already loaded.

<comment>Return:</comment>
  <info>array|false</info>  An array on success, or <info>false</info> when the given class doesn't exist.

<comment>See Also:</comment>
   * <strong>class_implements()</strong>
   * <strong>is_a()</strong>
   * <return>instanceof</return>


id: class_uses
type: function
doc:
<comment>Description:</comment>
  Return the traits used by the given class
    
  
  This function returns an array with the names of the traits that the given <strong>$object_or_class</strong> uses.
  This does however not include any traits used by a parent class.

<comment>Param:</comment>
  <info>object|string</info>  <strong>$object_or_class</strong>  An object (class instance) or a string (class name).
  <info>bool</info>           <strong>$autoload</strong>         Whether to autoload if not already loaded.

<comment>Return:</comment>
  <info>array|false</info>  An array on success, or <info>false</info> when the given class doesn't exist.

<comment>See Also:</comment>
   * <strong>class_parents()</strong>
   * <strong>get_declared_traits()</strong>


id: clearstatcache
type: function
doc:
<comment>Description:</comment>
  Clears file status cache
  
  When you use <strong>stat()</strong>, <strong>lstat()</strong>, or any of the other functions listed in the affected functions list
  (below), PHP caches the information those functions return in order to provide faster performance.
  However, in certain cases, you may want to clear the cached information. For instance, if the same
  file is being checked multiple times within a single script, and that file is in danger of being
  removed or changed during that script's operation, you may elect to clear the status cache.  In
  these cases, you can use the <strong>clearstatcache()</strong> function to clear the information that PHP caches
  about a file.
  
  You should also note that PHP doesn't cache information about non-existent files. So, if you call
  <strong>file_exists()</strong> on a file that doesn't exist, it will return <info>false</info> until you create the file. If you
  create the file, it will return <info>true</info> even if you then delete the file. However <strong>unlink()</strong> clears the
  cache automatically.
  
  This function caches information about specific filenames, so you only need to call
  <strong>clearstatcache()</strong> if you are performing multiple operations on the same filename and require the
  information about that particular file to not be cached.
  
  Affected functions include <strong>stat()</strong>, <strong>lstat()</strong>, <strong>file_exists()</strong>, <strong>is_writable()</strong>, <strong>is_readable()</strong>,
  <strong>is_executable()</strong>, <strong>is_file()</strong>, <strong>is_dir()</strong>, <strong>is_link()</strong>, <strong>filectime()</strong>, <strong>fileatime()</strong>, <strong>filemtime()</strong>,
  <strong>fileinode()</strong>, <strong>filegroup()</strong>, <strong>fileowner()</strong>, <strong>filesize()</strong>, <strong>filetype()</strong>, and <strong>fileperms()</strong>.

<comment>Param:</comment>
  <info>bool</info>    <strong>$clear_realpath_cache</strong>  Whether to also clear the realpath cache.
  <info>string</info>  <strong>$filename</strong>              Clear the realpath cache for a specific filename only; only used if
                                 <strong>$clear_realpath_cache</strong> is <info>true</info>.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: cli_get_process_title
type: function
doc:
<comment>Description:</comment>
  Returns the current process title
  
  Returns the current process title, as set by <strong>cli_set_process_title()</strong>. Note that this may not
  exactly match what is shown in ps or top, depending on your operating system.
  
  This function is available only in CLI mode.

<comment>Return:</comment>
  <info>string|null</info>  Return a string with the current process title or <info>null</info> on error.

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


id: cli_set_process_title
type: function
doc:
<comment>Description:</comment>
  Sets the process title
  
  Sets the process title visible in tools such as top and ps. This function is available only in CLI
  mode.

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

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

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


id: closedir
type: function
doc:
<comment>Description:</comment>
  Close directory handle
  
  Closes the directory stream indicated by <strong>$dir_handle</strong>. The stream must have previously been opened
  by <strong>opendir()</strong>.

<comment>Param:</comment>
  <info>resource|null</info>  <strong>$dir_handle</strong>  The directory handle <info>resource</info> previously opened with <strong>opendir()</strong>. If the
                              directory handle is  not specified, the last link opened by <strong>opendir()</strong>
                              is assumed.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: closelog
type: function
doc:
<comment>Description:</comment>
  Close connection to system logger
  
  <strong>closelog()</strong> closes the descriptor being used to write to the system logger.  The use of <strong>closelog()</strong>
  is optional.

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * <strong>syslog()</strong>
   * <strong>openlog()</strong>


id: com
type: class
doc:
<comment>Description:</comment>
  The com class allows you to instantiate an OLE compatible COM object and call its methods and
  access its properties.


id: com::__construct
type: function
doc:
<comment>Description:</comment>
  com class constructor
  
  Constructs a new com object.

<comment>Param:</comment>
  <info>string</info>             <strong>$module_name</strong>  Can be a ProgID, Class ID or Moniker that names the component to
                                   load.
                                   
                                   A ProgID is typically the application or DLL name, followed by a
                                   period, followed by the object name. e.g: <return>Word.Application</return>.
                                   
                                   A Class ID is the UUID that uniquely identifies a given class.
                                   
                                   A Moniker is a special form of naming, similar in concept to a
                                   URL scheme, that identifies a resource and specifies how it
                                   should be loaded.  As an example, you could load up Word and get
                                   an object representing a word document by specifying the full
                                   path to the word document as the module name, or you can use
                                   <return>LDAP:</return> as a moniker to use the ADSI interface to LDAP.
  <info>array|string|null</info>  <strong>$server_name</strong>  The name of the DCOM server on which the component should be
                                   loaded and run.  If <info>null</info>, the object is run using the default for
                                   the application.  The default is typically to run it on the local
                                   machine, although the administrator might have configured the
                                   application to launch on a different machine.
                                   
                                   If a non-<info>null</info> value is specified for server, PHP will refuse to
                                   load the object unless the com.allow_dcom php.ini option is set
                                   to <info>true</info>.
                                   
                                   If <strong>$server_name</strong> is an array, it should contain the following
                                   elements (case sensitive!).  Note that they are all optional
                                   (although you need to specify both Username and Password
                                   together); if you omit the Server setting, the default server
                                   will be used (as mentioned above), and the instantiation of the
                                   object will not be affected by the com.allow_dcom php.ini
                                   directive. DCOM server namekeytypedescriptionServerstringThe name
                                   of the server.UsernamestringThe username to connect
                                   as.PasswordstringThe password for <return>Username</return>.DomainstringThe domain
                                   of <return>server</return>.FlagsintegerOne or more of the following constants,
                                   logically OR'd together: <info>CLSCTX_INPROC_SERVER</info>,
                                   <info>CLSCTX_INPROC_HANDLER</info>, <info>CLSCTX_LOCAL_SERVER</info>, <info>CLSCTX_REMOTE_SERVER</info>,
                                   <info>CLSCTX_SERVER</info> and <info>CLSCTX_ALL</info>.  The default value if not specified
                                   here is <info>CLSCTX_SERVER</info> if you also omit <return>Server</return>, or
                                   <info>CLSCTX_REMOTE_SERVER</info> if you do specify a server.  You should
                                   consult the Microsoft documentation for CoCreateInstance for more
                                   information on the meaning of these constants; you will typically
                                   never have to use them.
  <info>int</info>                <strong>$codepage</strong>     Specifies the codepage that is used to convert strings to
                                   unicode-strings and vice versa.  The conversion is applied
                                   whenever a PHP string is passed as a parameter or returned from a
                                   method of this COM object.  The code page is sticky, which means
                                   that it will propagate to objects and variants returned from the
                                   object.
                                   
                                   Possible values are <info>CP_ACP</info> (use system default ANSI code page -
                                   the default if this parameter is omitted), <info>CP_MACCP</info>, <info>CP_OEMCP</info>,
                                   <info>CP_SYMBOL</info>, <info>CP_THREAD_ACP</info> (use codepage/locale set for the current
                                   executing thread), <info>CP_UTF7</info> and <info>CP_UTF8</info>.  You may also use the
                                   number for a given codepage; consult the Microsoft documentation
                                   for more details on codepages and their numeric values.


id: com_create_guid
type: function
doc:
<comment>Description:</comment>
  Generate a globally unique identifier (GUID)
  
  Generates a Globally Unique Identifier (GUID).
  
  A GUID is generated in the same way as DCE UUID's, except that the Microsoft convention is to
  enclose a GUID in curly braces.

<comment>Return:</comment>
  <info>string|false</info>  Returns the GUID as a string,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>uuid_create()</strong> in the PECL uuid extension


id: com_event_sink
type: function
doc:
<comment>Description:</comment>
  Connect events from a COM object to a PHP object
  
  Instructs COM to sink events generated by <strong>$variant</strong> into the PHP object <strong>$sink_object</strong>.
  
  Be careful how you use this feature; if you are doing something similar to the example below, then
  it doesn't really make sense to run it in a web server context.

<comment>Param:</comment>
  <info>variant</info>            <strong>$variant</strong>         
  <info>object</info>             <strong>$sink_object</strong>     <strong>$sink_object</strong> should be an instance of a class with methods
                                      named after those of the desired dispinterface; you may use
                                      <strong>com_print_typeinfo()</strong> to help generate a template class for
                                      this purpose.
  <info>array|string|null</info>  <strong>$sink_interface</strong>  PHP will attempt to use the default dispinterface type
                                      specified by the typelibrary associated with <strong>$variant</strong>, but you
                                      may override this choice by setting <strong>$sink_interface</strong> to the
                                      name of the dispinterface that you want to use.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>com_print_typeinfo()</strong>
   * <strong>com_message_pump()</strong>


id: com_get_active_object
type: function
doc:
<comment>Description:</comment>
  Returns a handle to an already running instance of a COM object
  
  <strong>com_get_active_object()</strong> is similar to creating a new instance of a  object, except that it will
  only return an object to your script if the object is already running. OLE applications use
  something known as the "<return>Running Object Table</return>" to allow well-known applications to be launched only
  once; this function exposes the COM library function GetActiveObject() to get a handle on a
  running instance.

<comment>Param:</comment>
  <info>string</info>    <strong>$prog_id</strong>   <strong>$prog_id</strong> must be either the ProgID or CLSID for the object that you want to
                       access (for example <return>Word.Application</return>).
  <info>int|null</info>  <strong>$codepage</strong>  Acts in precisely the same way that it does for the  class.

<comment>Return:</comment>
  <info>variant</info>  If the requested object is running, it will be returned to your script just like any
           other COM object.


id: com_load_typelib
type: function
doc:
<comment>Description:</comment>
  Loads a Typelib
  
  Loads a type-library and registers its constants in the engine, as though they were defined using
  <strong>define()</strong>.
  
  Note that it is much more efficient to use the com.typelib-file php.ini setting to pre-load and
  register the constants, although not so flexible.
  
  If com.autoregister-typelib is turned on, then PHP will attempt to automatically register the
  constants associated with a COM object when you instantiate it.  This depends on the interfaces
  provided by the COM object itself, and may not always be possible.

<comment>Param:</comment>
  <info>string</info>  <strong>$typelib</strong>           <strong>$typelib</strong> can be one of the following:  The filename of a <return>.tlb</return> file or
                             the executable module that contains the type library.  The type library
                             GUID, followed by its version number, for example
                             <return>{00000200-0000-0010-8000-00AA006D2EA4},2,0</return>.  The type library name,
                             e.g. <return>Microsoft OLE DB ActiveX Data Objects 1.0 Library</return>.  PHP will
                             attempt to resolve the type library in this order, as the process gets
                             more and more expensive as you progress down the list; searching for
                             the type library by name is handled by physically enumerating the
                             registry until we find a match.
                             
                             The filename of a <return>.tlb</return> file or the executable module that contains the
                             type library.
                             
                             The type library GUID, followed by its version number, for example
                             <return>{00000200-0000-0010-8000-00AA006D2EA4},2,0</return>.
                             
                             The type library name, e.g. <return>Microsoft OLE DB ActiveX Data Objects 1.0
                             Library</return>.
  <info>bool</info>    <strong>$case_insensitive</strong>  The <strong>$case_insensitive</strong> behaves inversely to the parameter
                             <return>$case_insensitive</return> in the <strong>define()</strong> function.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: com_message_pump
type: function
doc:
<comment>Description:</comment>
  Process COM messages, sleeping for up to timeoutms milliseconds
  
  This function will sleep for up to <strong>$timeout_milliseconds</strong> milliseconds, or until a message arrives
  in the queue.
  
  The purpose of this function is to route COM calls between apartments and handle various
  synchronization issues.  This allows your script to wait efficiently for events to be triggered,
  while still handling other events or running other code in the background.  You should use it in a
  loop, as demonstrated by the example in the <strong>com_event_sink()</strong> function, until you are finished
  using event bound COM objects.

<comment>Param:</comment>
  <info>int</info>  <strong>$timeout_milliseconds</strong>  The timeout, in milliseconds.
                              
                              If you do not specify a value for <strong>$timeout_milliseconds</strong>, then 0 will
                              be assumed.  A 0 value means that no waiting will be performed; if
                              there are messages pending they will be dispatched as before; if there
                              are no messages pending, the function will return <info>false</info> immediately
                              without sleeping.

<comment>Return:</comment>
  <info>bool</info>  If a message or messages arrives before the timeout, they will be dispatched, and the
        function will return <info>true</info>. If the timeout occurs and no messages were processed, the return
        value will be <info>false</info>.


id: com_print_typeinfo
type: function
doc:
<comment>Description:</comment>
  Print out a PHP class definition for a dispatchable interface
  
  The purpose of this function is to help generate a skeleton class for use as an event sink.  You
  may also use it to generate a dump of any COM object, provided that it supports enough of the
  introspection interfaces, and that you know the name of the interface you want to display.

<comment>Param:</comment>
  <info>variant|string</info>  <strong>$variant</strong>             <strong>$variant</strong> should be either an instance of a COM object, or be
                                       the name of a typelibrary (which will be resolved according
                                       to the rules set out in <strong>com_load_typelib()</strong>).
  <info>string|null</info>     <strong>$dispatch_interface</strong>  The name of an <return>IDispatch</return> descendant interface that you want
                                       to display.
  <info>bool</info>            <strong>$display_sink</strong>        If set to <info>true</info>, the corresponding sink interface will be
                                       displayed instead.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>com_event_sink()</strong>
   * <strong>com_load_typelib()</strong>


id: compact
type: function
doc:
<comment>Description:</comment>
  Create array containing variables and their values
  
  Creates an array containing variables and their values.
  
  For each of these, <strong>compact()</strong> looks for a variable with that name in the current symbol table and
  adds it to the output array such that the variable name becomes the key and the contents of the
  variable become the value for that key. In short, it does the opposite of <strong>extract()</strong>.
  
  Before PHP 7.3, any strings that are not set will silently be skipped.

<comment>Param:</comment>
  <info>array|string</info>  <strong>$var_name</strong>  <strong>compact()</strong> takes a variable number of parameters. Each parameter can be
                           either a string containing the name of the variable, or an array of
                           variable names.  The array can contain other arrays of variable names
                           inside it; <strong>compact()</strong> handles it recursively.

<comment>Return:</comment>
  <info>array</info>  Returns the output array with all the variables added to it.

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


id: connection_aborted
type: function
doc:
<comment>Description:</comment>
  Check whether client disconnected
  
  Checks whether the client disconnected.

<comment>Return:</comment>
  <info>int</info>  Returns 1 if client disconnected, 0 otherwise.

<comment>See Also:</comment>
   * <strong>connection_status()</strong>
   * <strong>ignore_user_abort()</strong>
   * Connection Handling
     for a complete description of connection handling in PHP.
    


id: connection_status
type: function
doc:
<comment>Description:</comment>
  Returns connection status bitfield
  
  Gets the connection status bitfield.

<comment>Return:</comment>
  <info>int</info>  Returns the connection status bitfield, which can be used against the <return>CONNECTION_XXX</return>
       constants to determine the connection status.

<comment>See Also:</comment>
   * <strong>connection_aborted()</strong>
   * <strong>ignore_user_abort()</strong>
   * Connection Handling
     for a complete description of connection handling in PHP.
    


id: constant
type: function
doc:
<comment>Description:</comment>
  Returns the value of a constant
  
  Return the value of the constant indicated by <strong>$name</strong>.
  
  <strong>constant()</strong> is useful if you need to retrieve the value of a constant, but do not know its name.
  I.e. it is stored in a variable or returned by a function.
  
  This function works also with class constants and enum cases.

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

<comment>Return:</comment>
  <info>mixed</info>  Returns the value of the constant.

<comment>See Also:</comment>
   * <strong>define()</strong>
   * <strong>defined()</strong>
   * <strong>get_defined_constants()</strong>
   * The section on Constants


id: convert_cyr_string
type: function
doc:
<comment>Description:</comment>
  Convert from one Cyrillic character set to another
  
  Converts from one Cyrillic character set to another.

<comment>Param:</comment>
  <info>string</info>  <strong>$str</strong>   The string to be converted.
  <info>string</info>  <strong>$from</strong>  The source Cyrillic character set, as a single character.
  <info>string</info>  <strong>$to</strong>    The target Cyrillic character set, as a single character.

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

<comment>See Also:</comment>
   * <strong>mb_convert_encoding()</strong>
   * <strong>iconv()</strong>


id: convert_uudecode
type: function
doc:
<comment>Description:</comment>
  Decode a uuencoded string
  
  <strong>convert_uudecode()</strong> decodes a uuencoded string.
  
  <strong>convert_uudecode()</strong> neither accepts the <return>begin</return> nor the <return>end</return> line, which are part of uuencoded files.

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

<comment>Return:</comment>
  <info>string|false</info>  Returns the decoded data as a string  or <info>false</info> on failure.

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


id: convert_uuencode
type: function
doc:
<comment>Description:</comment>
  Uuencode a string
  
  <strong>convert_uuencode()</strong> encodes a string using the uuencode algorithm.
  
  Uuencode translates all strings (including binary data) into printable characters, making them
  safe for network transmissions. Uuencoded data is about 35% larger than the original.
  
  <strong>convert_uuencode()</strong> neither produces the <return>begin</return> nor the <return>end</return> line, which are part of uuencoded files.

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

<comment>Return:</comment>
  <info>string</info>  Returns the uuencoded data.

<comment>See Also:</comment>
   * <strong>convert_uudecode()</strong>
   * <strong>base64_encode()</strong>


id: copy
type: function
doc:
<comment>Description:</comment>
  Copies file
  
  Makes a copy of the file <strong>$from</strong> to <strong>$to</strong>.
  
  If you wish to move a file, use the <strong>rename()</strong> function.

<comment>Param:</comment>
  <info>string</info>         <strong>$from</strong>     Path to the source file.
  <info>string</info>         <strong>$to</strong>       The destination path. If <strong>$to</strong> is a URL, the copy operation may fail if the
                           wrapper does not support overwriting of existing files.
                           
                           If the destination file already exists, it will be overwritten.
  <info>resource|null</info>  <strong>$context</strong>  A valid context resource created with  <strong>stream_context_create()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>move_uploaded_file()</strong>
   * <strong>rename()</strong>
   * The section of the manual about handling file uploads


id: cos
type: function
doc:
<comment>Description:</comment>
  Cosine
  
  <strong>cos()</strong> returns the cosine of the <strong>$num</strong> parameter.  The <strong>$num</strong> parameter is in radians.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  An angle in radians

<comment>Return:</comment>
  <info>float</info>  The cosine of <strong>$num</strong>

<comment>See Also:</comment>
   * <strong>acos()</strong>
   * <strong>sin()</strong>
   * <strong>tan()</strong>
   * <strong>deg2rad()</strong>


id: cosh
type: function
doc:
<comment>Description:</comment>
  Hyperbolic cosine
  
  Returns the hyperbolic cosine of <strong>$num</strong>, defined as <return>(exp($num) + exp(-$num))/2</return>.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  The argument to process

<comment>Return:</comment>
  <info>float</info>  The hyperbolic cosine of <strong>$num</strong>

<comment>See Also:</comment>
   * <strong>cos()</strong>
   * <strong>acosh()</strong>
   * <strong>sinh()</strong>
   * <strong>tanh()</strong>


id: count
type: function
doc:
<comment>Description:</comment>
  Counts all elements in an array or in a Countable object
  
  Counts all elements in an array when used with an array. When used with an object that implements
  the Countable interface, it returns the return value of the method Countable::count.

<comment>Param:</comment>
  <info>Countable|array</info>  <strong>$value</strong>  An array or Countable object.
  <info>int</info>              <strong>$mode</strong>   If the optional <strong>$mode</strong> parameter is set to <info>COUNT_RECURSIVE</info> (or 1), <strong>count()</strong>
                           will recursively count the array.  This is particularly useful for
                           counting all the elements of a multidimensional array.
                           
                           <strong>count()</strong> can detect recursion to avoid an infinite loop, but will emit an
                           <info>E_WARNING</info> every time it does (in case the array contains itself more than
                           once) and return a count higher than may be expected.

<comment>Return:</comment>
  <info>int</info>  Returns the number of elements in <strong>$value</strong>. Prior to PHP 8.0.0, if the parameter was neither an
       <info>array</info> nor an <info>object</info> that implements the Countable interface, <return>1</return> would be returned, unless
       <strong>$value</strong> was <info>null</info>, in which case <return>0</return> would be returned.

<comment>See Also:</comment>
   * <strong>is_array()</strong>
   * <strong>isset()</strong>
   * <strong>empty()</strong>
   * <strong>strlen()</strong>
   * <strong>is_countable()</strong>
   * Arrays


id: count_chars
type: function
doc:
<comment>Description:</comment>
  Return information about characters used in a string
  
  Counts the number of occurrences of every byte-value (0..255) in <strong>$string</strong> and returns it in various
  ways.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The examined string.
  <info>int</info>     <strong>$mode</strong>    See return values.

<comment>Return:</comment>
  <info>array|string</info>  Depending on <strong>$mode</strong> <strong>count_chars()</strong> returns one of the following:  0 - an array with
                the byte-value as key and the frequency of every byte as value.  1 - same as 0 but
                only byte-values with a frequency greater than zero are listed.  2 - same as 0 but
                only byte-values with a frequency equal to zero are listed.  3 - a string containing
                all unique characters is returned.  4 - a string containing all not used characters
                is returned.
                
                0 - an array with the byte-value as key and the frequency of every byte as value.
                
                1 - same as 0 but only byte-values with a frequency greater than zero are listed.
                
                2 - same as 0 but only byte-values with a frequency equal to zero are listed.
                
                3 - a string containing all unique characters is returned.
                
                4 - a string containing all not used characters is returned.

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


id: crc32
type: function
doc:
<comment>Description:</comment>
  Calculates the crc32 polynomial of a string
  
  Generates the cyclic redundancy checksum polynomial of 32-bit lengths of the <strong>$string</strong>. This is
  usually used to validate the integrity of data being transmitted.
  
  Because PHP's integer type is signed many crc32 checksums will result in negative integers on
  32bit platforms. On 64bit installations all <strong>crc32()</strong> results will be positive integers though.
  
  So you need to use the "%u" formatter of <strong>sprintf()</strong> or  <strong>printf()</strong> to get the string representation
  of the  unsigned <strong>crc32()</strong> checksum in decimal format.
  
  For a hexadecimal representation of the checksum you can either use the  "%x" formatter of
  <strong>sprintf()</strong> or <strong>printf()</strong>  or the <strong>dechex()</strong> conversion functions, both of these also take care of
  converting the <strong>crc32()</strong> result to an unsigned integer.
  
  Having 64bit installations also return negative integers for higher result values was considered
  but would break the hexadecimal conversion as negatives would get an extra 0xFFFFFFFF########
  offset then. As  hexadecimal representation seems to be the most common use case we decided to not
  break this even if it breaks direct decimal comparisons in about 50% of the cases when moving from
  32 to 64bits.
  
  In retrospect having the function return an integer maybe wasn't the  best idea and returning a
  hex string representation right away (as  e.g. <strong>md5()</strong> does) might have been a better plan to begin
  with.
  
  For a more portable solution you may also consider the generic  <strong>hash()</strong>. hash("crc32b", $str) will
  return the same string as str_pad(dechex(crc32($str)), 8, '0', STR_PAD_LEFT).

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

<comment>Return:</comment>
  <info>int</info>  Returns the crc32 checksum of <strong>$string</strong> as an integer.

<comment>See Also:</comment>
   * <strong>hash()</strong>
   * <strong>md5()</strong>
   * <strong>sha1()</strong>


id: create_function
type: function
doc:
<comment>Description:</comment>
  Create a function dynamically by evaluating a string of code
  
  Creates a function dynamically from the parameters passed, and returns a unique name for it.
  
  This function internally performs an <strong>eval()</strong> and as such has the same security issues as <strong>eval()</strong>. It
  also has bad performance and memory usage characteristics, because the created functions are
  global and can not be freed.
  
  A native anonymous function should be used instead.

<comment>Param:</comment>
  <info>string</info>  <strong>$args</strong>  The function arguments, as a single comma-separated string.
  <info>string</info>  <strong>$code</strong>  The function code.

<comment>Return:</comment>
  <info>string</info>  Returns a unique function name as a string,  or <info>false</info> on failure. Note that the name
          contains a non-printable character (<return>"\0"</return>), so care should be taken when printing the name
          or incorporating it in any other string.

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


id: crypt
type: function
doc:
<comment>Description:</comment>
  One-way string hashing
  
  <strong>crypt()</strong> will return a hashed string using the standard Unix DES-based algorithm or alternative
  algorithms. <strong>password_verify()</strong> is compatible with <strong>crypt()</strong>. Therefore, password hashes created by
  <strong>crypt()</strong> can be used with <strong>password_verify()</strong>.
  
  Prior to PHP 8.0.0, the <strong>$salt</strong> parameter was optional. However, <strong>crypt()</strong> creates a weak hash without
  the <strong>$salt</strong>, and raises an <info>E_NOTICE</info> error without it. Make sure to specify a strong enough salt for
  better security.
  
  <strong>password_hash()</strong> uses a strong hash, generates a strong salt, and applies proper rounds
  automatically. <strong>password_hash()</strong> is a simple <strong>crypt()</strong> wrapper and compatible with existing password
  hashes. Use of <strong>password_hash()</strong> is encouraged.
  
  The hash type is triggered by the salt argument. If no salt is provided, PHP will auto-generate
  either a standard two character (DES) salt, or a twelve character (MD5), depending on the
  availability of MD5 crypt().  PHP sets a constant named <info>CRYPT_SALT_LENGTH</info> which indicates the
  longest valid salt allowed by the available hashes.
  
  The standard DES-based <strong>crypt()</strong> returns the salt as the first two characters of the output. It also
  only uses the first eight characters of <strong>$string</strong>, so longer strings that start with the same eight
  characters will generate the same result (when the same salt is used).
  
  The following hash types are supported:
  
  <info>CRYPT_STD_DES</info> - Standard DES-based hash with a two character salt from the alphabet "./0-9A-Za-z".
  Using invalid characters in the salt will cause crypt() to fail.
  
  <info>CRYPT_EXT_DES</info> - Extended DES-based hash. The "salt" is a 9-character string consisting of an
  underscore followed by 4 characters of iteration count and 4 characters of salt. Each of these
  4-character strings encode 24 bits, least significant character first. The values <return>0</return> to <return>63</return> are
  encoded as <return>./0-9A-Za-z</return>. Using invalid characters in the salt will cause crypt() to fail.
  
  <info>CRYPT_MD5</info> - MD5 hashing with a twelve character salt starting with $1$
  
  <info>CRYPT_BLOWFISH</info> - Blowfish hashing with a salt as follows: "$2a$", "$2x$" or "$2y$", a two digit
  cost parameter, "$", and 22 characters from the alphabet "./0-9A-Za-z". Using characters outside
  of this range in the salt will cause crypt() to return a zero-length string. The two digit cost
  parameter is the base-2 logarithm of the iteration count for the underlying Blowfish-based hashing
  algorithm and must be in range 04-31, values outside this range will cause crypt() to fail. "$2x$"
  hashes are potentially weak; "$2a$" hashes are compatible and mitigate this weakness. For new
  hashes, "$2y$" should be used.
  
  <info>CRYPT_SHA256</info> - SHA-256 hash with a sixteen character salt prefixed with $5$. If the salt string
  starts with 'rounds=\<N&gt;$', the numeric value of N is used to indicate how many times the hashing loop should be executed, much like the cost parameter on Blowfish. The default number of rounds is 5000, there is a minimum of 1000 and a maximum of 999,999,999. Any selection of N outside this range will be truncated to the nearest limit.
  
  <info>CRYPT_SHA512</info> - SHA-512 hash with a sixteen character salt prefixed with $6$. If the salt string
  starts with 'rounds=\<N&gt;$', the numeric value of N is used to indicate how many times the hashing loop should be executed, much like the cost parameter on Blowfish. The default number of rounds is 5000, there is a minimum of 1000 and a maximum of 999,999,999. Any selection of N outside this range will be truncated to the nearest limit.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The string to be hashed.
                   
                   Using the <info>CRYPT_BLOWFISH</info> algorithm, will result in the <strong>$string</strong> parameter being
                   truncated to a maximum length of 72 bytes.
  <info>string</info>  <strong>$salt</strong>    A salt string to base the hashing on. If not provided, the behaviour is defined
                   by the algorithm implementation and can lead to unexpected results.

<comment>Return:</comment>
  <info>string</info>  Returns the hashed string or a string that is shorter than 13 characters and is guaranteed
          to differ from the salt on failure.
          
          When validating passwords, a string comparison function that isn't vulnerable to timing
          attacks should be used to compare the output of <strong>crypt()</strong> to the previously known hash. PHP
          provides <strong>hash_equals()</strong> for this purpose.

<comment>See Also:</comment>
   * <strong>hash_equals()</strong>
   * <strong>password_hash()</strong>
   * The Unix man page for your crypt function for more information


id: ctype_alnum
type: function
doc:
<comment>Description:</comment>
  Check for alphanumeric character(s)
  
  Checks if all of the characters in the provided <info>string</info>, <strong>$text</strong>, are alphanumeric.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$text</strong>  The tested string. 
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer. 
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.
                
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer.
                
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if every character in <strong>$text</strong> is either a letter or a digit, <info>false</info> otherwise.
        When called with an empty string the result will always be <info>false</info>.

<comment>See Also:</comment>
   * <strong>ctype_alpha()</strong>
   * <strong>ctype_digit()</strong>
   * <strong>setlocale()</strong>
   * <strong>IntlChar::isalnum()</strong>


id: ctype_alpha
type: function
doc:
<comment>Description:</comment>
  Check for alphabetic character(s)
  
  Checks if all of the characters in the provided <info>string</info>, <strong>$text</strong>, are alphabetic. In the standard <return>C</return>
  locale letters are just  <return>[A-Za-z]</return> and <strong>ctype_alpha()</strong> is  equivalent to <return>(ctype_upper($text) ||
  ctype_lower($text))</return> if $text is just a single character, but other languages have letters that
  are considered neither upper nor lower case.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$text</strong>  The tested string. 
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer. 
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.
                
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer.
                
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if every character in <strong>$text</strong> is  a letter from the current locale, <info>false</info>
        otherwise. When called with an empty string the result will always be <info>false</info>.

<comment>See Also:</comment>
   * <strong>ctype_upper()</strong>
   * <strong>ctype_lower()</strong>
   * <strong>setlocale()</strong>
   * <strong>IntlChar::isalpha()</strong>


id: ctype_cntrl
type: function
doc:
<comment>Description:</comment>
  Check for control character(s)
  
  Checks if all of the characters in the provided <info>string</info>, <strong>$text</strong>, are control characters. Control
  characters are e.g. line feed, tab, escape.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$text</strong>  The tested string. 
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer. 
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.
                
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer.
                
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if every character in <strong>$text</strong> is  a control character from the current locale,
        <info>false</info> otherwise. When called with an empty string the result will always be <info>false</info>.

<comment>See Also:</comment>
   * <strong>ctype_print()</strong>
   * <strong>IntlChar::iscntrl()</strong>


id: ctype_digit
type: function
doc:
<comment>Description:</comment>
  Check for numeric character(s)
  
  Checks if all of the characters in the provided <info>string</info>, <strong>$text</strong>, are numerical.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$text</strong>  The tested string. 
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer. 
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.
                
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer.
                
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if every character in the string <strong>$text</strong> is a decimal digit, <info>false</info> otherwise.
        When called with an empty string the result will always be <info>false</info>.

<comment>See Also:</comment>
   * <strong>ctype_alnum()</strong>
   * <strong>ctype_xdigit()</strong>
   * <strong>is_numeric()</strong>
   * <strong>is_int()</strong>
   * <strong>is_string()</strong>
   * <strong>IntlChar::isdigit()</strong>


id: ctype_graph
type: function
doc:
<comment>Description:</comment>
  Check for any printable character(s) except space
  
  Checks if all of the characters in the provided <info>string</info>, <strong>$text</strong>, creates visible output.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$text</strong>  The tested string. 
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer. 
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.
                
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer.
                
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if every character in <strong>$text</strong> is  printable and actually creates visible output
        (no white space), <info>false</info> otherwise. When called with an empty string the result will always
        be <info>false</info>.

<comment>See Also:</comment>
   * <strong>ctype_alnum()</strong>
   * <strong>ctype_print()</strong>
   * <strong>ctype_punct()</strong>
   * <strong>IntlChar::isgraph()</strong>


id: ctype_lower
type: function
doc:
<comment>Description:</comment>
  Check for lowercase character(s)
  
  Checks if all of the characters in the provided <info>string</info>, <strong>$text</strong>, are lowercase letters.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$text</strong>  The tested string. 
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer. 
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.
                
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer.
                
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if every character in <strong>$text</strong> is  a lowercase letter in the current locale. When
        called with an empty string the result will always be <info>false</info>.

<comment>See Also:</comment>
   * <strong>ctype_alpha()</strong>
   * <strong>ctype_upper()</strong>
   * <strong>setlocale()</strong>
   * <strong>IntlChar::islower()</strong>


id: ctype_print
type: function
doc:
<comment>Description:</comment>
  Check for printable character(s)
  
  Checks if all of the characters in the provided <info>string</info>, <strong>$text</strong>, are printable.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$text</strong>  The tested string. 
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer. 
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.
                
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer.
                
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if every character in <strong>$text</strong>  will actually create output (including blanks).
        Returns <info>false</info> if  <strong>$text</strong> contains control characters or characters  that do not have any
        output or control function at all. When called with an empty string the result will always
        be <info>false</info>.

<comment>See Also:</comment>
   * <strong>ctype_cntrl()</strong>
   * <strong>ctype_graph()</strong>
   * <strong>ctype_punct()</strong>
   * <strong>IntlChar::isprint()</strong>


id: ctype_punct
type: function
doc:
<comment>Description:</comment>
  Check for any printable character which is not whitespace or an
     alphanumeric character
    
  
  Checks if all of the characters in the provided <info>string</info>, <strong>$text</strong>, are punctuation character.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$text</strong>  The tested string. 
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer. 
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.
                
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer.
                
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if every character in <strong>$text</strong>  is printable, but neither letter, digit or blank,
        <info>false</info> otherwise. When called with an empty string the result will always be <info>false</info>.

<comment>See Also:</comment>
   * <strong>ctype_cntrl()</strong>
   * <strong>ctype_graph()</strong>
   * <strong>IntlChar::ispunct()</strong>


id: ctype_space
type: function
doc:
<comment>Description:</comment>
  Check for whitespace character(s)
  
  Checks if all of the characters in the provided <info>string</info>, <strong>$text</strong>, creates whitespace.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$text</strong>  The tested string. 
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer. 
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.
                
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer.
                
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if every character in <strong>$text</strong>  creates some sort of white space, <info>false</info> otherwise.
        Besides the  blank character this also includes tab, vertical tab, line feed, carriage
        return and form feed characters. When called with an empty string the result will always be
        <info>false</info>.

<comment>See Also:</comment>
   * <strong>ctype_cntrl()</strong>
   * <strong>ctype_graph()</strong>
   * <strong>ctype_punct()</strong>
   * <strong>IntlChar::isspace()</strong>


id: ctype_upper
type: function
doc:
<comment>Description:</comment>
  Check for uppercase character(s)
  
  Checks if all of the characters in the provided <info>string</info>, <strong>$text</strong>, are uppercase characters.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$text</strong>  The tested string. 
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer. 
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.
                
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer.
                
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if every character in <strong>$text</strong> is  an uppercase letter in the current locale. When
        called with an empty string the result will always be <info>false</info>.

<comment>See Also:</comment>
   * <strong>ctype_alpha()</strong>
   * <strong>ctype_lower()</strong>
   * <strong>setlocale()</strong>
   * <strong>IntlChar::isupper()</strong>


id: ctype_xdigit
type: function
doc:
<comment>Description:</comment>
  Check for character(s) representing a hexadecimal digit
    
  
  Checks if all of the characters in the provided <info>string</info>, <strong>$text</strong>, are hexadecimal 'digits'.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$text</strong>  The tested string. 
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer. 
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.
                
                If an <info>int</info> between -128 and 255 inclusive is provided, it is interpreted as
                the ASCII value of a single character (negative values have 256 added in order to
                allow
                characters in the Extended ASCII range). Any other integer is interpreted as a
                string
                containing the decimal digits of the integer.
                
                As of PHP 8.1.0, passing a non-string argument is deprecated.
                In the future, the argument will be interpreted as a string instead of an ASCII
                codepoint.
                Depending on the intended behavior, the argument should either be cast to <info>string</info>
                or an explicit call to <strong>chr()</strong> should be made.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if every character in <strong>$text</strong> is  a hexadecimal 'digit', that is a decimal digit
        or a character from  <return>[A-Fa-f]</return> , <info>false</info> otherwise. When called with an empty string the result
        will always be <info>false</info>.

<comment>See Also:</comment>
   * <strong>ctype_digit()</strong>
   * <strong>IntlChar::isxdigit()</strong>


id: cubrid_affected_rows
type: function
doc:
<comment>Description:</comment>
  Return the number of rows affected by the last SQL statement
  
  The <strong>cubrid_affected_rows()</strong> function is used to get the number of rows affected by the SQL
  statement (INSERT, DELETE, UPDATE).

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  The CUBRID connection. If the connection identifier is not specified,
                              the last link opend by <strong>cubrid_connect()</strong> is assumed.
  <info>resource</info>  <strong>$req_identifier</strong>   Request Identifier, could be returned from either <strong>cubrid_prepare()</strong> or
                              <strong>cubrid_execute()</strong>.  If the request identifier is not specified, the
                              last identifier requested by  <strong>cubrid_prepare()</strong> or <strong>cubrid_execute()</strong> is
                              assumed.

<comment>Return:</comment>
  <info>int</info>  Number of rows affected by the SQL statement, when process is successful.
       
       -1, when SQL statement is not INSERT, DELETE or UPDATE.
       
       <info>false</info>, when the request identifier is not specified, and there is no last request.

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


id: cubrid_bind
type: function
doc:
<comment>Description:</comment>
  Bind variables to a prepared statement as parameters
  
  The <strong>cubrid_bind()</strong> function is used to bind values to a corresponding named or question mark
  placeholder in the SQL statement that was passed to <strong>cubrid_prepare()</strong>. If <strong>$bind_value_type</strong> is not
  given, string will be the default.
  
  If the type of data to be bound is BLOB/CLOB, CUBRID will try to map the data as a PHP stream. If
  the actually bind value type is not stream, CUBRID will convert it to string, and use it as the
  full path and file name of a file on the client filesystem.
  
  If the type of data to be bound explicitly is ENUM, the <strong>$bind_value</strong> argument should be the enum
  element which is in string format.
  
  In CUBRID shard envrioment, the <strong>$bind_value_type</strong> must be included in  the <strong>cubrid_bind()</strong> function.
  
  The following table shows the types of substitute values.
  
  CUBRID Bind Date TypesSupportBind TypeCorresponding SQL TypeSupportedSTRINGCHAR,
  VARCHARNCHARNCHAR, NVARCHARBITBIT, VARBITNUMERIC or NUMBERSHORT, INT,
  NUMERICFLOATFLOATDOUBLEDOUBLETIMETIMEDATEDATETIMESTAMPTIMESTAMPOBJECTOBJECTENUMENUMBLOBBLOBCLOBCLOBNULLNULLNot
  supportedSETSETMULTISETMULTISETSEQUENCESEQUENCE

<comment>Param:</comment>
  <info>resource</info>  <strong>$req_identifier</strong>   Request identifier as a result of <strong>cubrid_prepare()</strong>.
  <info>int</info>       <strong>$bind_index</strong>       Location of binding parameters. It starts with 1.
  <info>mixed</info>     <strong>$bind_value</strong>       Actual value for binding.
  <info>string</info>    <strong>$bind_value_type</strong>  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).

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_execute()</strong>
   * <strong>cubrid_prepare()</strong>


id: cubrid_client_encoding
type: function
doc:
<comment>Description:</comment>
  Return the current CUBRID connection charset
  
  This function returns the current CUBRID connection charset and is similar to the CUBRID function
  <strong>cubrid_get_charset()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  The CUBRID connection. If the connection identifier is not specified,
                              the last link opened by <strong>cubrid_connect()</strong> is assumed.

<comment>Return:</comment>
  <info>string</info>  A string that represents the CUBRID connection charset; on success.
          
          <info>false</info> on failure.

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


id: cubrid_close
type: function
doc:
<comment>Description:</comment>
  Close CUBRID connection
  
  The <strong>cubrid_close()</strong> function ends the transaction currently in process, closes the connection
  handle and disconnects from server. If there is any request handles not closed yet at this point,
  they will be closed. It is similar to the CUBRID function <strong>cubrid_disconnect()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  The CUBRID connection identifier. If the connection identifier is not
                              specified, the last connection opened by <strong>cubrid_connect()</strong> is assumed.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info>, when process is successful.
        
        <info>false</info>, when process is unsuccessful.

<comment>See Also:</comment>
   * <strong>cubrid_disconnect()</strong>
   * <strong>cubrid_connect()</strong>
   * <strong>cubrid_connect_with_url()</strong>


id: cubrid_close_prepare
type: function
doc:
<comment>Description:</comment>
  Close the request handle 
  
  The <strong>cubrid_close_prepare()</strong> function closes the request handle given by the <strong>$req_identifier</strong>
  argument, and releases the memory region related to the handle. It is an alias of
  <strong>cubrid_close_request()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$req_identifier</strong>  Request identifier.

<comment>Return:</comment>
  <info>bool</info>  Return <info>true</info> on success.

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


id: cubrid_close_request
type: function
doc:
<comment>Description:</comment>
  Close the request handle 
  
  The <strong>cubrid_close_request()</strong> function closes the request handle given by the <strong>$req_identifier</strong>
  argument, and releases the memory region related to the handle. It is an alias of
  <strong>cubrid_close_prepare()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$req_identifier</strong>  Request identifier.

<comment>Return:</comment>
  <info>bool</info>  Return <info>true</info> on success.

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


id: cubrid_col_get
type: function
doc:
<comment>Description:</comment>
  Get contents of collection type column using OID
  
  The <strong>cubrid_col_get()</strong> function is used to get contents of the elements of the collection type (set,
  multiset, sequence) attribute you requested as an array.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$oid</strong>              OID of the instance that you want to read.
  <info>string</info>    <strong>$attr_name</strong>        Attribute name that you want to read from the instance.

<comment>Return:</comment>
  <info>array</info>  Array (0-based numerical array) containing the elements you requested, when process is
         successful;
         
         <info>false</info> (to distinguish the error from the situation of attribute having empty collection or
         NULL, in case of error, a warning message is shown; in such case you can check the error by
         using <strong>cubrid_error_code()</strong>), when process is unsuccessful.


id: cubrid_col_size
type: function
doc:
<comment>Description:</comment>
  Get the number of elements in collection type column using OID
  
  The <strong>cubrid_col_size()</strong> function is used to get the number of elements in a collection type (set,
  multiset, sequence) attribute.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$oid</strong>              OID the instance that you want to work with.
  <info>string</info>    <strong>$attr_name</strong>        Name of the attribute that you want to work with.

<comment>Return:</comment>
  <info>int</info>  Number of elements, when process is successful, or <info>false</info> on failure.


id: cubrid_column_names
type: function
doc:
<comment>Description:</comment>
  Get the column names in result
  
  The <strong>cubrid_column_names()</strong> function is used to get the column names of the query result by using
  <strong>$req_identifier</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$req_identifier</strong>  Request identifier.

<comment>Return:</comment>
  <info>array</info>  Array of string values containing the column names, when process is successful, or <info>false</info> on
         failure.

<comment>See Also:</comment>
   * <strong>cubrid_prepare()</strong>
   * <strong>cubrid_execute()</strong>
   * <strong>cubrid_column_types()</strong>


id: cubrid_column_types
type: function
doc:
<comment>Description:</comment>
  Get column types in result
  
  The <strong>cubrid_column_types()</strong> function gets column types of query results by using <strong>$req_identifier</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$req_identifier</strong>  Request identifier.

<comment>Return:</comment>
  <info>array</info>  Array of string values containing the column types, when process is successful, or <info>false</info> on
         failure.

<comment>See Also:</comment>
   * <strong>cubrid_column_names()</strong>
   * <strong>cubrid_prepare()</strong>
   * <strong>cubrid_execute()</strong>


id: cubrid_commit
type: function
doc:
<comment>Description:</comment>
  Commit a transaction
  
  The <strong>cubrid_commit()</strong> function is used to execute commit on the transaction pointed by
  <strong>$conn_identifier</strong>, currently in progress. Connection to the server is closed after the
  <strong>cubrid_commit()</strong> function is called; However,  the connection handle is still valid.
  
  In CUBRID PHP, auto-commit mode is disabled by default for transaction management.  You can set it
  by using <strong>cubrid_set_autocommit()</strong>.  You can get its status by using <strong>cubrid_get_autocommit()</strong>. Before
  you start a transaction,  remember to disable the auto-commit mode.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_rollback()</strong>
   * <strong>cubrid_get_autocommit()</strong>
   * <strong>cubrid_set_autocommit()</strong>


id: cubrid_connect
type: function
doc:
<comment>Description:</comment>
  Open a connection to a CUBRID Server
  
  The <strong>cubrid_connect()</strong> function is used to establish the environment for connecting to your server
  by using your server address, port number, database name, user name, and password. If the user
  name and password is not given, then the "PUBLIC" connection will be made by default.

<comment>Param:</comment>
  <info>string</info>  <strong>$host</strong>      Host name or IP address of CUBRID CAS server.
  <info>int</info>     <strong>$port</strong>      Port number of CUBRID CAS server (BROKER_PORT configured in
                     $CUBRID/conf/cubrid_broker.conf).
  <info>string</info>  <strong>$dbname</strong>    Name of database.
  <info>string</info>  <strong>$userid</strong>    User name for the database. If not given, the default value is "public".
  <info>string</info>  <strong>$passwd</strong>    User password. If not given, the default value is "".
  <info>bool</info>    <strong>$new_link</strong>  If a second call is made to <strong>cubrid_connect()</strong> with the same arguments, no new
                     connection will be established, but instead, the connection identifier of the
                     already opened connection will be returned. The <strong>$new_link</strong> parameter modifies
                     this behavior and makes <strong>cubrid_connect()</strong> always open a new connection, even if
                     <strong>cubrid_connect()</strong> was called before with the same parameters.

<comment>Return:</comment>
  <info>resource</info>  Connection identifier, when process is successful, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_pconnect()</strong>
   * <strong>cubrid_connect_with_url()</strong>
   * <strong>cubrid_pconnect_with_url()</strong>
   * <strong>cubrid_disconnect()</strong>
   * <strong>cubrid_close()</strong>


id: cubrid_connect_with_url
type: function
doc:
<comment>Description:</comment>
  Establish the environment for connecting to CUBRID server
  
  The <strong>cubrid_connect_with_url()</strong> function is used to establish the environment for connecting to your
  server by using connection information passed with an url string argument. If the HA feature is
  enabled in CUBRID, you must specify the connection information of the standby server, which is
  used for failover when failure occurs, in the url string argument of this function. If the user
  name and password is not given, then the "PUBLIC" connection will be made by default.
  
  \<url&gt; ::= CUBRID:\<host&gt;:\<db_name&gt;:\<db_user&gt;:\<db_password&gt;:[?\<properties&gt;]
  
  \<properties&gt; ::= \<property&gt; [&\<property&gt;]
  
  \<properties&gt; ::= alhosts=\<alternative_hosts&gt;[ &rctime=\<time&gt;]
  
  \<properties&gt; ::= login_timeout=\<milli_sec&gt;
  
  \<properties&gt; ::= query_timeout=\<milli_sec&gt;
  
  \<properties&gt; ::= disconnect_on_query_timeout=true|false
  
  \<alternative_hosts&gt; ::= \<standby_broker1_host&gt;:\<port&gt; [,\<standby_broker2_host&gt;:\<port&gt;]
  
  \<host&gt; := HOSTNAME | IP_ADDR
  
  \<time&gt; := SECOND
  
  \<milli_sec&gt; := MILLI SECOND
  
  host : A host name or IP address of the master databasedb_name : A name of the databasedb_user : A
  name of the database userdb_password : A database user password alhosts : Specifies the broker
  information of the standby server, which is used for failover when it is impossible to connect to
  the active server.  You can specify multiple brokers for failover, and the connection to the
  brokers is attempted in the order listed in alhosts rctime : An interval between the attempts to
  connect to the active broker in which failure occurred. After a failure occurs, the system
  connects to the  broker specified by althosts (failover), terminates the transaction, and then
  attempts to connect to the active broker of the master database at every rctime.  The default
  value is 600 seconds. login_timeout : Timeout value (unit: msec.) for database login. The default
  value is 0, which means infinite postponement.  query_timeout : Timeout value (unit: msec.) for
  query request. Upon timeout, a message to cancel requesting a query transferred to server is sent.
  The return  value can depend on the disconnect_on_query_timeout configuration; even though the
  message to cancel a request is sent to server, that request may succeed.
  disconnect_on_query_timeout : Configures a value whether to immediately return an error of
  function being executed upon timeout. The default value is false.
  
  <return>?</return> and <return>:</return> that are used as identifiers in PHP connection URL can't be included in the password. The
  following is an example of a password that is invalid to use as connection URL because it contains
  "<return>?:</return>".
  
  $url = "CUBRID:localhost:33000:tdb:dba:12?:?login_timeout=100";
  
  Passwords that contain <return>?</return> or <return>:</return> may be passed as a separate parameter.
  
  $url = "CUBRID:localhost:33000:tbd:::?login_timeout=100";
  
  $conn = cubrid_connect_with_url($url, "dba", "12?");
  
  If user or password is empty,you can't delete "<return>:</return>",the following is an example.
  
  $url = "CUBRID:localhost:33000:demodb:::";

<comment>Param:</comment>
  <info>string</info>  <strong>$conn_url</strong>  A character string that contains server connection information.
  <info>string</info>  <strong>$userid</strong>    User name for the database.
  <info>string</info>  <strong>$passwd</strong>    User password.
  <info>bool</info>    <strong>$new_link</strong>  If a second call is made to <strong>cubrid_connect_with_url()</strong> with the same arguments,
                     no new connection will be established, but instead, the connection identifier
                     of the already opened connection will be returned. The <strong>$new_link</strong> parameter
                     modifies this behavior and makes <strong>cubrid_connect_with_url()</strong> always open a new
                     connection, even if <strong>cubrid_connect_with_url()</strong> was called before with the same
                     parameters.

<comment>Return:</comment>
  <info>resource</info>  Connection identifier, when process is successful, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_connect()</strong>
   * <strong>cubrid_pconnect()</strong>
   * <strong>cubrid_pconnect_with_url()</strong>
   * <strong>cubrid_disconnect()</strong>
   * <strong>cubrid_close()</strong>


id: cubrid_current_oid
type: function
doc:
<comment>Description:</comment>
  Get OID of the current cursor location
  
  The <strong>cubrid_current_oid()</strong> function is used to get the oid of the current cursor location from the
  query result.  To use <strong>cubrid_current_oid()</strong>, the query executed must be a updatable query, and the
  <info>CUBRID_INCLUDE_OID</info> option must be included during the query execution.

<comment>Param:</comment>
  <info>resource</info>  <strong>$req_identifier</strong>  Request identifier.

<comment>Return:</comment>
  <info>string</info>  Oid of current cursor location, when process is successful, or <info>false</info> on failure.

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


id: cubrid_data_seek
type: function
doc:
<comment>Description:</comment>
  Move the internal row pointer of the CUBRID result
  
  This function performs the moving of the internal row pointer of the CUBRID result (associated
  with the specified result identifier) to point to a specific row number. There are functions, such
  as <strong>cubrid_fetch_assoc()</strong>, which use the current stored value of <strong>$row number</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>      The result.
  <info>int</info>       <strong>$row_number</strong>  This is the desired row number of the new result pointer.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: cubrid_db_name
type: function
doc:
<comment>Description:</comment>
  Get db name from results of cubrid_list_dbs
  
  Retrieve the database name from a call to <strong>cubrid_list_dbs()</strong>.

<comment>Param:</comment>
  <info>array</info>  <strong>$result</strong>  The result pointer from a call to <strong>cubrid_list_dbs()</strong>.
  <info>int</info>    <strong>$index</strong>   The index into the result set.

<comment>Return:</comment>
  <info>string</info>  Returns the database name on success, and <info>false</info> on failure. If <info>false</info> is returned, use
          <strong>cubrid_error()</strong> to determine the nature of the error.

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


id: cubrid_disconnect
type: function
doc:
<comment>Description:</comment>
  Close a database connection
  
  The <strong>cubrid_disconnect()</strong> function closes the connection handle and disconnects from server. If any
  request handle is not closed at this point,  it will be closed. It is similar to the CUBRID MySQL
  compatible function <strong>cubrid_close()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_close()</strong>
   * <strong>cubrid_connect()</strong>
   * <strong>cubrid_connect_with_url()</strong>


id: cubrid_drop
type: function
doc:
<comment>Description:</comment>
  Delete an instance using OID
  
  The <strong>cubrid_drop()</strong> function is used to delete an instance from database by using the <strong>$oid</strong> of the
  instance.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$oid</strong>              Oid of the instance that you want to delete.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

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


id: cubrid_errno
type: function
doc:
<comment>Description:</comment>
  Return the numerical value of the error message from previous CUBRID operation
  
  Returns the error number from the last CUBRID function.
  
  The <strong>cubrid_errno()</strong> function is used to get the error code of the error that occurred during the
  API execution.  Usually, it gets the error code when API returns false as its return value.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  The CUBRID connection identifier. If the connection identifier is not
                              specified, the last connection opened by <strong>cubrid_connect()</strong> is assumed.

<comment>Return:</comment>
  <info>int</info>  Returns the error number from the last CUBRID function, or <return>0</return> (zero) if no error occurred.

<comment>See Also:</comment>
   * <strong>cubrid_error()</strong>
   * <strong>cubrid_error_code()</strong>
   * <strong>cubrid_error_msg()</strong>


id: cubrid_error
type: function
doc:
<comment>Description:</comment>
  Get the error message
  
  The <strong>cubrid_error()</strong> function is used to get the error message that occurred during the use of
  CUBRID API. Usually, it gets error message when API returns false as its return value.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  The CUBRID connection.

<comment>Return:</comment>
  <info>string</info>  Error message that occurred.

<comment>See Also:</comment>
   * <strong>cubrid_errno()</strong>
   * <strong>cubrid_error_code()</strong>
   * <strong>cubrid_error_msg()</strong>


id: cubrid_error_code
type: function
doc:
<comment>Description:</comment>
  Get error code for the most recent function call
  
  The <strong>cubrid_error_code()</strong> function is used to get the error code of the error that occurred during
  the API execution. Usually, it gets the error code when API returns false as its return value.

<comment>Return:</comment>
  <info>int</info>  Error code of the error that occurred, or <return>0</return> (zero) if no error occurred.

<comment>See Also:</comment>
   * <strong>cubrid_error_code_facility()</strong>
   * <strong>cubrid_error_msg()</strong>


id: cubrid_error_code_facility
type: function
doc:
<comment>Description:</comment>
  Get the facility code of error
  
  The <strong>cubrid_error_code_facility()</strong> function is used to get the facility code (level in which the
  error occurred) from the error code of the error that occurred during the API execution. Usually,
  you can get the error code when API returns false as its return value.

<comment>Return:</comment>
  <info>int</info>  Facility code of the error code that occurred:  <info>CUBRID_FACILITY_DBMS</info>, <info>CUBRID_FACILITY_CAS</info>,
       <info>CUBRID_FACILITY_CCI</info>, <info>CUBRID_FACILITY_CLIENT</info>.

<comment>See Also:</comment>
   * <strong>cubrid_error_code()</strong>
   * <strong>cubrid_error_msg()</strong>


id: cubrid_error_msg
type: function
doc:
<comment>Description:</comment>
  Get last error message for the most recent function call
  
  The <strong>cubrid_error_msg()</strong> function is used to get the error message that occurred during the use of
  CUBRID API. Usually, it gets error message when API returns false as its return value.

<comment>Return:</comment>
  <info>string</info>  Error message that occurred.

<comment>See Also:</comment>
   * <strong>cubrid_error_code()</strong>
   * <strong>cubrid_error_code_facility()</strong>


id: cubrid_execute
type: function
doc:
<comment>Description:</comment>
  Execute a prepared SQL statement
  
  The <strong>cubrid_execute()</strong> function is used to execute the given SQL statement. It executes the query by
  using <strong>$conn_identifier</strong> and SQL, and then returns the request identifier created. It is used for
  simple execution of query, where the parameter binding is not needed. In addition, the
  <strong>cubrid_execute()</strong> function is used to execute the prepared statement by means of <strong>cubrid_prepare()</strong>
  and <strong>cubrid_bind()</strong>. At this time, you need to specify arguments of <strong>$request_identifier</strong> and <strong>$option</strong>.
  
  The <strong>$option</strong> is used to determine whether to get OID after query execution and whether to execute
  the query in synchronous or asynchronous mode. <info>CUBRID_INCLUDE_OID</info> and <info>CUBRID_ASYNC</info> (or
  <info>CUBRID_EXEC_QUERY_ALL</info> if you want to execute multiple SQL statements) can be specified by using a
  bitwise OR operator. If not specified, neither of them isselected. If the flag
  <info>CUBRID_EXEC_QUERY_ALL</info> is set, a synchronous mode (sync_mode) is used to retrieve query results,
  and in such cases the following rules are applied:
  
  The return value is the result of the first query. If an error occurs in any query, the execution
  is processed as a failure.  In a query composed of q1 q2 q3, if an error occurs in q2 after q1
  succeeds the execution, the result of q1 remains valid. That is, the previous successful query
  executions are not rolled back when an error occurs.  If a query is executed successfully, the
  result of the second query can be obtained using <strong>cubrid_next_result()</strong>.
  
  If the first argument is <strong>$request_identifier</strong> to execute the <strong>cubrid_prepare()</strong> function, you can
  specify an option, <info>CUBRID_ASYNC</info> only.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>     Connection identifier.
  <info>string</info>    <strong>$sql</strong>                 SQL to be executed.
  <info>int</info>       <strong>$option</strong>              Query execution option <info>CUBRID_INCLUDE_OID</info>, <info>CUBRID_ASYNC</info>,
                                 <info>CUBRID_EXEC_QUERY_ALL</info>.
  <info>resource</info>  <strong>$request_identifier</strong>  <strong>cubrid_prepare()</strong> identifier.

<comment>Return:</comment>
  <info>resource</info>  Request identifier, when process is successful and first param is conn_identifier; <info>true</info>,
            when process is successful and first argument is request_identifier, or <info>false</info> on
            failure.

<comment>See Also:</comment>
   * <strong>cubrid_prepare()</strong>
   * <strong>cubrid_bind()</strong>
   * <strong>cubrid_next_result()</strong>
   * <strong>cubrid_close_request()</strong>
   * <strong>cubrid_commit()</strong>
   * <strong>cubrid_rollback()</strong>


id: cubrid_fetch
type: function
doc:
<comment>Description:</comment>
  Fetch the next row from a result set
  
  The <strong>cubrid_fetch()</strong> function is used to get a single row from the query result.  The cursor
  automatically moves to the next row after getting the result.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  <strong>$result</strong> comes from a call to <strong>cubrid_execute()</strong>
  <info>int</info>       <strong>$type</strong>    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.

<comment>Return:</comment>
  <info>mixed</info>  Result array or object, when process is successful.
         
         <info>false</info>, when there are no more rows; NULL, when process is unsuccessful.
         
         The result can be received either as an array or as an object, and you can decide which
         data type to use by setting the <strong>$type</strong> argument. The <strong>$type</strong> variable can be set to one of the
         following values:
         
         When <strong>$type</strong> argument is omitted, the result will be received using CUBRID_BOTH option as
         default. When you want to receive query result in object data type, the column name of the
         result must obey the naming rules for identifiers in PHP.  For example, column name such as
         "count(*)" cannot be received in object type.

<comment>See Also:</comment>
   * <strong>cubrid_execute()</strong>
   * <strong>cubrid_fetch_array()</strong>
   * <strong>cubrid_fetch_row()</strong>
   * <strong>cubrid_fetch_assoc()</strong>
   * <strong>cubrid_fetch_object()</strong>


id: cubrid_fetch_array
type: function
doc:
<comment>Description:</comment>
  Fetch a result row as an associative array, a numeric array, or both
  
  The <strong>cubrid_fetch_array()</strong> function is used to get a single row from the query result and returns an
  array. The cursor automatically moves to the next row after getting the result.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  <strong>$Result</strong> comes from a call to <strong>cubrid_execute()</strong>
  <info>int</info>       <strong>$type</strong>    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.

<comment>Return:</comment>
  <info>array</info>  Returns an array of strings that corresponds to the fetched row, when process is
         successful.
         
         <info>false</info>, when there are no more rows; NULL, when process is unsuccessful.
         
         The type of returned array depends on how type is defined. By using CUBRID_BOTH (default),
         you'll get an array with both associative and number indices, and you can decide which data
         type to use by setting the <strong>$type</strong> argument. The <strong>$type</strong> variable can be set to one of the
         following values:

<comment>See Also:</comment>
   * <strong>cubrid_execute()</strong>
   * <strong>cubrid_fetch()</strong>
   * <strong>cubrid_fetch_row()</strong>
   * <strong>cubrid_fetch_assoc()</strong>
   * <strong>cubrid_fetch_object()</strong>


id: cubrid_fetch_assoc
type: function
doc:
<comment>Description:</comment>
  Return the associative array that corresponds to the fetched row
  
  This function returns the associative array, that corresponds to the fetched row, and then moves
  the internal data pointer ahead, or returns FALSE when the end is reached.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  <strong>$result</strong> comes from a call to <strong>cubrid_execute()</strong>
  <info>int</info>       <strong>$type</strong>    Type can only be CUBRID_LOB, this parameter will be used only when you need to
                     operate the lob object.

<comment>Return:</comment>
  <info>array</info>  Associative array, when process is successful.
         
         <info>false</info>, when there are no more rows; NULL, when process is unsuccessful.

<comment>See Also:</comment>
   * <strong>cubrid_execute()</strong>
   * <strong>cubrid_fetch()</strong>
   * <strong>cubrid_fetch_row()</strong>
   * <strong>cubrid_fetch_array()</strong>
   * <strong>cubrid_fetch_object()</strong>


id: cubrid_fetch_field
type: function
doc:
<comment>Description:</comment>
  Get column information from a result and return as an object
  
  This function returns an object with certain properties of the specific column. The properties of
  the object are:
  
  <strong>$name</strong>column name<strong>$table</strong>name of the table that the column belongs to<strong>$def</strong>default value of the
  column<strong>$max_length</strong>maximum length of the column<strong>$not_null</strong>1 if the column cannot be NULL<strong>$primary_key</strong>1
  if the column is a primary key<strong>$unique_key</strong>1 if the column is an unique key<strong>$multiple_key</strong>1 if the
  column is a non-unique key<strong>$numeric</strong>1 if the column is numeric<strong>$blob</strong>1 if the column is a BLOB<strong>$type</strong>the
  type of the column<strong>$unsigned</strong>1 if the column is unsigned<strong>$zerofill</strong>1 if the column is zero-filled
  
  column name
  
  name of the table that the column belongs to
  
  default value of the column
  
  maximum length of the column
  
  1 if the column cannot be NULL
  
  1 if the column is a primary key
  
  1 if the column is an unique key
  
  1 if the column is a non-unique key
  
  1 if the column is numeric
  
  1 if the column is a BLOB
  
  the type of the column
  
  1 if the column is unsigned
  
  1 if the column is zero-filled

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        <strong>$result</strong> comes from a call to <strong>cubrid_execute()</strong>
  <info>int</info>       <strong>$field_offset</strong>  The numerical field offset. If the field offset is not specified, the
                           next field (that was not yet retrieved by this function) is retrieved.
                           The <strong>$field_offset</strong> starts at 0.

<comment>Return:</comment>
  <info>object</info>  Object with certain properties of the specific column, when process is successful.
          
          <info>false</info> on failure.


id: cubrid_fetch_lengths
type: function
doc:
<comment>Description:</comment>
  Return an array with the lengths of the values of each field from the current row
  
  This function returns a numeric array with the lengths of the values of each field from the
  current row of the result set or it returns FALSE on failure.
  
  If field data type is BLOB/CLOB, you should get its length by using <strong>cubrid_lob_size()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  <strong>$result</strong> comes from a call to <strong>cubrid_execute()</strong>

<comment>Return:</comment>
  <info>array</info>  A numeric array, when process is successful.
         
         <info>false</info> on failure.


id: cubrid_fetch_object
type: function
doc:
<comment>Description:</comment>
  Fetch the next row and return it as an object
  
  This function returns an object with the column names of the result set as properties. The values
  of these properties are extracted from the current row of the result.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>      <strong>$result</strong> comes from a call to <strong>cubrid_execute()</strong>
  <info>string</info>    <strong>$class_name</strong>  The name of the class to instantiate. If not specified, a <class>stdClass</class>
                         (stdClass is PHP's generic empty class that's used when casting other types
                         to objects) object is returned.
  <info>array</info>     <strong>$params</strong>      An optional <info>array</info> of parameters to pass to the constructor for <strong>$class_name</strong>
                         objects.
  <info>int</info>       <strong>$type</strong>        Type can only be CUBRID_LOB, this parameter will be used only when you need
                         to operate the lob object.

<comment>Return:</comment>
  <info>object</info>  An object, when process is successful.
          
          <info>false</info>, when there are no more rows; NULL, when process is unsuccessful.

<comment>See Also:</comment>
   * <strong>cubrid_execute()</strong>
   * <strong>cubrid_fetch()</strong>
   * <strong>cubrid_fetch_array()</strong>
   * <strong>cubrid_fetch_assoc()</strong>
   * <strong>cubrid_fetch_row()</strong>


id: cubrid_fetch_row
type: function
doc:
<comment>Description:</comment>
  Return a numerical array with the values of the current row
  
  This function returns a numerical array with the values of the current row from the result set,
  starting from 0, and moves the internal data pointer ahead.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  <strong>$result</strong> comes from a call to <strong>cubrid_execute()</strong>
  <info>int</info>       <strong>$type</strong>    Type can only be CUBRID_LOB, this parameter will be used only when you need to
                     operate the lob object.

<comment>Return:</comment>
  <info>array</info>  A numerical array, when process is successful.
         
         <info>false</info>, when there are no more rows; NULL, when process is unsuccessful.

<comment>See Also:</comment>
   * <strong>cubrid_execute()</strong>
   * <strong>cubrid_fetch()</strong>
   * <strong>cubrid_fetch_array()</strong>
   * <strong>cubrid_fetch_assoc()</strong>
   * <strong>cubrid_fetch_object()</strong>


id: cubrid_field_flags
type: function
doc:
<comment>Description:</comment>
  Return a string with the flags of the given field offset
  
  This function returns a string with the flags of the given field offset separated by space. You
  can split the returned value using explode. The possible flags could be: <info>not_null</info>, <info>primary_key</info>,
  <info>unique_key</info>, <info>foreign_key</info>, <info>auto_increment</info>, <info>shared</info>, <info>reverse_index</info>, <info>reverse_unique</info> and <info>timestamp</info>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        <strong>$result</strong> comes from a call to <strong>cubrid_execute()</strong>
  <info>int</info>       <strong>$field_offset</strong>  The numerical field offset. The <strong>$field_offset</strong> starts at 0. If
                           <strong>$field_offset</strong> does not exist, an error of level <info>E_WARNING</info> is also issued.

<comment>Return:</comment>
  <info>string</info>  A string with flags, when process is successful.
          
          <info>false</info> when invalid field_offset value.
          
          -1 if SQL sentence is not SELECT.


id: cubrid_field_len
type: function
doc:
<comment>Description:</comment>
  Get the maximum length of the specified field
  
  This function returns the maximum length of the specified field on success, or it returns FALSE on
  failure.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        <strong>$result</strong> comes from a call to <strong>cubrid_execute()</strong>
  <info>int</info>       <strong>$field_offset</strong>  The numerical field offset. The <strong>$field_offset</strong> starts at 0. If
                           <strong>$field_offset</strong> does not exist, an error of level <info>E_WARNING</info> is also issued.

<comment>Return:</comment>
  <info>int</info>  Maximum length, when process is successful.
       
       <info>false</info> on failure.


id: cubrid_field_name
type: function
doc:
<comment>Description:</comment>
  Return the name of the specified field index
  
  This function returns the name of the specified field index on success or it returns FALSE on
  failure.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        <strong>$result</strong> comes from a call to <strong>cubrid_execute()</strong>
  <info>int</info>       <strong>$field_offset</strong>  The numerical field offset. The <strong>$field_offset</strong> starts at 0. If
                           <strong>$field_offset</strong> does not exist, an error of level <info>E_WARNING</info> is also issued.

<comment>Return:</comment>
  <info>string</info>  Name of specified field index, on success.
          
          <info>false</info> on failure.


id: cubrid_field_seek
type: function
doc:
<comment>Description:</comment>
  Move the result set cursor to the specified field offset
  
  This function moves the result set cursor to the specified field offset. This offset is used by
  <strong>cubrid_fetch_field()</strong> if it doesn't include a field offset. It returns TRUE on success or FALSE on
  failure.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        <strong>$result</strong> comes from a call to <strong>cubrid_execute()</strong>
  <info>int</info>       <strong>$field_offset</strong>  The numerical field offset. The <strong>$field_offset</strong> starts at 0. If
                           <strong>$field_offset</strong> does not exist, an error of level <info>E_WARNING</info> is also issued.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> on success.
        
        <info>false</info> on failure.


id: cubrid_field_table
type: function
doc:
<comment>Description:</comment>
  Return the name of the table of the specified field
  
  This function returns the name of the table of the specified field. This is useful when using
  large select queries with JOINS.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        <strong>$result</strong> comes from a call to <strong>cubrid_execute()</strong>
  <info>int</info>       <strong>$field_offset</strong>  The numerical field offset. The <strong>$field_offset</strong> starts at 0. If
                           <strong>$field_offset</strong> does not exist, an error of level <info>E_WARNING</info> is also issued.

<comment>Return:</comment>
  <info>string</info>  Name of the table of the specified field, on success.
          
          <info>false</info> when invalid field_offset value.
          
          -1 if SQL sentence is not SELECT.


id: cubrid_field_type
type: function
doc:
<comment>Description:</comment>
  Return the type of the column corresponding to the given field offset
  
  This function returns the type of the column corresponding to the given field offset. The returned
  field type could be one of the following: "int", "real", "string", etc.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>        <strong>$result</strong> comes from a call to <strong>cubrid_execute()</strong>
  <info>int</info>       <strong>$field_offset</strong>  The numerical field offset. The <strong>$field_offset</strong> starts at 0. If
                           <strong>$field_offset</strong> does not exist, an error of level <info>E_WARNING</info> is also issued.

<comment>Return:</comment>
  <info>string</info>  Type of the column, on success.
          
          <info>false</info> when invalid field_offset value.
          
          -1 if SQL sentence is not SELECT.


id: cubrid_free_result
type: function
doc:
<comment>Description:</comment>
  Free the memory occupied by the result data
  
  This function frees the memory occupied by the result data. It returns <info>true</info> on success or <info>false</info> on
  failure. Note that it can only frees the client fetch buffer now, and if you want free all memory,
  use function <strong>cubrid_close_request()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$req_identifier</strong>  This is the request identifier.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: cubrid_get
type: function
doc:
<comment>Description:</comment>
  Get a column using OID
  
  The <strong>cubrid_get()</strong> function is used to get the attribute of the instance of the given <strong>$oid</strong>.  You can
  get single attribute by using string data type for the <strong>$attr</strong> argument, or many attributes by using
  array data type for the <strong>$attr</strong> argument.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$oid</strong>              OID of the instance that you want to read.
  <info>mixed</info>     <strong>$attr</strong>             Name of the attribute that you want to read.

<comment>Return:</comment>
  <info>mixed</info>  Content of the requested attribute, when process is successful; When <strong>$attr</strong> is set with
         string data type, the result is returned as a string; when <strong>$attr</strong> is set with array data
         type (0-based numerical array), then the result is returned in associative array. When
         <strong>$attr</strong> is omitted, then all attributes are received in array form.
         
         <info>false</info> when process is unsuccessful or result is NULL (If error occurs to distinguish empty
         string from NULL, then it prints the warning message. You can check the error by using
         <strong>cubrid_error_code()</strong>)

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


id: cubrid_get_autocommit
type: function
doc:
<comment>Description:</comment>
  Get auto-commit mode of the connection
  
  The <strong>cubrid_get_autocommit()</strong> function is used to get the status of CUBRID database connection
  auto-commit mode.
  
  For CUBRID 8.4.0, auto-commit mode is disabled by default for transaction management.
  
  For CUBRID 8.4.1, auto-commit mode is enabled by default for transaction management.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info>, when auto-commit is on.
        
        <info>false</info>, when auto-commit is off.
        
        <info>null</info> on error.

<comment>See Also:</comment>
   * <strong>cubrid_set_autocommit()</strong>
   * <strong>cubrid_commit()</strong>


id: cubrid_get_charset
type: function
doc:
<comment>Description:</comment>
  Return the current CUBRID connection charset
  
  This function returns the current CUBRID connection charset and is similar to the CUBRID MySQL
  compatible function <strong>cubrid_client_encoding()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  The CUBRID connection.

<comment>Return:</comment>
  <info>string</info>  A string that represents the CUBRID connection charset on success, or <info>false</info> on failure.

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


id: cubrid_get_class_name
type: function
doc:
<comment>Description:</comment>
  Get the class name using OID
  
  The <strong>cubrid_get_class_name()</strong> function is used to get the class name from <strong>$oid</strong>. It doesn't work when
  selecting data from the system tables, for example db_class.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$oid</strong>              OID of the instance that you want to check the existence.

<comment>Return:</comment>
  <info>string</info>  Class name when process is successful, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_is_instance()</strong>
   * <strong>cubrid_drop()</strong>


id: cubrid_get_client_info
type: function
doc:
<comment>Description:</comment>
  Return the client library version
  
  This function returns a string that represents the client library version.

<comment>Return:</comment>
  <info>string</info>  A string that represents the client library version on success, or <info>false</info> on failure.


id: cubrid_get_db_parameter
type: function
doc:
<comment>Description:</comment>
  Returns the CUBRID database parameters
  
  This function returns the CUBRID database parameters, or <info>false</info> on failure.  It returns an
  associative array with the values for the following parameters:
  
  <info>PARAM_ISOLATION_LEVEL</info><info>PARAM_LOCK_TIMEOUT</info><info>PARAM_MAX_STRING_LENGTH</info><info>PARAM_AUTO_COMMIT</info>
  
  Database parametersParameterDescriptionPARAM_ISOLATION_LEVELThe transaction isolation
  level.LOCK_TIMEOUTCUBRID provides the lock timeout feature, which sets the waiting time (in
  seconds) for the lock until the transaction lock setting is allowed. The default value of the
  lock_timeout_in_secs parameter is -1, which means the application client will wait indefinitely
  until the transaction lock is allowed. PARAM_AUTO_COMMITIn CUBRID PHP, auto-commit mode is
  disabled by default for transaction management. It can be set by using <strong>cubrid_set_autocommit()</strong>.
  
  The following table shows the isolation levels from 1 to 6. It consists of table schema (row) and
  isolation level: Levels of Isolation Supported by CUBRIDNameDescriptionSERIALIZABLE (6)In this
  isolation level, problems concerning concurrency (e.g. dirty read, non-repeatable read, phantom
  read, etc.) do not occur.REPEATABLE READ CLASS with REPEATABLE READ INSTANCES (5)Another
  transaction T2 cannot update the schema of table A while transaction T1 is viewing table A.
  Transaction T1 may experience phantom read for the record R that was inserted by another
  transaction T2 when it is repeatedly retrieving a specific record.REPEATABLE READ CLASS with READ
  COMMITTED INSTANCES (or CURSOR STABILITY) (4)Another transaction T2 cannot update the schema of
  table A while transaction T1 is viewing table A. Transaction T1 may experience R read
  (non-repeatable read) that was updated and committed by another transaction T2 when it is
  repeatedly retrieving the record R.REPEATABLE READ CLASS with READ UNCOMMITTED INSTANCES
  (3)Default isolation level.  Another transaction T2 cannot update the schema of table A  while
  transaction T1 is viewing table A. Transaction T1 may experience R' read (dirty read) for the
  record that was updated but not committed by another transaction T2.READ COMMITTED CLASS with READ
  COMMITTED INSTANCES (2)Transaction T1 may experience A' read (non-repeatable read) for the table
  that was updated and committed by another transaction  T2 while it is viewing table A repeatedly.
  Transaction T1 may experience R' read (non-repeatable read) for the record that was updated and
  committed by another transaction T2 while it is retrieving the record R repeatedly.READ COMMITTED
  CLASS with READ UNCOMMITTED INSTANCES (1)Transaction T1 may experience A' read (non-repeatable
  read) for the table that was updated and committed by another transaction T2 while it is
  repeatedly viewing table A.  Transaction T1 may experience R' read (dirty read) for the record
  that was updated but not committed by another transaction T2.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  The CUBRID connection. If the connection identifier is not specified,
                              the last link opened by <strong>cubrid_connect()</strong> is assumed.

<comment>Return:</comment>
  <info>array</info>  An associative array with CUBRID database parameters; on success, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_set_db_parameter()</strong>
   * <strong>cubrid_get_autocommit()</strong>


id: cubrid_get_query_timeout
type: function
doc:
<comment>Description:</comment>
  Get the query timeout value of the request
  
  The <strong>cubrid_get_query_timeout()</strong> function is used to get the query timeout of the request.

<comment>Param:</comment>
  <info>resource</info>  <strong>$req_identifier</strong>  Request identifier.

<comment>Return:</comment>
  <info>int</info>  Returns the query timeout value in milliseconds of the current request on success, or <info>false</info>
       on failure.

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


id: cubrid_get_server_info
type: function
doc:
<comment>Description:</comment>
  Return the CUBRID server version
  
  This function returns a string that represents the CUBRID server version.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  The CUBRID connection.

<comment>Return:</comment>
  <info>string</info>  A string that represents the CUBRID server version on success, or <info>false</info> on failure.


id: cubrid_insert_id
type: function
doc:
<comment>Description:</comment>
  Return the ID generated for the last updated AUTO_INCREMENT column
  
  The <strong>cubrid_insert_id()</strong> function retrieves the ID generated for the AUTO_INCREMENT column which is
  updated by the previous INSERT query. It returns 0 if the previous query does not generate new
  rows, or FALSE on failure.
  
  CUBRID supports AUTO_INCREMENT for more than one columns in a table. In most cases, there will be
  a single AUTO_INCREMENT column in a table. If there are multiple AUTO_INCREMENT columns, this
  function should not be used even if it will return a value.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  The connection identifier previously obtained by a call to
                              <strong>cubrid_connect()</strong>.

<comment>Return:</comment>
  <info>string</info>  A string representing the ID generated for an AUTO_INCREMENT column by the previous query,
          on success.
          
          0, if the previous query does not generate new rows.
          
          <info>false</info> on failure.


id: cubrid_is_instance
type: function
doc:
<comment>Description:</comment>
  Check whether the instance pointed by OID exists
  
  The <strong>cubrid_is_instance()</strong> function is used to check whether the instance pointed by the given <strong>$oid</strong>
  exists or not.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$oid</strong>              OID of the instance that you want to check the existence.

<comment>Return:</comment>
  <info>int</info>  1, if such instance exists;
       
       0, if such instance does not exist;
       
       -1, in case of error

<comment>See Also:</comment>
   * <strong>cubrid_drop()</strong>
   * <strong>cubrid_get_class_name()</strong>


id: cubrid_list_dbs
type: function
doc:
<comment>Description:</comment>
  Return an array with the list of all existing CUBRID databases
  
  This function returns an array with the list of all existing Cubrid databases.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  The CUBRID connection.

<comment>Return:</comment>
  <info>array</info>  An numeric array with all existing Cubrid databases; on success.
         
         <info>false</info> on failure.


id: cubrid_load_from_glo
type: function
doc:
<comment>Description:</comment>
  Read data from a GLO instance and save it in a file
  
  The <strong>cubrid_load_from_glo()</strong> function is used to read a data from a glo instance, and saves it in a
  designated file.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$oid</strong>              Oid of the glo instance that you want to read the data from.
  <info>string</info>    <strong>$file_name</strong>        Name of the file where you want to save the data in.

<comment>Return:</comment>
  <info>int</info>  <info>true</info>, when process is successful.
       
       <info>false</info>, when process is unsuccessful.

<comment>See Also:</comment>
   * <strong>cubrid_new_glo()</strong>
   * <strong>cubrid_save_to_glo()</strong>
   * <strong>cubrid_send_glo()</strong>


id: cubrid_lob2_bind
type: function
doc:
<comment>Description:</comment>
  Bind a lob object or a string as a lob object to a prepared statement as parameters
  
  The <strong>cubrid_lob2_bind()</strong> function is used to bind BLOB/CLOB datas to a corresponding question mark
  placeholder in the SQL statement that was passed  to <strong>cubrid_prepare()</strong>. If <strong>$bind_value_type</strong>  is not
  given, string will be "BLOB" as the default. But if you use <strong>cubrid_lob2_new()</strong> before,
  <strong>$bind_value_type</strong> will be consistent with <strong>$type</strong> in <strong>cubrid_lob2_new()</strong> as the default.

<comment>Param:</comment>
  <info>resource</info>  <strong>$req_identifier</strong>   Request identifier as a result of <strong>cubrid_prepare()</strong>.
  <info>int</info>       <strong>$bind_index</strong>       Location of binding parameters. It starts with 1.
  <info>mixed</info>     <strong>$bind_value</strong>       Actual value for binding.
  <info>string</info>    <strong>$bind_value_type</strong>  It must be "BLOB" or "CLOB" and it won't be case-sensitive. If it not
                              be given, the default value is "BLOB".

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_lob2_new()</strong>
   * <strong>cubrid_lob2_close()</strong>


id: cubrid_lob2_close
type: function
doc:
<comment>Description:</comment>
  Close LOB object
  
  The <strong>cubrid_lob2_close()</strong> function is used to close LOB object returned from <strong>cubrid_lob2_new()</strong> or
  got from the result set.

<comment>Param:</comment>
  <info>resource</info>  <strong>$lob_identifier</strong>  Lob identifier as a result of <strong>cubrid_lob2_new()</strong> or get from the result
                             set.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

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


id: cubrid_lob2_export
type: function
doc:
<comment>Description:</comment>
  Export the lob object to a file
  
  The <strong>cubrid_lob2_export()</strong> function is used to save the  contents of BLOB/CLOB data to a file. To
  use this function, you must use <strong>cubrid_lob2_new()</strong> or fetch a lob object from CUBRID  database
  first. If the file already exists, the operation will fail.  This function will not influence the
  cursor position of the lob object.  It operates the entire lob object.

<comment>Param:</comment>
  <info>resource</info>  <strong>$lob_identifier</strong>  Lob identifier as a result of <strong>cubrid_lob2_new()</strong> or get from the result
                             set.
  <info></info>          <strong>$filename</strong>        File name you want to store BLOB/CLOB data. It also supports the path
                             of the file.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_lob2_new()</strong>
   * <strong>cubrid_lob2_close()</strong>
   * <strong>cubrid_lob2_import()</strong>
   * <strong>cubrid_lob2_bind()</strong>


id: cubrid_lob2_import
type: function
doc:
<comment>Description:</comment>
  Import BLOB/CLOB data from a file
  
  The <strong>cubrid_lob2_import()</strong> function is used to save the contents of BLOB/CLOB data from a file. To
  use this function, you must use <strong>cubrid_lob2_new()</strong> or fetch a lob object from CUBRID database
  first. If the file already exists, the operation will fail.  This function will not influence the
  cursor position of the lob object.  It operates the entire lob object.

<comment>Param:</comment>
  <info>resource</info>  <strong>$lob_identifier</strong>  Lob identifier as a result of <strong>cubrid_lob2_new()</strong> or get from the result
                             set.
  <info></info>          <strong>$filename</strong>        File name you want to import BLOB/CLOB data. It also supports the path
                             of the file.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_lob2_new()</strong>
   * <strong>cubrid_lob2_close()</strong>
   * <strong>cubrid_lob2_export()</strong>
   * <strong>cubrid_lob2_bind()</strong>


id: cubrid_lob2_new
type: function
doc:
<comment>Description:</comment>
  Create a lob object
  
  The <strong>cubrid_lob2_new()</strong> function is used to create a lob object (both BLOB and CLOB).  This function
  should be used before you bind a lob object.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier. If the connection identifier is not specified,
                              the last connection opened by <strong>cubrid_connect()</strong> or
                              <strong>cubrid_connect_with_url()</strong> is assumed.
  <info>string</info>    <strong>$type</strong>             It may be "BLOB" or "CLOB", it won't be case-sensitive. The default
                              value is "BLOB".

<comment>Return:</comment>
  <info>resource</info>  Lob identifier when it is successful, or <info>false</info> on failure.

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


id: cubrid_lob2_read
type: function
doc:
<comment>Description:</comment>
  Read from BLOB/CLOB data
  
  The <strong>cubrid_lob2_read()</strong> function reads <strong>$len</strong> bytes from the  LOB data and returns the bytes read.

<comment>Param:</comment>
  <info>resource</info>  <strong>$lob_identifier</strong>  Lob identifier as a result of <strong>cubrid_lob2_new()</strong> or get from the result
                             set.
  <info>int</info>       <strong>$len</strong>             Length from buffer you want to read from the lob data.

<comment>Return:</comment>
  <info>string</info>  Returns the contents as a string, <info>false</info> when there is no more data, or <info>null</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_lob2_write()</strong>
   * <strong>cubrid_lob2_seek()</strong>
   * <strong>cubrid_lob2_seek64()</strong>
   * <strong>cubrid_lob2_tell()</strong>
   * <strong>cubrid_lob2_tell64()</strong>
   * <strong>cubrid_lob2_size()</strong>
   * <strong>cubrid_lob2_size64()</strong>


id: cubrid_lob2_seek
type: function
doc:
<comment>Description:</comment>
  Move the cursor of a lob object
  
  The <strong>cubrid_lob2_seek()</strong> function is used to move the cursor position of a lob object by the value
  set in the <strong>$offset</strong> argument, to the direction set in the <strong>$origin</strong> argument.
  
  To set the <strong>$origin</strong> argument, you can use <info>CUBRID_CURSOR_FIRST</info> to set the cursor position moving
  forward <strong>$offset</strong> units from the first beginning. In this case, <strong>$offset</strong> must be a positive value.
  
  If you use <info>CUBRID_CURSOR_CURRENT</info> for <strong>$origin</strong>, you can move  forward or backward. and <strong>$offset</strong> can
  be positive or negative.
  
  If you use <info>CUBRID_CURSOR_LAST</info> for <strong>$origin</strong>, you can move  backward <strong>$offset</strong> units from the end of
  LOB object and <strong>$offset</strong> only can be positive.

<comment>Param:</comment>
  <info>resource</info>  <strong>$lob_identifier</strong>  Lob identifier as a result of <strong>cubrid_lob2_new()</strong> or get from the result
                             set.
  <info>int</info>       <strong>$offset</strong>          Number of units you want to move the cursor.
  <info>int</info>       <strong>$origin</strong>          This parameter can be the following values:
                             
                             CUBRID_CURSOR_FIRST: move forward from the first beginning.
                             
                             CUBRID_CURSOR_CURRENT: move forward or backward from the current
                             position.
                             
                             CUBRID_CURSOR_LAST: move backward at the end of LOB object.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_lob2_read()</strong>
   * <strong>cubrid_lob2_write()</strong>
   * <strong>cubrid_lob2_seek64()</strong>
   * <strong>cubrid_lob2_tell()</strong>
   * <strong>cubrid_lob2_tell64()</strong>
   * <strong>cubrid_lob2_size()</strong>
   * <strong>cubrid_lob2_size64()</strong>


id: cubrid_lob2_seek64
type: function
doc:
<comment>Description:</comment>
  Move the cursor of a lob object
  
  The <strong>cubrid_lob2_seek64()</strong> function is used to move the cursor position of a lob object by the value
  set in the <strong>$offset</strong>  argument, to the direction set in the <strong>$origin</strong> argument.  If the <strong>$offset</strong> you
  want to move is larger than an integer  data can be stored, you can use this function.
  
  To set the <strong>$origin</strong> argument, you can use <info>CUBRID_CURSOR_FIRST</info> to set the cursor position moving
  forward <strong>$offset</strong> units from the first beginning. In this case, <strong>$offset</strong> must be a positive value.
  
  If you use <info>CUBRID_CURSOR_CURRENT</info> for <strong>$origin</strong>, you can move forward or backward. and <strong>$offset</strong> can be
  positive or negative.
  
  If you use <info>CUBRID_CURSOR_LAST</info> for <strong>$origin</strong>, you can move backward <strong>$offset</strong> units from the end of LOB
  object and <strong>$offset</strong> only can be positive.
  
  If you use this function to move the cursor position of the lob object, you should pass <strong>$offset</strong> as
  a string.

<comment>Param:</comment>
  <info>resource</info>  <strong>$lob_identifier</strong>  Lob identifier as a result of <strong>cubrid_lob2_new()</strong> or get from the result
                             set.
  <info>string</info>    <strong>$offset</strong>          Number of units you want to move the cursor.
  <info>int</info>       <strong>$origin</strong>          This parameter can be the following values:
                             
                             CUBRID_CURSOR_FIRST: move forward from the first beginning.
                             
                             CUBRID_CURSOR_CURRENT: move forward or backward from the current
                             position.
                             
                             CUBRID_CURSOR_LAST: move backward at the end of LOB object.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_lob2_read()</strong>
   * <strong>cubrid_lob2_write()</strong>
   * <strong>cubrid_lob2_seek()</strong>
   * <strong>cubrid_lob2_tell()</strong>
   * <strong>cubrid_lob2_tell64()</strong>
   * <strong>cubrid_lob2_size()</strong>
   * <strong>cubrid_lob2_size64()</strong>


id: cubrid_lob2_size
type: function
doc:
<comment>Description:</comment>
  Get a lob object's size
  
  The <strong>cubrid_lob2_size()</strong> function is used to get the size of a lob object.

<comment>Param:</comment>
  <info>resource</info>  <strong>$lob_identifier</strong>  Lob identifier as a result of <strong>cubrid_lob2_new()</strong> or get from the result
                             set.

<comment>Return:</comment>
  <info>int</info>  It will return the size of the LOB object when it processes successfully, or <info>false</info> on
       failure.

<comment>See Also:</comment>
   * <strong>cubrid_lob2_read()</strong>
   * <strong>cubrid_lob2_write()</strong>
   * <strong>cubrid_lob2_seek()</strong>
   * <strong>cubrid_lob2_seek64()</strong>
   * <strong>cubrid_lob2_tell()</strong>
   * <strong>cubrid_lob2_tell64()</strong>
   * <strong>cubrid_lob2_size64()</strong>


id: cubrid_lob2_size64
type: function
doc:
<comment>Description:</comment>
  Get a lob object's size
  
  The <strong>cubrid_lob2_size64()</strong> function is used to get the size of a lob object.  If the size of a lob
  object is larger than an integer data can be stored, you can use this function and it will return
  the size as a string.

<comment>Param:</comment>
  <info>resource</info>  <strong>$lob_identifier</strong>  Lob identifier as a result of <strong>cubrid_lob2_new()</strong> or get from the result
                             set.

<comment>Return:</comment>
  <info>string</info>  It will return the size of the LOB object as a string when it processes successfully, or
          <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_lob2_read()</strong>
   * <strong>cubrid_lob2_write()</strong>
   * <strong>cubrid_lob2_seek()</strong>
   * <strong>cubrid_lob2_seek64()</strong>
   * <strong>cubrid_lob2_tell()</strong>
   * <strong>cubrid_lob2_tell64()</strong>
   * <strong>cubrid_lob2_size()</strong>


id: cubrid_lob2_tell
type: function
doc:
<comment>Description:</comment>
  Tell the cursor position of the LOB object
  
  The <strong>cubrid_lob2_tell()</strong> function is used to tell the cursor position of the LOB object.

<comment>Param:</comment>
  <info>resource</info>  <strong>$lob_identifier</strong>  Lob identifier as a result of <strong>cubrid_lob2_new()</strong> or get from the result
                             set.

<comment>Return:</comment>
  <info>int</info>  It will return the cursor position on the LOB object when it processes successfully, or <info>false</info>
       on failure.

<comment>See Also:</comment>
   * <strong>cubrid_lob2_read()</strong>
   * <strong>cubrid_lob2_write()</strong>
   * <strong>cubrid_lob2_seek()</strong>
   * <strong>cubrid_lob2_seek64()</strong>
   * <strong>cubrid_lob2_tell64()</strong>
   * <strong>cubrid_lob2_size()</strong>
   * <strong>cubrid_lob2_size64()</strong>


id: cubrid_lob2_tell64
type: function
doc:
<comment>Description:</comment>
  Tell the cursor position of the LOB object
  
  The <strong>cubrid_lob2_tell64()</strong> function is used to tell the  cursor position of the LOB object. If the
  size of a lob object is larger than an integer data can be stored, you can use this function and
  it will return the position information as a string.

<comment>Param:</comment>
  <info>resource</info>  <strong>$lob_identifier</strong>  Lob identifier as a result of <strong>cubrid_lob2_new()</strong> or get from the result
                             set.

<comment>Return:</comment>
  <info>string</info>  It will return the cursor position on the LOB object as a string when it processes
          successfully, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_lob2_read()</strong>
   * <strong>cubrid_lob2_write()</strong>
   * <strong>cubrid_lob2_seek()</strong>
   * <strong>cubrid_lob2_seek64()</strong>
   * <strong>cubrid_lob2_tell()</strong>
   * <strong>cubrid_lob2_size()</strong>
   * <strong>cubrid_lob2_size64()</strong>


id: cubrid_lob2_write
type: function
doc:
<comment>Description:</comment>
  Write to a lob object
  
  The <strong>cubrid_lob2_write()</strong> function reads as much as data from <strong>$buf</strong> and stores it to the LOB object.
  Note that this function can only append characters now.

<comment>Param:</comment>
  <info>resource</info>  <strong>$lob_identifier</strong>  Lob identifier as a result of <strong>cubrid_lob2_new()</strong> or get from the result
                             set.
  <info>string</info>    <strong>$buf</strong>             Data that need to be written to the lob object.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_lob2_read()</strong>
   * <strong>cubrid_lob2_seek()</strong>
   * <strong>cubrid_lob2_seek64()</strong>
   * <strong>cubrid_lob2_tell()</strong>
   * <strong>cubrid_lob2_tell64()</strong>
   * <strong>cubrid_lob2_size()</strong>
   * <strong>cubrid_lob2_size64()</strong>


id: cubrid_lob_close
type: function
doc:
<comment>Description:</comment>
  Close BLOB/CLOB data
  
  <strong>cubrid_lob_close()</strong> is used to close all BLOB/CLOB returned from <strong>cubrid_lob_get()</strong>.

<comment>Param:</comment>
  <info>array</info>  <strong>$lob_identifier_array</strong>  LOB identifier array returned from <strong>cubrid_lob_get()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_lob_get()</strong>
   * <strong>cubrid_lob_size()</strong>
   * <strong>cubrid_lob_export()</strong>
   * <strong>cubrid_lob_send()</strong>


id: cubrid_lob_export
type: function
doc:
<comment>Description:</comment>
  Export BLOB/CLOB data to file
  
  <strong>cubrid_lob_export()</strong> is used to get BLOB/CLOB data from CUBRID database, and saves its contents to
  a file. To use this function, you must use <strong>cubrid_lob_get()</strong> first to get BLOB/CLOB info from
  CUBRID.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>resource</info>  <strong>$lob_identifier</strong>   LOB identifier.
  <info>string</info>    <strong>$path_name</strong>        Path name of the file.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_lob_get()</strong>
   * <strong>cubrid_lob_close()</strong>
   * <strong>cubrid_lob_size()</strong>
   * <strong>cubrid_lob_send()</strong>


id: cubrid_lob_get
type: function
doc:
<comment>Description:</comment>
  Get BLOB/CLOB data
  
  <strong>cubrid_lob_get()</strong> is used to get BLOB/CLOB meta info from CUBRID database,  CUBRID gets BLOB/CLOB
  by executing the SQL statement, and returns all LOBs as a resource array.  Be sure that the SQL
  retrieves only one column and its data type is BLOB or CLOB.
  
  Remember to use <strong>cubrid_lob_close()</strong> to release the LOBs if you don't need it any more.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$sql</strong>              SQL statement to be executed.

<comment>Return:</comment>
  <info>array</info>  Return an array of LOB resources, when process is successful, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_lob_close()</strong>
   * <strong>cubrid_lob_size()</strong>
   * <strong>cubrid_lob_export()</strong>
   * <strong>cubrid_lob_send()</strong>


id: cubrid_lob_send
type: function
doc:
<comment>Description:</comment>
  Read BLOB/CLOB data and send straight to browser
  
  <strong>cubrid_lob_send()</strong> reads BLOB/CLOB data and passes it straight through to the browser.   To use
  this function, you must use <strong>cubrid_lob_get()</strong> first to get BLOB/CLOB info from CUBRID.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>resource</info>  <strong>$lob_identifier</strong>   LOB identifier.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_lob_get()</strong>
   * <strong>cubrid_lob_close()</strong>
   * <strong>cubrid_lob_size()</strong>
   * <strong>cubrid_lob_export()</strong>


id: cubrid_lob_size
type: function
doc:
<comment>Description:</comment>
  Get BLOB/CLOB data size
  
  <strong>cubrid_lob_size()</strong> is used to get BLOB/CLOB data size.

<comment>Param:</comment>
  <info>resource</info>  <strong>$lob_identifier</strong>  LOB identifier.

<comment>Return:</comment>
  <info>string</info>  A string representing LOB data size, when process is successful, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_lob_get()</strong>
   * <strong>cubrid_lob_close()</strong>
   * <strong>cubrid_lob_export()</strong>
   * <strong>cubrid_lob_send()</strong>


id: cubrid_lock_read
type: function
doc:
<comment>Description:</comment>
  Set a read lock on the given OID
  
  The <strong>cubrid_lock_read()</strong> function is used to put read lock on the instance pointed by given <strong>$oid</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$oid</strong>              OID of the instance that you want to put read lock on.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

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


id: cubrid_lock_write
type: function
doc:
<comment>Description:</comment>
  Set a write lock on the given OID
  
  The <strong>cubrid_lock_write()</strong> function is used to put write lock on the instance pointed by the given
  <strong>$oid</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$oid</strong>              OID of the instance that you want to put write lock on.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

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


id: cubrid_move_cursor
type: function
doc:
<comment>Description:</comment>
  Move the cursor in the result
  
  The <strong>cubrid_move_cursor()</strong> function is used to move the current cursor location of <strong>$req_identifier</strong>
  by the value set in the <strong>$offset</strong> argument, to the direction set in the <strong>$origin</strong> argument. To set the
  <strong>$origin</strong> argument, you can use <info>CUBRID_CURSOR_FIRST</info> for the first part of the result,
  <info>CUBRID_CURSOR_CURRENT</info> for the current location of the result, or <info>CUBRID_CURSOR_LAST</info> for the last
  part of the result. If <strong>$origin</strong> argument is not explicitly designated, then the function uses
  <info>CUBRID_CURSOR_CURRENT</info> as its default value.
  
  If the value of cursor movement range goes over the valid limit, then the cursor moves to the next
  location after the valid range for the cursor. For example, if you move 20 units in the result
  with the size of 10, then the cursor will move to 11th place and return <info>CUBRID_NO_MORE_DATA</info>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$req_identifier</strong>  Request identifier.
  <info>int</info>       <strong>$offset</strong>          Number of units you want to move the cursor.
  <info>int</info>       <strong>$origin</strong>          Location where you want to move the cursor from <info>CUBRID_CURSOR_FIRST</info>,
                             <info>CUBRID_CURSOR_CURRENT</info>, <info>CUBRID_CURSOR_LAST</info>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

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


id: cubrid_new_glo
type: function
doc:
<comment>Description:</comment>
  Create a glo instance
  
  The <strong>cubrid_new_glo()</strong> function is used to create a glo instance in the requested class (glo class).
  The glo created is a LO type, and is stored in the <strong>$file_name</strong> file.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$class_name</strong>       Name of the class that you want to create a glo in.
  <info>string</info>    <strong>$file_name</strong>        The file name that you want to save in the newly created glo.

<comment>Return:</comment>
  <info>string</info>  Oid of the instance created, when process is successful.
          
          <info>false</info>, when process is unsuccessful.

<comment>See Also:</comment>
   * <strong>cubrid_save_to_glo()</strong>
   * <strong>cubrid_load_from_glo()</strong>
   * <strong>cubrid_send_glo()</strong>


id: cubrid_next_result
type: function
doc:
<comment>Description:</comment>
  Get result of next query when executing multiple SQL statements
  
  The <strong>cubrid_next_result()</strong> function is used to get results of next query if multiple SQL statements
  are executed and <info>CUBRID_EXEC_QUERY_ALL</info> flag is set upon <strong>cubrid_execute()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  <strong>$result</strong> comes from a call to <strong>cubrid_execute()</strong>

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

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


id: cubrid_num_cols
type: function
doc:
<comment>Description:</comment>
  Return the number of columns in the result set
  
  The <strong>cubrid_num_cols()</strong> function is used to get the number of columns from the query result. It can
  only be used when the query executed is a <return>SELECT</return> statement.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  Result.

<comment>Return:</comment>
  <info>int</info>  Number of columns, when process is successful.
       
       <info>false</info>, if SQL statement is not SELECT.

<comment>See Also:</comment>
   * <strong>cubrid_execute()</strong>
   * <strong>cubrid_num_rows()</strong>


id: cubrid_num_fields
type: function
doc:
<comment>Description:</comment>
  Return the number of columns in the result set
  
  This function returns the number of columns in the result set, on success, or it returns FALSE on
  failure.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  <strong>$result</strong> comes from a call to <strong>cubrid_execute()</strong>, <strong>cubrid_query()</strong> and
                     <strong>cubrid_prepare()</strong>

<comment>Return:</comment>
  <info>int</info>  Number of columns, on success.
       
       -1 if SQL sentence is not SELECT.
       
       <info>false</info> when process is unsuccessful.


id: cubrid_num_rows
type: function
doc:
<comment>Description:</comment>
  Get the number of rows in the result set
  
  The <strong>cubrid_num_rows()</strong> function is used to get the  number of rows from the query result. It can be
  used for <return>SELECT</return> statements. For <return>INSERT</return>, <return>UPDATE</return>, or <return>DELETE</return> queries, use the <strong>cubrid_affected_rows()</strong>
  function.
  
  Note: The <strong>cubrid_num_rows()</strong> function can only be used for synchronous query; it returns 0 when it
  is used for asynchronous query.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  <strong>$result</strong> comes from a call to <strong>cubrid_execute()</strong>, <strong>cubrid_query()</strong> and
                     <strong>cubrid_prepare()</strong>

<comment>Return:</comment>
  <info>int</info>  Number of rows, when process is successful.
       
       0 when the query was done in async mode.
       
       -1, if SQL statement is not SELECT.
       
       <info>false</info> when process is unsuccessful.

<comment>See Also:</comment>
   * <strong>cubrid_execute()</strong>
   * <strong>cubrid_num_cols()</strong>
   * <strong>cubrid_affected_rows()</strong>


id: cubrid_pconnect
type: function
doc:
<comment>Description:</comment>
  Open a persistent connection to a CUBRID server
  
  Establishes a persistent connection to a CUBRID server.
  
  <strong>cubrid_pconnect()</strong> acts very much like <strong>cubrid_connect()</strong> with two major differences.
  
  First, when connecting, the function would first try to find a (persistent) link that's already
  open with the same host, port, dbname and userid. If one is found, an identifier for it will be
  returned instead of opening a new connection.
  
  Second, the connection to the SQL server will not be closed when the execution of the script ends.
  Instead, the link will remain open for future use (<strong>cubrid_close()</strong> or <strong>cubrid_disconnect()</strong> will not
  close links established by <strong>cubrid_pconnect()</strong>).
  
  This type of link is therefore called 'persistent'.

<comment>Param:</comment>
  <info>string</info>  <strong>$host</strong>    Host name or IP address of CUBRID CAS server.
  <info>int</info>     <strong>$port</strong>    Port number of CUBRID CAS server (BROKER_PORT configured in
                   $CUBRID/conf/cubrid_broker.conf).
  <info>string</info>  <strong>$dbname</strong>  Name of database.
  <info>string</info>  <strong>$userid</strong>  User name for the database.
  <info>string</info>  <strong>$passwd</strong>  User password.

<comment>Return:</comment>
  <info>resource</info>  Connection identifier, when process is successful, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_connect()</strong>
   * <strong>cubrid_connect_with_url()</strong>
   * <strong>cubrid_pconnect_with_url()</strong>
   * <strong>cubrid_disconnect()</strong>
   * <strong>cubrid_close()</strong>


id: cubrid_pconnect_with_url
type: function
doc:
<comment>Description:</comment>
  Open a persistent connection to CUBRID server
  
  Establishes a persistent connection to a CUBRID server.
  
  <strong>cubrid_pconnect_with_url()</strong> acts very much like <strong>cubrid_connect_with_url()</strong> with two major
  differences.
  
  First, when connecting, the function would first try to find a (persistent) link that's already
  open with the same host, port, dbname and userid. If one is found, an identifier for it will be
  returned instead of opening a new connection.
  
  Second, the connection to the SQL server will not be closed when the execution of the script ends.
  Instead, the link will remain open for future use (<strong>cubrid_close()</strong> or <strong>cubrid_disconnect()</strong> will not
  close links established by <strong>cubrid_pconnect_with_url()</strong>).
  
  This type of link is therefore called 'persistent'.
  
  \<url&gt; ::= CUBRID:\<host&gt;:\<db_name&gt;:\<db_user&gt;:\<db_password&gt;:[?\<properties&gt;]
  
  \<properties&gt; ::= \<property&gt; [&\<property&gt;]
  
  \<properties&gt; ::= alhosts=\<alternative_hosts&gt;[ &rctime=\<time&gt;]
  
  \<properties&gt; ::= login_timeout=\<milli_sec&gt;
  
  \<properties&gt; ::= query_timeout=\<milli_sec&gt;
  
  \<properties&gt; ::= disconnect_on_query_timeout=true|false
  
  \<alternative_hosts&gt; ::= \<standby_broker1_host&gt;:\<port&gt; [,\<standby_broker2_host&gt;:\<port&gt;]
  
  \<host&gt; := HOSTNAME | IP_ADDR
  
  \<time&gt; := SECOND
  
  \<milli_sec&gt; := MILLI SECOND
  
  host : A host name or IP address of the master databasedb_name : A name of the databasedb_user : A
  name of the database userdb_password : A database user password alhosts : Specifies the broker
  information of the standby server, which is used for failover when it is impossible to connect to
  the active server.  You can specify multiple brokers for failover, and the connection to the
  brokers is attempted in the order listed in alhosts rctime : An interval between the attempts to
  connect to the active broker in which failure occurred. After a failure occurs, the system
  connects to the  broker specified by althosts (failover), terminates the transaction, and then
  attempts to connect to the active broker of the master database at every rctime.  The default
  value is 600 seconds. login_timeout : Timeout value (unit: msec.) for database login. The default
  value is 0, which means infinite postponement.  query_timeout : Timeout value (unit: msec.) for
  query request. Upon timeout, a message to cancel requesting a query transferred to server is sent.
  The return  value can depend on the disconnect_on_query_timeout configuration; even though the
  message to cancel a request is sent to server, that request may succeed.
  disconnect_on_query_timeout : Configures a value whether to immediately return an error of
  function being executed upon timeout. The default value is false.
  
  <return>?</return> and <return>:</return> that are used as identifiers in PHP connection URL can't be included in the password. The
  following is an example of a password that is invalid to use as connection URL because it contains
  "<return>?:</return>".
  
  $url = "CUBRID:localhost:33000:tdb:dba:12?:?login_timeout=100";
  
  Passwords that contain <return>?</return> or <return>:</return> may be passed as a separate parameter.
  
  $url = "CUBRID:localhost:33000:tbd:::?login_timeout=100";
  
  $conn = cubrid_pconnect_with_url ($url, "dba", "12?");
  
  If user or password is empty,you can't delete "<return>:</return>",the following is an example.
  
  $url = "CUBRID:localhost:33000:demodb:::";

<comment>Param:</comment>
  <info>string</info>  <strong>$conn_url</strong>  A character string that contains server connection information.
  <info>string</info>  <strong>$userid</strong>    User name for the database.
  <info>string</info>  <strong>$passwd</strong>    User password.

<comment>Return:</comment>
  <info>resource</info>  Connection identifier, when process is successful, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_connect()</strong>
   * <strong>cubrid_connect_with_url()</strong>
   * <strong>cubrid_pconnect()</strong>
   * <strong>cubrid_disconnect()</strong>
   * <strong>cubrid_close()</strong>


id: cubrid_ping
type: function
doc:
<comment>Description:</comment>
  Ping a server connection or reconnect if there is no connection
  
  Checks whether or not the connection to the server is working.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  The CUBRID connection identifier. If the connection identifier is not
                              specified, the last connection opened by <strong>cubrid_connect()</strong> is assumed.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the connection to the server CUBRID server is working, otherwise <info>false</info>.


id: cubrid_prepare
type: function
doc:
<comment>Description:</comment>
  Prepare a SQL statement for execution
  
  The <strong>cubrid_prepare()</strong> function is a sort of API which represents SQL statements  compiled
  previously to a given connection handle. This pre-compiled SQL statement will be included  in the
  <strong>cubrid_prepare()</strong>.
  
  Accordingly, you can use this statement effectively to execute several times repeatedly or to
  process long data. Only a single statement can be used and a parameter may put a question mark (?)
  to appropriate area in the SQL statement. Add a parameter when you bind a value in the VALUES
  clause of INSERT statement or in the WHERE clause. Note that it is allowed to bind a value to a
  MARK(?) by using the <strong>cubrid_bind()</strong> function only.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$prepare_stmt</strong>     Prepare query.
  <info>int</info>       <strong>$option</strong>           OID return option <info>CUBRID_INCLUDE_OID</info>.

<comment>Return:</comment>
  <info>resource</info>  Request identifier, if process is successful, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_execute()</strong>
   * <strong>cubrid_bind()</strong>


id: cubrid_put
type: function
doc:
<comment>Description:</comment>
  Update a column using OID
  
  The <strong>cubrid_put()</strong> function is used to update an attribute of the instance of the given <strong>$oid</strong>.
  
  You can update single attribute by using string data type to set <strong>$attr</strong>.  In such case, you can use
  integer, floating point or string type data for the <strong>$value</strong> argument. To update multiple number of
  attributes, you can disregard the <strong>$attr</strong> argument, and set <strong>$value</strong> argument with associative array
  data type.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$oid</strong>              OID of the instance that you want to update.
  <info>string</info>    <strong>$attr</strong>             Name of the attribute that you want to update.
  <info>mixed</info>     <strong>$value</strong>            New value that you want to assign to the attribute.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_get()</strong>
   * <strong>cubrid_set_add()</strong>
   * <strong>cubrid_set_drop()</strong>
   * <strong>cubrid_seq_insert()</strong>
   * <strong>cubrid_seq_drop()</strong>
   * <strong>cubrid_seq_put()</strong>


id: cubrid_query
type: function
doc:
<comment>Description:</comment>
  Send a CUBRID query
  
  <strong>cubrid_query()</strong> sends a unique query (multiple queries are not supported) to the  currently active
  database on the server that's associated with the specified <strong>$conn_identifier</strong>.

<comment>Param:</comment>
  <info>string</info>    <strong>$query</strong>            An SQL query
                              
                              Data inside the query should be properly escaped.
  <info>resource</info>  <strong>$conn_identifier</strong>  The CUBRID connection. If the connection identifier is not specified,
                              the last connection opened by <strong>cubrid_connect()</strong> is assumed.

<comment>Return:</comment>
  <info>resource</info>  For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset,
            <strong>cubrid_query()</strong> returns a <info>resource</info> on success, or <info>false</info> on error.
            
            For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, <strong>cubrid_query()</strong>
            returns <info>true</info> on success or <info>false</info> on error.
            
            The returned result resource should be passed to <strong>cubrid_fetch_array()</strong>, and other
            functions for dealing with result tables, to access the returned data.
            
            Use <strong>cubrid_num_rows()</strong> to find out how many rows were returned for a SELECT statement or
            <strong>cubrid_affected_rows()</strong> to find out how many rows were affected by a DELETE, INSERT,
            REPLACE, or UPDATE statement.
            
            <strong>cubrid_query()</strong> will also fail and return <info>false</info> if the user does not have permission to
            access the table(s) referenced by the query.

<comment>See Also:</comment>
   * <strong>cubrid_connect()</strong>
   * <strong>cubrid_error()</strong>
   * <strong>cubrid_real_escape_string()</strong>
   * <strong>cubrid_result()</strong>
   * <strong>cubrid_fetch_assoc()</strong>
   * <strong>cubrid_unbuffered_query()</strong>


id: cubrid_real_escape_string
type: function
doc:
<comment>Description:</comment>
  Escape special characters in a string for use in an SQL statement
  
  This function returns the escaped string version of the given string. It will escape the following
  characters: <info>'</info>.
   In general, single quotations are used to enclose character string. Double quotations may be used
  as well depending on the value of ansi_quotes, which is a parameter related to SQL statement. If
  the ansi_quotes value is set to no, character string enclosed by double quotations is handled as
  character string, not as an identifier. The default value is yes.
   If you want to include a single quote as part of a character string, enter two single quotes in a
  row.

<comment>Param:</comment>
  <info>string</info>    <strong>$unescaped_string</strong>  The string that is to be escaped.
  <info>resource</info>  <strong>$conn_identifier</strong>   The CUBRID connection. If the connection identifier is not specified,
                               the last connection opened by <strong>cubrid_connect()</strong> is assumed.

<comment>Return:</comment>
  <info>string</info>  Escaped string version of the given string, on success.
          
          <info>false</info> on failure.


id: cubrid_result
type: function
doc:
<comment>Description:</comment>
  Return the value of a specific field in a specific row
  
  This function returns the value of a specific field in a specific row from a result set.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  <strong>$result</strong> comes from a call to <strong>cubrid_execute()</strong>
  <info>int</info>       <strong>$row</strong>     The row number from the result that is being retrieved. Row numbers start at 0.
  <info>mixed</info>     <strong>$field</strong>   The name or offset of the <strong>$field</strong> being retrieved. It can be the field's offset,
                     the field's name, or the field's table dot field name (tablename.fieldname). If
                     the column name has been aliased ('select foo as bar from...'), use the alias
                     instead of the column name. If undefined, the first field is retrieved.

<comment>Return:</comment>
  <info>string</info>  Value of a specific field, on success (NULL if value if null).
          
          <info>false</info> on failure.


id: cubrid_rollback
type: function
doc:
<comment>Description:</comment>
  Roll back a transaction
  
  The <strong>cubrid_rollback()</strong> function executes rollback on the transaction pointed by <strong>$conn_identifier</strong>,
  currently in progress.
  
  Connection to server is closed after calling <strong>cubrid_rollback()</strong>. Connection handle, however, is
  still valid.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_commit()</strong>
   * <strong>cubrid_disconnect()</strong>


id: cubrid_save_to_glo
type: function
doc:
<comment>Description:</comment>
  Save requested file in a GLO instance
  
  The <strong>cubrid_save_to_glo()</strong> function is used to save requested file in a glo instance.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$oid</strong>              Oid of the glo instance that you want to save a file in.
  <info>string</info>    <strong>$file_name</strong>        The name of the file that you want to save.

<comment>Return:</comment>
  <info>int</info>  <info>true</info>, when process is successful.
       
       <info>false</info>, when process is unsuccessful.

<comment>See Also:</comment>
   * <strong>cubrid_new_glo()</strong>
   * <strong>cubrid_load_from_glo()</strong>
   * <strong>cubrid_send_glo()</strong>


id: cubrid_schema
type: function
doc:
<comment>Description:</comment>
  Get the requested schema information
  
  The <strong>cubrid_schema()</strong> function is used to get the requested schema information from database. To get
  information about specific class, set the <strong>$class_name</strong>, to get information about specific attribute
  (can be used only with <info>CUBRID_SCH_ATTR_PRIVILEGE</info>), set the <strong>$attr_name</strong>.
  
  The result of the <strong>cubrid_schema()</strong> function is returned as a two-dimensional array (column
  (associative array) * row (numeric array)). The following tables shows types of schema and the
  column structure of the result array to be returned based on the schema type.
  
  Result Composition of Each TypeSchemaColumn NumberColumn
  NameValueCUBRID_SCH_CLASS1NAME2TYPE0:system class 1:vclass
  2:classCUBRID_SCH_VCLASS1NAME2TYPE1:vclassCUBRID_SCH_QUERY_SPEC1QUERY_SPECCUBRID_SCH_ATTRIBUTE /
  CUBRID_SCH_CLASS_ATTRIBUTE1ATTR_NAME2DOMAIN3SCALE4PRECISION5INDEXED1:indexed6NOT NULL1:not
  null7SHARED1:shared8UNIQUE1:unique9DEFAULT10ATTR_ORDERbase:111CLASS_NAME12SOURCE_CLASS13IS_KEY1:keyCUBRID_SCH_METHOD
  /
  CUBRID_SCH_CLASS_METHOD1NAME2RET_DOMAIN3ARG_DOMAINCUBRID_SCH_METHOD_FILE1METHOD_FILECUBRID_SCH_SUPERCLASS
  / CUBRID_SCH_DIRECT_SUPER_CLASS / CUBRID_SCH_SUBCLASS1CLASS_NAME2TYPE0:system class 1:vclass
  2:classCUBRID_SCH_CONSTRAINT1TYPE0:unique 1:index 2:reverse unique 3:reverse
  index2NAME3ATTR_NAME4NUM_PAGES5NUM_KEYS6PRIMARY_KEY1:primary
  key7KEY_ORDERbase:1CUBRID_SCH_TRIGGER1NAME2STATUS3EVENT4TARGET_CLASS5TARGET_ATTR6ACTION_TIME7ACTION8PRIORITY9CONDITION_TIME10CONDITIONCUBRID_SCH_CLASS_PRIVILEGE
  / CUBRID_SCH_ATTR_PRIVILEGE1CLASS_NAME /
  ATTR_NAME2PRIVILEGE3GRANTABLECUBRID_SCH_PRIMARY_KEY1CLASS_NAME2ATTR_NAME3KEY_SEQbase:14KEY_NAMECUBRID_SCH_IMPORTED_KEYS
  / CUBRID_SCH_EXPORTED_KEYS /
  CUBRID_SCH_CROSS_REFERENCE1PKTABLE_NAME2PKCOLUMN_NAME3FKTABLE_NAMEbase:14FKCOLUMN_NAME5KEY_SEQbase:16UPDATE_ACTION0:cascade
  1:restrict 2:no action 3:set null7DELETE_ACTION0:cascade 1:restrict 2:no action 3:set
  null8FK_NAME9PK_NAME

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>int</info>       <strong>$schema_type</strong>      Schema data that you want to know.
  <info>string</info>    <strong>$class_name</strong>       Class you want to know the schema of.
  <info>string</info>    <strong>$attr_name</strong>        Attribute you want to know the schema of.

<comment>Return:</comment>
  <info>array</info>  Array containing the schema information, when process is successful, or <info>false</info> on failure.


id: cubrid_send_glo
type: function
doc:
<comment>Description:</comment>
  Read data from glo and send it to std output
  
  The <strong>cubrid_send_glo()</strong> function is used to read data from glo instance and sends it to the PHP
  standard output.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$oid</strong>              Oid of the glo instance that you want to read data from.

<comment>Return:</comment>
  <info>int</info>  <info>true</info>, when process is successful.
       
       <info>false</info>, when process is unsuccessful.

<comment>See Also:</comment>
   * <strong>cubrid_new_glo()</strong>
   * <strong>cubrid_save_to_glo()</strong>
   * <strong>cubrid_load_from_glo()</strong>


id: cubrid_seq_drop
type: function
doc:
<comment>Description:</comment>
  Delete an element from sequence type column using OID
  
  The <strong>cubrid_seq_drop()</strong> function is used to delete an element you request from the given sequence
  type attribute in the database.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$oid</strong>              OID of the instance you want to work with.
  <info>string</info>    <strong>$attr_name</strong>        Name of the attribute that you want to delete an element from.
  <info>int</info>       <strong>$index</strong>            Index of the element that you want to delete (1-based).

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_seq_insert()</strong>
   * <strong>cubrid_seq_put()</strong>


id: cubrid_seq_insert
type: function
doc:
<comment>Description:</comment>
  Insert an element to a sequence type column using OID
  
  The <strong>cubrid_col_insert()</strong> function is used to insert an element to a sequence type attribute in a
  requested location.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$oid</strong>              OID of the instance you want to work with.
  <info>string</info>    <strong>$attr_name</strong>        Name of the attribute you want to insert an instance to.
  <info>int</info>       <strong>$index</strong>            Location of the element, you want to insert the element to (1-based).
  <info>string</info>    <strong>$seq_element</strong>      Content of the element that you want to insert.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_seq_drop()</strong>
   * <strong>cubrid_seq_put()</strong>


id: cubrid_seq_put
type: function
doc:
<comment>Description:</comment>
  Update the element value of sequence type column using OID
  
  The <strong>cubrid_seq_put()</strong> function is used to update the content of the requested element in a sequent
  type attribute using OID.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$oid</strong>              OID of the instance you want to work with.
  <info>string</info>    <strong>$attr_name</strong>        Name of the attribute that you want to update an element.
  <info>int</info>       <strong>$index</strong>            Index (1-based) of the element that you want to update.
  <info>string</info>    <strong>$seq_element</strong>      New content that you want to use for the update.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_seq_drop()</strong>
   * <strong>cubrid_seq_insert()</strong>


id: cubrid_set_add
type: function
doc:
<comment>Description:</comment>
  Insert a single element to set type column using OID
  
  The <strong>cubrid_set_add()</strong> function is used to insert a single element to a set type attribute (set,
  multiset, sequence) you requested.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$oid</strong>              OID of the instance you want to work with.
  <info>string</info>    <strong>$attr_name</strong>        Name of the attribute you want to insert an element.
  <info>string</info>    <strong>$set_element</strong>      Content of the element you want to insert.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

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


id: cubrid_set_autocommit
type: function
doc:
<comment>Description:</comment>
  Set autocommit mode of the connection
  
  The <strong>cubrid_set_autocommit()</strong> function is used to set the CUBRID database auto-commit mode of the
  current database connection.
  
  In CUBRID PHP, auto-commit mode is disabled by default for transaction management. When
  auto-commit mode is truned from off to on, any pending work is automatically committed.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>bool</info>      <strong>$mode</strong>             Auto-commit mode. The following constants can be used:
                              
                              <info>CUBRID_AUTOCOMMIT_FALSE</info><info>CUBRID_AUTOCOMMIT_TRUE</info>

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_get_autocommit()</strong>
   * <strong>cubrid_commit()</strong>


id: cubrid_set_db_parameter
type: function
doc:
<comment>Description:</comment>
  Sets the CUBRID database parameters
  
  The <strong>cubrid_set_db_parameter()</strong> function is used to set the CUBRID database parameters. It can set
  the following CUBRID database parameters:
  
  <info>PARAM_ISOLATION_LEVEL</info><info>PARAM_LOCK_TIMEOUT</info>
  
  The auto-commit mode can be set by using <strong>cubrid_set_autocommit()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  The CUBRID connection. If the connection identifier is not specified,
                              the last link opened by <strong>cubrid_connect()</strong> is assumed.
  <info>int</info>       <strong>$param_type</strong>       Database parameter type.
  <info>int</info>       <strong>$param_value</strong>      Isolation level value (1-6) or lock timeout (in seconds) value.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>cubrid_get_db_parameter()</strong>
   * <strong>cubrid_set_autocommit()</strong>


id: cubrid_set_drop
type: function
doc:
<comment>Description:</comment>
  Delete an element from set type column using OID
  
  The <strong>cubrid_set_drop()</strong> function is used to delete an element that you request from the given set
  type (set, multiset) attribute of the database.

<comment>Param:</comment>
  <info>resource</info>  <strong>$conn_identifier</strong>  Connection identifier.
  <info>string</info>    <strong>$oid</strong>              OID of the instance you want to work with.
  <info>string</info>    <strong>$attr_name</strong>        Name of the attribute you want to delete an element from.
  <info>string</info>    <strong>$set_element</strong>      Content of the element you want to delete.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

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


id: cubrid_set_query_timeout
type: function
doc:
<comment>Description:</comment>
  Set the timeout time of query execution
  
  The <strong>cubrid_set_query_timeout()</strong> function is used to set the timeout time of query execution.

<comment>Param:</comment>
  <info>resource</info>  <strong>$req_identifier</strong>  Request identifier.
  <info>int</info>       <strong>$timeout</strong>         Timeout time in milliseconds.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

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


id: cubrid_unbuffered_query
type: function
doc:
<comment>Description:</comment>
  Perform a query without fetching the results into memory
  
  This function performs a query without waiting for that all query results have been complete. It
  will return  when the results are being generated.

<comment>Param:</comment>
  <info>string</info>    <strong>$query</strong>            A SQL query.
  <info>resource</info>  <strong>$conn_identifier</strong>  The CUBRID connection. If the connection identifier is not specified,
                              the last connection opened by <strong>cubrid_connect()</strong> is assumed.

<comment>Return:</comment>
  <info>resource</info>  For SELECT, SHOW, DESCRIBE or EXPLAIN statements returns a request identifier resource
            on success.
            
            For other type of SQL statements, UPDATE, DELETE, DROP, etc, returns <info>true</info> on success.
            
            <info>false</info> on failure.


id: cubrid_version
type: function
doc:
<comment>Description:</comment>
  Get the CUBRID PHP module's version
  
  The <strong>cubrid_version()</strong> function is used to get the CUBRID PHP module's version.

<comment>Return:</comment>
  <info>string</info>  Version information (eg. "8.3.1.0001").

<comment>See Also:</comment>
   * <strong>cubrid_error_code()</strong>
   * <strong>cubrid_error_code_facility()</strong>


id: curl_close
type: function
doc:
<comment>Description:</comment>
  Close a cURL session
  
  This function has no effect. Prior to PHP 8.0.0, this function was used to close the resource.
  
  Closes a cURL session and frees all resources.  The cURL handle, <strong>$handle</strong>, is also deleted.

<comment>Param:</comment>
  <info>CurlHandle</info>  <strong>$handle</strong>  A cURL handle returned by
                       <strong>curl_init()</strong>.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>curl_init()</strong>
   * <strong>curl_multi_close()</strong>


id: curl_copy_handle
type: function
doc:
<comment>Description:</comment>
  Copy a cURL handle along with all of its preferences
  
  Copies a cURL handle keeping the same preferences.

<comment>Param:</comment>
  <info>CurlHandle</info>  <strong>$handle</strong>  A cURL handle returned by
                       <strong>curl_init()</strong>.

<comment>Return:</comment>
  <info>CurlHandle|false</info>  Returns a new cURL handle,  or <info>false</info> on failure.


id: curl_errno
type: function
doc:
<comment>Description:</comment>
  Return the last error number
  
  Returns the error number for the last cURL operation.

<comment>Param:</comment>
  <info>CurlHandle</info>  <strong>$handle</strong>  A cURL handle returned by
                       <strong>curl_init()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the error number or <return>0</return> (zero) if no error occurred.

<comment>See Also:</comment>
   * <strong>curl_error()</strong>
   * Curl error codes


id: curl_error
type: function
doc:
<comment>Description:</comment>
  Return a string containing the last error for the current session
  
  Returns a clear text error message for the last cURL operation.

<comment>Param:</comment>
  <info>CurlHandle</info>  <strong>$handle</strong>  A cURL handle returned by
                       <strong>curl_init()</strong>.

<comment>Return:</comment>
  <info>string</info>  Returns the error message or <return>''</return> (the empty string) if no error occurred.

<comment>See Also:</comment>
   * <strong>curl_errno()</strong>
   * Curl error codes


id: curl_escape
type: function
doc:
<comment>Description:</comment>
  URL encodes the given string
  
  This function URL encodes the given string according to RFC 3986.

<comment>Param:</comment>
  <info>CurlHandle</info>  <strong>$handle</strong>  A cURL handle returned by
                       <strong>curl_init()</strong>.
  <info>string</info>      <strong>$string</strong>  The string to be encoded.

<comment>Return:</comment>
  <info>string|false</info>  Returns escaped string or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>curl_unescape()</strong>
   * <strong>urlencode()</strong>
   * <strong>rawurlencode()</strong>
   * RFC 3986


id: curl_exec
type: function
doc:
<comment>Description:</comment>
  Perform a cURL session
  
  Execute the given cURL session.
  
  This function should be called after initializing a cURL session and all the options for the
  session are set.

<comment>Param:</comment>
  <info>CurlHandle</info>  <strong>$handle</strong>  A cURL handle returned by
                       <strong>curl_init()</strong>.

<comment>Return:</comment>
  <info>string|bool</info>  Returns <info>true</info> on success or <info>false</info> on failure. However, if the <info>CURLOPT_RETURNTRANSFER</info>
               option is set, it will return the result on success, <info>false</info> on failure.
               
               This function may
               return Boolean <info>false</info>, but may also return a non-Boolean value which
               evaluates to <info>false</info>. Please read the section on Booleans for more
               information. Use the ===
               operator for testing the return value of this
               function.
               
               Note that response status codes which indicate errors (such as <return>404 Not found</return>) are not
               regarded as failure. <strong>curl_getinfo()</strong> can be used to check for these.

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


id: curl_getinfo
type: function
doc:
<comment>Description:</comment>
  Get information regarding a specific transfer
  
  Gets information about the last transfer.

<comment>Param:</comment>
  <info>CurlHandle</info>  <strong>$handle</strong>  A cURL handle returned by
                       <strong>curl_init()</strong>.
  <info>int|null</info>    <strong>$option</strong>  This may be one of the following constants: <info>CURLINFO_EFFECTIVE_URL</info> - Last
                       effective URL <info>CURLINFO_HTTP_CODE</info> -  The last response code. As of cURL
                       7.10.8, this is a legacy alias of <info>CURLINFO_RESPONSE_CODE</info> <info>CURLINFO_FILETIME</info> -
                       Remote time of the retrieved document, with the <info>CURLOPT_FILETIME</info> enabled; if
                       -1 is returned the time of the document is unknown <info>CURLINFO_TOTAL_TIME</info> -
                       Total transaction time in seconds for last transfer <info>CURLINFO_NAMELOOKUP_TIME</info>
                       - Time in seconds until name resolving was complete <info>CURLINFO_CONNECT_TIME</info> -
                       Time in seconds it took to establish the connection <info>CURLINFO_PRETRANSFER_TIME</info>
                       - Time in seconds from start until just before file transfer begins
                       <info>CURLINFO_STARTTRANSFER_TIME</info> - Time in seconds until the first byte is about
                       to be transferred <info>CURLINFO_REDIRECT_COUNT</info> - Number of redirects, with the
                       <info>CURLOPT_FOLLOWLOCATION</info> option enabled <info>CURLINFO_REDIRECT_TIME</info> - Time in
                       seconds of all redirection steps before final transaction was started, with
                       the <info>CURLOPT_FOLLOWLOCATION</info> option enabled <info>CURLINFO_REDIRECT_URL</info> - With the
                       <info>CURLOPT_FOLLOWLOCATION</info> option disabled: redirect URL found in the last
                       transaction, that should be requested manually next. With the
                       <info>CURLOPT_FOLLOWLOCATION</info> option enabled: this is empty. The redirect URL in
                       this case is available in <info>CURLINFO_EFFECTIVE_URL</info>  <info>CURLINFO_PRIMARY_IP</info> - IP
                       address of the most recent connection <info>CURLINFO_PRIMARY_PORT</info> - Destination
                       port of the most recent connection <info>CURLINFO_LOCAL_IP</info> - Local (source) IP
                       address of the most recent connection <info>CURLINFO_LOCAL_PORT</info> - Local (source)
                       port of the most recent connection <info>CURLINFO_SIZE_UPLOAD</info> - Total number of
                       bytes uploaded <info>CURLINFO_SIZE_DOWNLOAD</info> - Total number of bytes downloaded
                       <info>CURLINFO_SPEED_DOWNLOAD</info> - Average download speed <info>CURLINFO_SPEED_UPLOAD</info> -
                       Average upload speed <info>CURLINFO_HEADER_SIZE</info> - Total size of all headers
                       received <info>CURLINFO_HEADER_OUT</info> - The request string sent. For this to  work,
                       add the <info>CURLINFO_HEADER_OUT</info> option to the handle by calling  <strong>curl_setopt()</strong>
                       <info>CURLINFO_REFERER</info> - The referrer header <info>CURLINFO_REQUEST_SIZE</info> - Total size of
                       issued requests, currently only for HTTP requests <info>CURLINFO_RETRY_AFTER</info> - The
                       information from the <return>Retry-After:</return> header, or zero if there was no valid
                       header. <info>CURLINFO_SSL_VERIFYRESULT</info> - Result of SSL certification verification
                       requested by setting <info>CURLOPT_SSL_VERIFYPEER</info> <info>CURLINFO_CONTENT_LENGTH_DOWNLOAD</info>
                       - Content length of download, read from <return>Content-Length:</return> field
                       <info>CURLINFO_CONTENT_LENGTH_UPLOAD</info> - Specified size of upload
                       <info>CURLINFO_CONTENT_TYPE</info> - <return>Content-Type:</return> of the requested document. NULL
                       indicates server did not send valid <return>Content-Type:</return> header <info>CURLINFO_PRIVATE</info> -
                       Private data associated with this cURL handle, previously set with the
                       <info>CURLOPT_PRIVATE</info> option of <strong>curl_setopt()</strong> <info>CURLINFO_PROXY_ERROR</info> - The detailed
                       (SOCKS) proxy error code when the most recent transfer returned a <info>CURLE_PROXY</info>
                       error. The returned value will be exactly one of the <info>CURLPX_*</info> values. The
                       error code will be <info>CURLPX_OK</info> if no response code was available.
                       <info>CURLINFO_RESPONSE_CODE</info> - The last response code <info>CURLINFO_HTTP_CONNECTCODE</info> -
                       The CONNECT response code <info>CURLINFO_HTTPAUTH_AVAIL</info> - Bitmask indicating the
                       authentication method(s) available according to the previous response
                       <info>CURLINFO_PROXYAUTH_AVAIL</info> - Bitmask indicating the proxy authentication
                       method(s) available according to the previous response <info>CURLINFO_OS_ERRNO</info> -
                       Errno from a connect failure. The number is OS and system specific.
                       <info>CURLINFO_NUM_CONNECTS</info> - Number of connections curl had to create to achieve
                       the previous transfer <info>CURLINFO_SSL_ENGINES</info> - OpenSSL crypto-engines supported
                       <info>CURLINFO_COOKIELIST</info> - All known cookies <info>CURLINFO_FTP_ENTRY_PATH</info> - Entry path
                       in FTP server <info>CURLINFO_APPCONNECT_TIME</info> - Time in seconds it took from the
                       start until the SSL/SSH connect/handshake to the remote host was completed
                       <info>CURLINFO_CERTINFO</info> - TLS certificate chain <info>CURLINFO_CONDITION_UNMET</info> - Info on
                       unmet time conditional <info>CURLINFO_RTSP_CLIENT_CSEQ</info> - Next RTSP client CSeq
                       <info>CURLINFO_RTSP_CSEQ_RECV</info> - Recently received CSeq <info>CURLINFO_RTSP_SERVER_CSEQ</info> -
                       Next RTSP server CSeq <info>CURLINFO_RTSP_SESSION_ID</info> - RTSP session ID
                       <info>CURLINFO_CONTENT_LENGTH_DOWNLOAD_T</info> - The content-length of the download. This
                       is the value read from the <return>Content-Length:</return> field. -1 if the size isn't known
                       <info>CURLINFO_CONTENT_LENGTH_UPLOAD_T</info> - The specified size of the upload. -1 if
                       the size isn't known <info>CURLINFO_HTTP_VERSION</info> - The version used in the last
                       HTTP connection. The return value will be one of the defined
                       <info>CURL_HTTP_VERSION_*</info> constants or 0 if the version can't be determined
                       <info>CURLINFO_PROTOCOL</info> - The protocol used in the last HTTP connection. The
                       returned value will be exactly one of the <info>CURLPROTO_*</info> values
                       <info>CURLINFO_PROXY_SSL_VERIFYRESULT</info> - The result of the certificate verification
                       that was requested (using the <info>CURLOPT_PROXY_SSL_VERIFYPEER</info> option). Only used
                       for HTTPS proxies <info>CURLINFO_SCHEME</info> - The URL scheme used for the most recent
                       connection <info>CURLINFO_SIZE_DOWNLOAD_T</info> - Total number of bytes that were
                       downloaded. The number is only for the latest transfer and will be reset
                       again for each new transfer <info>CURLINFO_SIZE_UPLOAD_T</info> - Total number of bytes
                       that were uploaded <info>CURLINFO_SPEED_DOWNLOAD_T</info> - The average download speed in
                       bytes/second that curl measured for the complete download
                       <info>CURLINFO_SPEED_UPLOAD_T</info> - The average upload speed in bytes/second that curl
                       measured for the complete upload  <info>CURLINFO_APPCONNECT_TIME_T</info> - Time, in
                       microseconds, it took from the start until the SSL/SSH connect/handshake to
                       the remote host was completed <info>CURLINFO_CONNECT_TIME_T</info> - Total time taken, in
                       microseconds, from the start until the connection to the remote host (or
                       proxy) was completed <info>CURLINFO_FILETIME_T</info> - Remote time of the retrieved
                       document (as Unix timestamp), an alternative to <info>CURLINFO_FILETIME</info> to allow
                       systems with 32 bit long variables to extract dates outside of the 32bit
                       timestamp range <info>CURLINFO_NAMELOOKUP_TIME_T</info> - Time in microseconds from the
                       start until the name resolving was completed <info>CURLINFO_PRETRANSFER_TIME_T</info> -
                       Time taken from the start until the file transfer is just about to begin, in
                       microseconds <info>CURLINFO_REDIRECT_TIME_T</info> - Total time, in microseconds, it took
                       for all redirection steps include name lookup, connect, pretransfer and
                       transfer before final transaction was started <info>CURLINFO_STARTTRANSFER_TIME_T</info> -
                       Time, in microseconds, it took from the start until the first byte is
                       received <info>CURLINFO_TOTAL_TIME_T</info> - Total time in microseconds for the previous
                       transfer, including name resolving, TCP connect etc.
                       
                       <info>CURLINFO_EFFECTIVE_URL</info> - Last effective URL
                       
                       <info>CURLINFO_HTTP_CODE</info> -  The last response code. As of cURL 7.10.8, this is a
                       legacy alias of <info>CURLINFO_RESPONSE_CODE</info>
                       
                       <info>CURLINFO_FILETIME</info> - Remote time of the retrieved document, with the
                       <info>CURLOPT_FILETIME</info> enabled; if -1 is returned the time of the document is
                       unknown
                       
                       <info>CURLINFO_TOTAL_TIME</info> - Total transaction time in seconds for last transfer
                       
                       <info>CURLINFO_NAMELOOKUP_TIME</info> - Time in seconds until name resolving was complete
                       
                       <info>CURLINFO_CONNECT_TIME</info> - Time in seconds it took to establish the connection
                       
                       <info>CURLINFO_PRETRANSFER_TIME</info> - Time in seconds from start until just before file
                       transfer begins
                       
                       <info>CURLINFO_STARTTRANSFER_TIME</info> - Time in seconds until the first byte is about
                       to be transferred
                       
                       <info>CURLINFO_REDIRECT_COUNT</info> - Number of redirects, with the
                       <info>CURLOPT_FOLLOWLOCATION</info> option enabled
                       
                       <info>CURLINFO_REDIRECT_TIME</info> - Time in seconds of all redirection steps before
                       final transaction was started, with the <info>CURLOPT_FOLLOWLOCATION</info> option enabled
                       
                       <info>CURLINFO_REDIRECT_URL</info> - With the <info>CURLOPT_FOLLOWLOCATION</info> option disabled:
                       redirect URL found in the last transaction, that should be requested manually
                       next. With the <info>CURLOPT_FOLLOWLOCATION</info> option enabled: this is empty. The
                       redirect URL in this case is available in <info>CURLINFO_EFFECTIVE_URL</info>
                       
                       <info>CURLINFO_PRIMARY_IP</info> - IP address of the most recent connection
                       
                       <info>CURLINFO_PRIMARY_PORT</info> - Destination port of the most recent connection
                       
                       <info>CURLINFO_LOCAL_IP</info> - Local (source) IP address of the most recent connection
                       
                       <info>CURLINFO_LOCAL_PORT</info> - Local (source) port of the most recent connection
                       
                       <info>CURLINFO_SIZE_UPLOAD</info> - Total number of bytes uploaded
                       
                       <info>CURLINFO_SIZE_DOWNLOAD</info> - Total number of bytes downloaded
                       
                       <info>CURLINFO_SPEED_DOWNLOAD</info> - Average download speed
                       
                       <info>CURLINFO_SPEED_UPLOAD</info> - Average upload speed
                       
                       <info>CURLINFO_HEADER_SIZE</info> - Total size of all headers received
                       
                       <info>CURLINFO_HEADER_OUT</info> - The request string sent. For this to  work, add the
                       <info>CURLINFO_HEADER_OUT</info> option to the handle by calling  <strong>curl_setopt()</strong>
                       
                       <info>CURLINFO_REFERER</info> - The referrer header
                       
                       <info>CURLINFO_REQUEST_SIZE</info> - Total size of issued requests, currently only for
                       HTTP requests
                       
                       <info>CURLINFO_RETRY_AFTER</info> - The information from the <return>Retry-After:</return> header, or zero
                       if there was no valid header.
                       
                       <info>CURLINFO_SSL_VERIFYRESULT</info> - Result of SSL certification verification
                       requested by setting <info>CURLOPT_SSL_VERIFYPEER</info>
                       
                       <info>CURLINFO_CONTENT_LENGTH_DOWNLOAD</info> - Content length of download, read from
                       <return>Content-Length:</return> field
                       
                       <info>CURLINFO_CONTENT_LENGTH_UPLOAD</info> - Specified size of upload
                       
                       <info>CURLINFO_CONTENT_TYPE</info> - <return>Content-Type:</return> of the requested document. NULL
                       indicates server did not send valid <return>Content-Type:</return> header
                       
                       <info>CURLINFO_PRIVATE</info> - Private data associated with this cURL handle, previously
                       set with the <info>CURLOPT_PRIVATE</info> option of <strong>curl_setopt()</strong>
                       
                       <info>CURLINFO_PROXY_ERROR</info> - The detailed (SOCKS) proxy error code when the most
                       recent transfer returned a <info>CURLE_PROXY</info> error. The returned value will be
                       exactly one of the <info>CURLPX_*</info> values. The error code will be <info>CURLPX_OK</info> if no
                       response code was available.
                       
                       <info>CURLINFO_RESPONSE_CODE</info> - The last response code
                       
                       <info>CURLINFO_HTTP_CONNECTCODE</info> - The CONNECT response code
                       
                       <info>CURLINFO_HTTPAUTH_AVAIL</info> - Bitmask indicating the authentication method(s)
                       available according to the previous response
                       
                       <info>CURLINFO_PROXYAUTH_AVAIL</info> - Bitmask indicating the proxy authentication
                       method(s) available according to the previous response
                       
                       <info>CURLINFO_OS_ERRNO</info> - Errno from a connect failure. The number is OS and system
                       specific.
                       
                       <info>CURLINFO_NUM_CONNECTS</info> - Number of connections curl had to create to achieve
                       the previous transfer
                       
                       <info>CURLINFO_SSL_ENGINES</info> - OpenSSL crypto-engines supported
                       
                       <info>CURLINFO_COOKIELIST</info> - All known cookies
                       
                       <info>CURLINFO_FTP_ENTRY_PATH</info> - Entry path in FTP server
                       
                       <info>CURLINFO_APPCONNECT_TIME</info> - Time in seconds it took from the start until the
                       SSL/SSH connect/handshake to the remote host was completed
                       
                       <info>CURLINFO_CERTINFO</info> - TLS certificate chain
                       
                       <info>CURLINFO_CONDITION_UNMET</info> - Info on unmet time conditional
                       
                       <info>CURLINFO_RTSP_CLIENT_CSEQ</info> - Next RTSP client CSeq
                       
                       <info>CURLINFO_RTSP_CSEQ_RECV</info> - Recently received CSeq
                       
                       <info>CURLINFO_RTSP_SERVER_CSEQ</info> - Next RTSP server CSeq
                       
                       <info>CURLINFO_RTSP_SESSION_ID</info> - RTSP session ID
                       
                       <info>CURLINFO_CONTENT_LENGTH_DOWNLOAD_T</info> - The content-length of the download. This
                       is the value read from the <return>Content-Length:</return> field. -1 if the size isn't known
                       
                       <info>CURLINFO_CONTENT_LENGTH_UPLOAD_T</info> - The specified size of the upload. -1 if
                       the size isn't known
                       
                       <info>CURLINFO_HTTP_VERSION</info> - The version used in the last HTTP connection. The
                       return value will be one of the defined <info>CURL_HTTP_VERSION_*</info> constants or 0 if
                       the version can't be determined
                       
                       <info>CURLINFO_PROTOCOL</info> - The protocol used in the last HTTP connection. The
                       returned value will be exactly one of the <info>CURLPROTO_*</info> values
                       
                       <info>CURLINFO_PROXY_SSL_VERIFYRESULT</info> - The result of the certificate verification
                       that was requested (using the <info>CURLOPT_PROXY_SSL_VERIFYPEER</info> option). Only used
                       for HTTPS proxies
                       
                       <info>CURLINFO_SCHEME</info> - The URL scheme used for the most recent connection
                       
                       <info>CURLINFO_SIZE_DOWNLOAD_T</info> - Total number of bytes that were downloaded. The
                       number is only for the latest transfer and will be reset again for each new
                       transfer
                       
                       <info>CURLINFO_SIZE_UPLOAD_T</info> - Total number of bytes that were uploaded
                       
                       <info>CURLINFO_SPEED_DOWNLOAD_T</info> - The average download speed in bytes/second that
                       curl measured for the complete download
                       
                       <info>CURLINFO_SPEED_UPLOAD_T</info> - The average upload speed in bytes/second that curl
                       measured for the complete upload
                       
                       <info>CURLINFO_APPCONNECT_TIME_T</info> - Time, in microseconds, it took from the start
                       until the SSL/SSH connect/handshake to the remote host was completed
                       
                       <info>CURLINFO_CONNECT_TIME_T</info> - Total time taken, in microseconds, from the start
                       until the connection to the remote host (or proxy) was completed
                       
                       <info>CURLINFO_FILETIME_T</info> - Remote time of the retrieved document (as Unix
                       timestamp), an alternative to <info>CURLINFO_FILETIME</info> to allow systems with 32 bit
                       long variables to extract dates outside of the 32bit timestamp range
                       
                       <info>CURLINFO_NAMELOOKUP_TIME_T</info> - Time in microseconds from the start until the
                       name resolving was completed
                       
                       <info>CURLINFO_PRETRANSFER_TIME_T</info> - Time taken from the start until the file
                       transfer is just about to begin, in microseconds
                       
                       <info>CURLINFO_REDIRECT_TIME_T</info> - Total time, in microseconds, it took for all
                       redirection steps include name lookup, connect, pretransfer and transfer
                       before final transaction was started
                       
                       <info>CURLINFO_STARTTRANSFER_TIME_T</info> - Time, in microseconds, it took from the start
                       until the first byte is received
                       
                       <info>CURLINFO_TOTAL_TIME_T</info> - Total time in microseconds for the previous transfer,
                       including name resolving, TCP connect etc.

<comment>Return:</comment>
  <info>mixed</info>  If <strong>$option</strong> is given, returns its value. Otherwise, returns an associative array with the
         following elements  (which correspond to <strong>$option</strong>), or <info>false</info> on failure:  "url"
         "content_type"  "http_code"  "header_size"  "request_size"  "filetime"  "ssl_verify_result"
         "redirect_count"  "total_time"  "namelookup_time"  "connect_time"  "pretransfer_time"
         "size_upload"  "size_download"  "speed_download"  "speed_upload"  "download_content_length"
         "upload_content_length"  "starttransfer_time"  "redirect_time"  "certinfo"  "primary_ip"
         "primary_port"  "local_ip"  "local_port"  "redirect_url"  "request_header" (This is only
         set if the <info>CURLINFO_HEADER_OUT</info>  is set by a previous call to <strong>curl_setopt()</strong>)  Note that
         private data is not included in the associative array and must be retrieved individually
         with the <info>CURLINFO_PRIVATE</info> option.
         
         "url"
         
         "content_type"
         
         "http_code"
         
         "header_size"
         
         "request_size"
         
         "filetime"
         
         "ssl_verify_result"
         
         "redirect_count"
         
         "total_time"
         
         "namelookup_time"
         
         "connect_time"
         
         "pretransfer_time"
         
         "size_upload"
         
         "size_download"
         
         "speed_download"
         
         "speed_upload"
         
         "download_content_length"
         
         "upload_content_length"
         
         "starttransfer_time"
         
         "redirect_time"
         
         "certinfo"
         
         "primary_ip"
         
         "primary_port"
         
         "local_ip"
         
         "local_port"
         
         "redirect_url"
         
         "request_header" (This is only set if the <info>CURLINFO_HEADER_OUT</info>  is set by a previous call to
         <strong>curl_setopt()</strong>)


id: curl_init
type: function
doc:
<comment>Description:</comment>
  Initialize a cURL session
  
  Initializes a new session and return a cURL handle for use with the <strong>curl_setopt()</strong>, <strong>curl_exec()</strong>,
  and <strong>curl_close()</strong> functions.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$url</strong>  If provided, the <info>CURLOPT_URL</info> option will be set to its value. You can manually
                     set this using the  <strong>curl_setopt()</strong> function.
                     
                     The <return>file</return> protocol is disabled by cURL if open_basedir is set.

<comment>Return:</comment>
  <info>CurlHandle|false</info>  Returns a cURL handle on success, <info>false</info> on errors.

<comment>See Also:</comment>
   * <strong>curl_close()</strong>
   * <strong>curl_multi_init()</strong>


id: curl_multi_add_handle
type: function
doc:
<comment>Description:</comment>
  Add a normal cURL handle to a cURL multi handle
  
  Adds the <strong>$handle</strong> handle to the multi handle  <strong>$multi_handle</strong>

<comment>Param:</comment>
  <info>CurlMultiHandle</info>  <strong>$multi_handle</strong>  A cURL multi handle returned by
                                  <strong>curl_multi_init()</strong>.
  <info>CurlHandle</info>       <strong>$handle</strong>        A cURL handle returned by
                                  <strong>curl_init()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns 0 on success, or one of the <info>CURLM_XXX</info> errors code.

<comment>See Also:</comment>
   * <strong>curl_multi_remove_handle()</strong>
   * <strong>curl_multi_init()</strong>
   * <strong>curl_init()</strong>


id: curl_multi_close
type: function
doc:
<comment>Description:</comment>
  Close a set of cURL handles
  
  This function has no effect. Prior to PHP 8.0.0, this function was used to close the resource.
  
  Closes a set of cURL handles.

<comment>Param:</comment>
  <info>CurlMultiHandle</info>  <strong>$multi_handle</strong>  A cURL multi handle returned by
                                  <strong>curl_multi_init()</strong>.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>curl_multi_init()</strong>
   * <strong>curl_close()</strong>


id: curl_multi_errno
type: function
doc:
<comment>Description:</comment>
  Return the last multi curl error number
  
  Return an integer containing the last multi curl error number.

<comment>Param:</comment>
  <info>CurlMultiHandle</info>  <strong>$multi_handle</strong>  A cURL multi handle returned by
                                  <strong>curl_multi_init()</strong>.

<comment>Return:</comment>
  <info>int</info>  Return an integer containing the last multi curl error number.

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


id: curl_multi_exec
type: function
doc:
<comment>Description:</comment>
  Run the sub-connections of the current cURL handle
  
  Processes each of the handles in the stack.  This method can be called whether or not a handle
  needs to read or write data.

<comment>Param:</comment>
  <info>CurlMultiHandle</info>  <strong>$multi_handle</strong>   A cURL multi handle returned by
                                   <strong>curl_multi_init()</strong>.
  <info>int</info>              <strong>$still_running</strong>  A reference to a flag to tell whether the operations are still
                                   running.

<comment>Return:</comment>
  <info>int</info>  A cURL code defined in the cURL Predefined Constants.
       
       This only returns errors regarding the whole multi stack. There might still have  occurred
       problems on individual transfers even when this function returns  <info>CURLM_OK</info>.

<comment>See Also:</comment>
   * <strong>curl_multi_init()</strong>
   * <strong>curl_multi_select()</strong>
   * <strong>curl_exec()</strong>


id: curl_multi_getcontent
type: function
doc:
<comment>Description:</comment>
  Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set
  
  If <info>CURLOPT_RETURNTRANSFER</info> is an option that is set for a specific handle,  then this function will
  return the content of that cURL handle in the form of a string.

<comment>Param:</comment>
  <info>CurlHandle</info>  <strong>$handle</strong>  A cURL handle returned by
                       <strong>curl_init()</strong>.

<comment>Return:</comment>
  <info>string|null</info>  Return the content of a cURL handle if <info>CURLOPT_RETURNTRANSFER</info> is set or <info>null</info> if not
               set.

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


id: curl_multi_info_read
type: function
doc:
<comment>Description:</comment>
  Get information about the current transfers
  
  Ask the multi handle if there are any messages or information from the individual transfers.
  Messages may include information such as an error code from the transfer or just the fact  that a
  transfer is completed.
  
  Repeated calls to this function will return a new result each time, until a <info>false</info> is returned  as
  a signal that there is no more to get at this point. The integer pointed to with  <strong>$queued_messages</strong>
  will contain the number of remaining messages after this  function was called.
  
  The data the returned resource points to will not survive calling  <strong>curl_multi_remove_handle()</strong>.

<comment>Param:</comment>
  <info>CurlMultiHandle</info>  <strong>$multi_handle</strong>     A cURL multi handle returned by
                                     <strong>curl_multi_init()</strong>.
  <info>int</info>              <strong>$queued_messages</strong>  Number of messages that are still in the queue

<comment>Return:</comment>
  <info>array|false</info>  On success, returns an associative array for the message, <info>false</info> on failure.
               
               Contents of the returned arrayKey:Value:<return>msg</return>The <info>CURLMSG_DONE</info> constant. Other return
               values are currently not available.<return>result</return>One of the <info>CURLE_*</info> constants. If everything
               is OK, the <info>CURLE_OK</info> will be the result.<return>handle</return>Resource of type curl indicates the
               handle which it concerns.

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


id: curl_multi_init
type: function
doc:
<comment>Description:</comment>
  Returns a new cURL multi handle
  
  Allows the processing of multiple cURL handles asynchronously.

<comment>Return:</comment>
  <info>CurlMultiHandle</info>  Returns a cURL multi handle.

<comment>See Also:</comment>
   * <strong>curl_init()</strong>
   * <strong>curl_multi_close()</strong>


id: curl_multi_remove_handle
type: function
doc:
<comment>Description:</comment>
  Remove a multi handle from a set of cURL handles
  
  Removes a given <strong>$handle</strong> handle from the given <strong>$multi_handle</strong> handle. When the <strong>$handle</strong> handle has
  been removed, it is again perfectly  legal to run <strong>curl_exec()</strong> on this handle.  Removing the
  <strong>$handle</strong> handle while being  used, will effectively halt the transfer in progress involving that
  handle.

<comment>Param:</comment>
  <info>CurlMultiHandle</info>  <strong>$multi_handle</strong>  A cURL multi handle returned by
                                  <strong>curl_multi_init()</strong>.
  <info>CurlHandle</info>       <strong>$handle</strong>        A cURL handle returned by
                                  <strong>curl_init()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns 0 on success, or one of the <info>CURLM_XXX</info> error codes.

<comment>See Also:</comment>
   * <strong>curl_init()</strong>
   * <strong>curl_multi_init()</strong>
   * <strong>curl_multi_add_handle()</strong>


id: curl_multi_select
type: function
doc:
<comment>Description:</comment>
  Wait for activity on any curl_multi connection
  
  Blocks until there is activity on any of the curl_multi connections.

<comment>Param:</comment>
  <info>CurlMultiHandle</info>  <strong>$multi_handle</strong>  A cURL multi handle returned by
                                  <strong>curl_multi_init()</strong>.
  <info>float</info>            <strong>$timeout</strong>       Time, in seconds, to wait for a response.

<comment>Return:</comment>
  <info>int</info>  On success, returns the number of descriptors contained in  the descriptor sets. This may be
       0 if there was no activity on any of the descriptors. On failure, this function will return
       -1 on a select failure (from the underlying select system call).

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


id: curl_multi_setopt
type: function
doc:
<comment>Description:</comment>
  Set a cURL multi option
  
  Sets an option on the given cURL multi handle.

<comment>Param:</comment>
  <info>CurlMultiHandle</info>  <strong>$multi_handle</strong>  A cURL multi handle returned by
                                  <strong>curl_multi_init()</strong>.
  <info>int</info>              <strong>$option</strong>        One of the <info>CURLMOPT_*</info> constants.
  <info>mixed</info>            <strong>$value</strong>         The value to be set on <strong>$option</strong>.
                                  
                                  <strong>$value</strong> should be an <info>int</info> for the following values of the <strong>$option</strong>
                                  parameter: OptionSet <strong>$value</strong> to<info>CURLMOPT_PIPELINING</info> Pass 1 to enable
                                  or 0 to disable. Enabling pipelining on a multi handle will make
                                  it attempt to perform HTTP Pipelining as far as possible for
                                  transfers using this handle. This means that if you add a second
                                  request that can use an already existing connection, the second
                                  request will be "piped" on the same connection. As of cURL 7.43.0,
                                  the value is a bitmask, and you can also pass 2 to try to
                                  multiplex the new transfer over an existing HTTP/2 connection if
                                  possible. Passing 3 instructs cURL to ask for pipelining and
                                  multiplexing independently of each other. As of cURL 7.62.0,
                                  setting the pipelining bit has no effect. Instead of integer
                                  literals, you can also use the CURLPIPE_* constants if available.
                                  <info>CURLMOPT_MAXCONNECTS</info> Pass a number that will be used as the
                                  maximum amount of simultaneously open connections that libcurl may
                                  cache. By default the size will be enlarged to fit four times the
                                  number of handles added via <strong>curl_multi_add_handle()</strong>. When the
                                  cache is full, curl closes the oldest one in the cache to prevent
                                  the number of open connections from increasing.
                                  <info>CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE</info> Pass a number that specifies
                                  the chunk length threshold for pipelining in bytes.
                                  <info>CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE</info> Pass a number that specifies
                                  the size threshold for pipelining penalty in bytes.
                                  <info>CURLMOPT_MAX_CONCURRENT_STREAMS</info> The set number will be used as the
                                  maximum number of concurrent streams for a connections that cURL
                                  should support on connections done using HTTP/2. Valid values
                                  range from <return>1</return> to <return>2147483647</return> (<return>2^31 - 1</return>). The value passed here would
                                  be honored based on other system resources properties. Default is
                                  <return>100</return>. <info>CURLMOPT_MAX_HOST_CONNECTIONS</info> Pass a number that specifies
                                  the maximum number of connections to a single host.
                                  <info>CURLMOPT_MAX_PIPELINE_LENGTH</info> Pass a number that specifies the
                                  maximum number of requests in a pipeline.
                                  <info>CURLMOPT_MAX_TOTAL_CONNECTIONS</info> Pass a number that specifies the
                                  maximum number of simultaneously open connections.
                                  <info>CURLMOPT_PUSHFUNCTION</info> Pass a <info>callable</info> that will be registered to
                                  handle server pushes and should have the following signature:
                                  <info>int</info>pushfunction<info>resource</info><strong>$parent_ch</strong><info>resource</info><strong>$pushed_ch</strong><info>array</info><strong>$headers</strong>
                                  <strong>$parent_ch</strong> The parent cURL handle (the request the client made).
                                  <strong>$pushed_ch</strong> A new cURL handle for the pushed request. <strong>$headers</strong> The
                                  push promise headers.  The push function is supposed to return
                                  either <info>CURL_PUSH_OK</info> if it can handle the push, or <info>CURL_PUSH_DENY</info>
                                  to reject it.
                                  
                                  The parent cURL handle (the request the client made).
                                  
                                  A new cURL handle for the pushed request.
                                  
                                  The push promise headers.
  <info>resource</info>         <strong>$parent_ch</strong>     The parent cURL handle (the request the client made).
  <info>resource</info>         <strong>$pushed_ch</strong>     A new cURL handle for the pushed request.
  <info>array</info>            <strong>$headers</strong>       The push promise headers.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.


id: curl_multi_strerror
type: function
doc:
<comment>Description:</comment>
  Return string describing error code
  
  Returns a text error message describing the given CURLM error code.

<comment>Param:</comment>
  <info>int</info>  <strong>$error_code</strong>  One of the CURLM error codes constants.

<comment>Return:</comment>
  <info>string|null</info>  Returns error string for valid error code, <info>null</info> otherwise.

<comment>See Also:</comment>
   * <strong>curl_strerror()</strong>
   * cURL error codes


id: curl_pause
type: function
doc:
<comment>Description:</comment>
  Pause and unpause a connection
  
  Pause or unpause a cURL session. A session can be paused while a transfer is in progress, in
  either the read, write or both directions, by calling this function from a callback registered
  with <strong>curl_setopt()</strong>.

<comment>Param:</comment>
  <info>CurlHandle</info>  <strong>$handle</strong>  A cURL handle returned by
                       <strong>curl_init()</strong>.
  <info>int</info>         <strong>$flags</strong>   One of <info>CURLPAUSE_*</info> constants.

<comment>Return:</comment>
  <info>int</info>  Returns an error code (<info>CURLE_OK</info> for no error).


id: curl_reset
type: function
doc:
<comment>Description:</comment>
  Reset all options of a libcurl session handle
  
  This function re-initializes all options set on the given cURL handle to the default values.

<comment>Param:</comment>
  <info>CurlHandle</info>  <strong>$handle</strong>  A cURL handle returned by
                       <strong>curl_init()</strong>.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

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


id: curl_setopt
type: function
doc:
<comment>Description:</comment>
  Set an option for a cURL transfer
  
  Sets an option on the given cURL session handle.

<comment>Param:</comment>
  <info>CurlHandle</info>  <strong>$handle</strong>  A cURL handle returned by
                       <strong>curl_init()</strong>.
  <info>int</info>         <strong>$option</strong>  The <return>CURLOPT_XXX</return> option to set.
  <info>mixed</info>       <strong>$value</strong>   The value to be set on <strong>$option</strong>.
                       
                       <strong>$value</strong> should be a <info>bool</info> for the following values of the <strong>$option</strong> parameter:
                       OptionSet <strong>$value</strong> toNotes<info>CURLOPT_AUTOREFERER</info><info>true</info> to automatically set the
                       <return>Referer:</return> field in requests where it follows a <return>Location:</return> redirect.
                       <info>CURLOPT_COOKIESESSION</info><info>true</info> to mark this as a new cookie "session". It will
                       force libcurl to ignore all cookies it is about to load that are "session
                       cookies" from the previous session. By default, libcurl always stores and
                       loads all cookies, independent if they are session cookies or not. Session
                       cookies are cookies without expiry date and they are meant to be alive and
                       existing for this "session" only.  <info>CURLOPT_CERTINFO</info><info>true</info> to output SSL
                       certification information to <return>STDERR</return> on secure transfers.  Added in cURL
                       7.19.1. Requires <info>CURLOPT_VERBOSE</info> to be on to have an effect.
                       <info>CURLOPT_CONNECT_ONLY</info><info>true</info> tells the library to perform all the required proxy
                       authentication  and connection setup, but no data transfer. This option is
                       implemented for  HTTP, SMTP and POP3.  Added in 7.15.2. <info>CURLOPT_CRLF</info><info>true</info> to
                       convert Unix newlines to CRLF newlines on transfers.
                       <info>CURLOPT_DISALLOW_USERNAME_IN_URL</info><info>true</info> to not allow URLs that include a
                       username. Usernames are allowed by default (0).  Added in cURL 7.61.0.
                       Available since PHP 7.3.0. <info>CURLOPT_DNS_SHUFFLE_ADDRESSES</info><info>true</info> to shuffle the
                       order of all returned addresses so that they will be used  in a random order,
                       when a name is resolved and more than one IP address is returned. This may
                       cause IPv4 to be used before IPv6 or vice versa.  Added in cURL 7.60.0.
                       Available since PHP 7.3.0. <info>CURLOPT_HAPROXYPROTOCOL</info><info>true</info> to send an HAProxy
                       PROXY protocol v1 header at the start of the connection. The default action
                       is not to send this header.  Added in cURL 7.60.0. Available since PHP 7.3.0.
                       <info>CURLOPT_SSH_COMPRESSION</info><info>true</info> to enable built-in SSH compression. This is a
                       request, not an order;  the server may or may not do it.  Added in cURL
                       7.56.0. Available since PHP 7.3.0. <info>CURLOPT_DNS_USE_GLOBAL_CACHE</info><info>true</info> to use a
                       global DNS cache. This option is not thread-safe. It is conditionally enabled
                       by default if PHP is built for non-threaded use (CLI, FCGI, Apache2-Prefork,
                       etc.).  <info>CURLOPT_FAILONERROR</info><info>true</info> to fail verbosely if the HTTP code returned
                       is greater than or equal to 400. The default behavior is to return the page
                       normally, ignoring the code.  <info>CURLOPT_SSL_FALSESTART</info><info>true</info> to enable TLS false
                       start.  Added in cURL 7.42.0. Available since PHP 7.0.7. <info>CURLOPT_FILETIME</info><info>true</info>
                       to attempt to retrieve the modification date of the remote document. This
                       value can be retrieved using the <info>CURLINFO_FILETIME</info> option with
                       <strong>curl_getinfo()</strong>.  <info>CURLOPT_FOLLOWLOCATION</info><info>true</info> to follow any <return>"Location: "</return> header
                       that the server sends as part of the HTTP header. See also <info>CURLOPT_MAXREDIRS</info>.
                       <info>CURLOPT_FORBID_REUSE</info><info>true</info> to force the connection to explicitly close when it
                       has finished processing, and not be pooled for reuse.
                       <info>CURLOPT_FRESH_CONNECT</info><info>true</info> to force the use of a new connection instead of a
                       cached one.  <info>CURLOPT_FTP_USE_EPRT</info><info>true</info> to use EPRT (and LPRT) when doing
                       active FTP downloads. Use <info>false</info> to disable EPRT and LPRT and use PORT only.
                       <info>CURLOPT_FTP_USE_EPSV</info><info>true</info> to first try an EPSV command for FTP transfers
                       before reverting back to PASV. Set to <info>false</info> to disable EPSV.
                       <info>CURLOPT_FTP_CREATE_MISSING_DIRS</info><info>true</info> to create missing directories when an FTP
                       operation encounters a path that currently doesn't exist.
                       <info>CURLOPT_FTPAPPEND</info><info>true</info> to append to the remote file instead of overwriting it.
                       <info>CURLOPT_TCP_NODELAY</info><info>true</info> to disable TCP's Nagle algorithm, which tries to
                       minimize the number of small packets on the network.  Available for versions
                       compiled with libcurl 7.11.2 or greater. <info>CURLOPT_FTPASCII</info> An alias of
                       <info>CURLOPT_TRANSFERTEXT</info>. Use that instead.  <info>CURLOPT_FTPLISTONLY</info><info>true</info> to only list
                       the names of an FTP directory.  <info>CURLOPT_HEADER</info><info>true</info> to include the header in
                       the output.  <info>CURLINFO_HEADER_OUT</info><info>true</info> to track the handle's request string.
                       The <info>CURLINFO_</info> prefix is intentional. <info>CURLOPT_HTTP09_ALLOWED</info> Whether to allow
                       HTTP/0.9 responses. Defaults to <info>false</info> as of libcurl 7.66.0; formerly it
                       defaulted to <info>true</info>.  Available since PHP 7.3.15 and 7.4.3, respectively, if
                       built against libcurl &gt;= 7.64.0  <info>CURLOPT_HTTPGET</info><info>true</info> to reset the HTTP
                       request method to GET. Since GET is the default, this is only necessary if
                       the request method has been changed.  <info>CURLOPT_HTTPPROXYTUNNEL</info><info>true</info> to tunnel
                       through a given HTTP proxy.  <info>CURLOPT_HTTP_CONTENT_DECODING</info><info>false</info> to get the
                       raw HTTP response body.  Available if built against libcurl &gt;= 7.16.2.
                       <info>CURLOPT_KEEP_SENDING_ON_ERROR</info><info>true</info> to keep sending the request body if the
                       HTTP code returned is  equal to or larger than 300. The default action would
                       be to stop sending and close the stream or connection. Suitable for manual
                       NTLM authentication. Most applications do not need this option.  Available as
                       of PHP 7.3.0 if built against libcurl &gt;= 7.51.0. <info>CURLOPT_MUTE</info><info>true</info> to be
                       completely silent with regards to the cURL functions.  Removed in cURL 7.15.5
                       (You can use CURLOPT_RETURNTRANSFER instead) <info>CURLOPT_NETRC</info><info>true</info> to scan the
                       ~/.netrc file to find a username and password for the remote site that a
                       connection is being established with.  <info>CURLOPT_NOBODY</info><info>true</info> to exclude the body
                       from the output. Request method is then set to HEAD. Changing this to <info>false</info>
                       does not change it to GET.  <info>CURLOPT_NOPROGRESS</info><info>true</info> to disable the progress
                       meter for cURL transfers.  PHP automatically sets this option to <info>true</info>, this
                       should only be changed for debugging purposes.   <info>CURLOPT_NOSIGNAL</info><info>true</info> to
                       ignore any cURL function that causes a signal to be sent to the PHP process.
                       This is turned on by default in multi-threaded SAPIs so timeout options can
                       still be used.  Added in cURL 7.10. <info>CURLOPT_PATH_AS_IS</info><info>true</info> to not handle dot
                       dot sequences.  Added in cURL 7.42.0. Available since PHP 7.0.7.
                       <info>CURLOPT_PIPEWAIT</info><info>true</info> to wait for pipelining/multiplexing.  Added in cURL
                       7.43.0. Available since PHP 7.0.7. <info>CURLOPT_POST</info><info>true</info> to do a regular HTTP
                       POST. This POST is the normal <return>application/x-www-form-urlencoded</return> kind, most
                       commonly used by HTML forms.  <info>CURLOPT_PUT</info><info>true</info> to HTTP PUT a file. The file to
                       PUT must be set with <info>CURLOPT_INFILE</info> and <info>CURLOPT_INFILESIZE</info>.
                       <info>CURLOPT_RETURNTRANSFER</info><info>true</info> to return the transfer as a string of the return
                       value of <strong>curl_exec()</strong> instead of outputting it directly.  <info>CURLOPT_SASL_IR</info><info>true</info>
                       to enable sending the initial response in the first packet.  Added in cURL
                       7.31.10. Available since PHP 7.0.7. <info>CURLOPT_SSL_ENABLE_ALPN</info><info>false</info> to disable
                       ALPN in the SSL handshake (if the SSL backend libcurl is built to use
                       supports it), which can be used to negotiate http2.  Added in cURL 7.36.0.
                       Available since PHP 7.0.7. <info>CURLOPT_SSL_ENABLE_NPN</info><info>false</info> to disable NPN in the
                       SSL handshake (if the SSL backend libcurl is built to use supports it), which
                       can be used to negotiate http2.  Added in cURL 7.36.0. Available since PHP
                       7.0.7. <info>CURLOPT_SSL_VERIFYPEER</info><info>false</info> to stop cURL from verifying the peer's
                       certificate. Alternate certificates to verify against can be specified with
                       the <info>CURLOPT_CAINFO</info> option or a certificate directory can be specified with
                       the <info>CURLOPT_CAPATH</info> option. <info>true</info> by default as of cURL 7.10. Default bundle
                       installed as of cURL 7.10. <info>CURLOPT_SSL_VERIFYSTATUS</info><info>true</info> to verify the
                       certificate's status.  Added in cURL 7.41.0. Available since PHP 7.0.7.
                       <info>CURLOPT_PROXY_SSL_VERIFYPEER</info><info>false</info> to stop cURL from verifying the peer's
                       certificate. Alternate certificates to verify against can be specified with
                       the <info>CURLOPT_CAINFO</info> option or a certificate directory can be specified with
                       the <info>CURLOPT_CAPATH</info> option. When set to false, the peer certificate
                       verification succeeds regardless. <info>true</info> by default. Available since PHP 7.3.0
                       and libcurl &gt;= cURL 7.52.0. <info>CURLOPT_SAFE_UPLOAD</info> Always <info>true</info>, what disables
                       support for the <return>@</return> prefix for uploading files in <info>CURLOPT_POSTFIELDS</info>, which
                       means that values starting with <return>@</return> can be safely passed as fields. <class>CURLFile</class>
                       may be used for uploads instead.  <info>CURLOPT_SUPPRESS_CONNECT_HEADERS</info><info>true</info> to
                       suppress proxy CONNECT response headers from the user callback functions
                       <info>CURLOPT_HEADERFUNCTION</info> and <info>CURLOPT_WRITEFUNCTION</info>, when
                       <info>CURLOPT_HTTPPROXYTUNNEL</info> is used and a CONNECT request is made.  Added in cURL
                       7.54.0. Available since PHP 7.3.0. <info>CURLOPT_TCP_FASTOPEN</info><info>true</info> to enable TCP
                       Fast Open.  Added in cURL 7.49.0. Available since PHP 7.0.7.
                       <info>CURLOPT_TFTP_NO_OPTIONS</info><info>true</info> to not send TFTP options requests.  Added in cURL
                       7.48.0. Available since PHP 7.0.7. <info>CURLOPT_TRANSFERTEXT</info><info>true</info> to use ASCII mode
                       for FTP transfers. For LDAP, it retrieves data in plain text instead of HTML.
                       On Windows systems, it will not set <return>STDOUT</return> to binary mode.
                       <info>CURLOPT_UNRESTRICTED_AUTH</info><info>true</info> to keep sending the username and password when
                       following locations (using <info>CURLOPT_FOLLOWLOCATION</info>), even when the hostname
                       has changed.  <info>CURLOPT_UPLOAD</info><info>true</info> to prepare for an upload.
                       <info>CURLOPT_VERBOSE</info><info>true</info> to output verbose information. Writes output to <return>STDERR</return>,
                       or the file specified using <info>CURLOPT_STDERR</info>.
                       
                       <info>true</info> to disable the progress meter for cURL transfers.  PHP automatically
                       sets this option to <info>true</info>, this should only be changed for debugging purposes.
                       
                       PHP automatically sets this option to <info>true</info>, this should only be changed for
                       debugging purposes.
                       
                       <strong>$value</strong> should be an <info>int</info> for the following values of the <strong>$option</strong> parameter:
                       OptionSet <strong>$value</strong> toNotes<info>CURLOPT_BUFFERSIZE</info> The size of the buffer to use for
                       each read. There is no guarantee this request will be fulfilled, however.
                       Added in cURL 7.10. <info>CURLOPT_CONNECTTIMEOUT</info> The number of seconds to wait
                       while trying to connect. Use 0 to wait indefinitely.
                       <info>CURLOPT_CONNECTTIMEOUT_MS</info> The number of milliseconds to wait while trying to
                       connect. Use 0 to wait indefinitely.  If libcurl is built to use the standard
                       system name resolver, that portion of the connect will still use full-second
                       resolution for timeouts with a minimum timeout allowed of one second.  Added
                       in cURL 7.16.2. <info>CURLOPT_DNS_CACHE_TIMEOUT</info> The number of seconds to keep DNS
                       entries in memory. This option is set to 120 (2 minutes) by default.
                       <info>CURLOPT_EXPECT_100_TIMEOUT_MS</info> The timeout for <return>Expect: 100-continue</return> responses
                       in milliseconds. Defaults to 1000 milliseconds.  Added in cURL 7.36.0.
                       Available since PHP 7.0.7. <info>CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS</info> Head start for
                       ipv6 for the happy eyeballs algorithm. Happy eyeballs attempts to connect to
                       both IPv4 and IPv6 addresses for dual-stack hosts,  preferring IPv6 first for
                       timeout milliseconds. Defaults to CURL_HET_DEFAULT, which is currently 200
                       milliseconds.  Added in cURL 7.59.0. Available since PHP 7.3.0.
                       <info>CURLOPT_FTPSSLAUTH</info> The FTP authentication method (when is activated):
                       <return>CURLFTPAUTH_SSL</return> (try SSL first), <return>CURLFTPAUTH_TLS</return> (try TLS first), or
                       <return>CURLFTPAUTH_DEFAULT</return> (let cURL decide).  Added in cURL 7.12.2.
                       <info>CURLOPT_HEADEROPT</info> How to deal with headers. One of the following constants:
                       <info>CURLHEADER_UNIFIED</info>: the headers specified in <info>CURLOPT_HTTPHEADER</info> will be used
                       in requests both to servers and proxies. With this option enabled,
                       <info>CURLOPT_PROXYHEADER</info> will not have any effect.  <info>CURLHEADER_SEPARATE</info>: makes
                       <info>CURLOPT_HTTPHEADER</info> headers only get sent to a server and not to a proxy.
                       Proxy headers must be set with <info>CURLOPT_PROXYHEADER</info> to get used. Note that if
                       a non-CONNECT request is sent to a proxy, libcurl will send both server
                       headers and proxy headers. When doing CONNECT, libcurl will send
                       <info>CURLOPT_PROXYHEADER</info> headers only to the proxy and then <info>CURLOPT_HTTPHEADER</info>
                       headers only to the server.   Defaults to <info>CURLHEADER_SEPARATE</info> as of cURL
                       7.42.1, and <info>CURLHEADER_UNIFIED</info> before.   Added in cURL 7.37.0. Available
                       since PHP 7.0.7. <info>CURLOPT_HTTP_VERSION</info><info>CURL_HTTP_VERSION_NONE</info> (default, lets
                       CURL decide which version to use), <info>CURL_HTTP_VERSION_1_0</info> (forces HTTP/1.0),
                       <info>CURL_HTTP_VERSION_1_1</info> (forces HTTP/1.1), <info>CURL_HTTP_VERSION_2_0</info> (attempts HTTP
                       2), <info>CURL_HTTP_VERSION_2</info> (alias of <info>CURL_HTTP_VERSION_2_0</info>),
                       <info>CURL_HTTP_VERSION_2TLS</info> (attempts HTTP 2 over TLS (HTTPS) only) or
                       <info>CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE</info> (issues non-TLS HTTP requests using
                       HTTP/2 without HTTP/1.1 Upgrade).  <info>CURLOPT_HTTPAUTH</info> The HTTP authentication
                       method(s) to use. The options are: <info>CURLAUTH_BASIC</info>, <info>CURLAUTH_DIGEST</info>,
                       <info>CURLAUTH_GSSNEGOTIATE</info>, <info>CURLAUTH_NTLM</info>, <info>CURLAUTH_AWS_SIGV4</info>, <info>CURLAUTH_ANY</info>, and
                       <info>CURLAUTH_ANYSAFE</info>.  The bitwise <return>|</return> (or) operator can be used to combine more
                       than one method. If this is done, cURL will poll the server to see what
                       methods it supports and pick the best one. <info>CURLAUTH_ANY</info> sets all bits. cURL
                       will automatically select the one it finds most secure. <info>CURLAUTH_ANYSAFE</info> sets
                       all bits except <return>CURLAUTH_BASIC</return>. cURL will automatically select the one it
                       finds most secure.  <info>CURLOPT_INFILESIZE</info> The expected size, in bytes, of the
                       file when uploading a file to a remote site. Note that using this option will
                       not stop libcurl from sending more data, as exactly what is sent depends on
                       <info>CURLOPT_READFUNCTION</info>.  <info>CURLOPT_LOW_SPEED_LIMIT</info> The transfer speed, in bytes
                       per second, that the transfer should be below during the count of
                       <info>CURLOPT_LOW_SPEED_TIME</info> seconds before PHP considers the transfer too slow and
                       aborts.  <info>CURLOPT_LOW_SPEED_TIME</info> The number of seconds the transfer speed
                       should be below <info>CURLOPT_LOW_SPEED_LIMIT</info> before PHP considers the transfer too
                       slow and aborts.  <info>CURLOPT_MAIL_RCPT_ALLLOWFAILS</info> Allow RCPT TO command to fail
                       for some recipients.  When sending data to multiple recipients, by default
                       cURL will abort SMTP conversation if at least one of the recipients causes
                       RCPT TO command to return an error. This option tells cURL to ignore errors
                       and proceed with the remaining valid recipients. If all recipients trigger
                       RCPT TO failures and this flag is set, cURL will abort the SMTP conversation
                       and return the error received from the last RCPT TO command.
                       <info>CURLOPT_MAXAGE_CONN</info> The maximum idle time allowed for an existing connection
                       to be considered for reuse. Default maximum age is set to <return>118</return> seconds.
                       <info>CURLOPT_MAXFILESIZE_LARGE</info> The maximum file size in bytes allowed to download.
                       If the file requested is found larger than this value, the transfer will not
                       start and <info>CURLE_FILESIZE_EXCEEDED</info> will be returned. The file size is not
                       always known prior to download, and for such files this option has no effect
                       even if the file transfer ends up being larger than this given limit.
                       <info>CURLOPT_MAXLIFETIME_CONN</info> The maximum time in seconds, since the creation of
                       the connection, that is allowed for an existing connection to have for it to
                       be considered for reuse. If a connection is found in the cache that is older
                       than this value, it will instead be closed once any in-progress transfers are
                       complete. Default is 0 seconds, meaning the option is disabled and all
                       connections are eligible for reuse.  <info>CURLOPT_MAXCONNECTS</info> The maximum amount
                       of persistent connections that are allowed. When the limit is reached, the
                       oldest one in the cache is closed to prevent increasing the number of open
                       connections.  <info>CURLOPT_MAXREDIRS</info> The maximum amount of HTTP redirections to
                       follow. Use this option alongside <info>CURLOPT_FOLLOWLOCATION</info>. Default value of <return>20</return>
                       is set to prevent infinite redirects. Setting to <return>-1</return> allows inifinite
                       redirects, and <return>0</return> refuses all redirects.  <info>CURLOPT_PORT</info> An alternative port
                       number to connect to.  <info>CURLOPT_POSTREDIR</info> A bitmask of 1 (301 Moved
                       Permanently), 2 (302 Found) and 4 (303 See Other) if the HTTP POST method
                       should be maintained when <info>CURLOPT_FOLLOWLOCATION</info> is set and a specific type
                       of redirect occurs.  Added in cURL 7.19.1. <info>CURLOPT_PROTOCOLS</info> Bitmask of
                       <info>CURLPROTO_*</info> values. If used, this bitmask  limits what protocols libcurl may
                       use in the transfer. This allows you to have a libcurl built to support a
                       wide range of protocols but still limit specific transfers to only be allowed
                       to use a subset of them. By default libcurl will accept all protocols it
                       supports.  See also <info>CURLOPT_REDIR_PROTOCOLS</info>.  Valid protocol options are:
                       <info>CURLPROTO_HTTP</info>, <info>CURLPROTO_HTTPS</info>, <info>CURLPROTO_FTP</info>, <info>CURLPROTO_FTPS</info>,
                       <info>CURLPROTO_SCP</info>, <info>CURLPROTO_SFTP</info>, <info>CURLPROTO_TELNET</info>, <info>CURLPROTO_LDAP</info>,
                       <info>CURLPROTO_LDAPS</info>, <info>CURLPROTO_DICT</info>, <info>CURLPROTO_FILE</info>, <info>CURLPROTO_TFTP</info>,
                       <info>CURLPROTO_MQTT</info>, <info>CURLPROTO_ALL</info>  Added in cURL 7.19.4. <info>CURLOPT_PROXYAUTH</info> The
                       HTTP authentication method(s) to use for the proxy connection. Use the same
                       bitmasks as described in <info>CURLOPT_HTTPAUTH</info>. For proxy authentication, only
                       <info>CURLAUTH_BASIC</info> and <info>CURLAUTH_NTLM</info> are currently supported.  Added in cURL
                       7.10.7. <info>CURLOPT_PROXYPORT</info> The port number of the proxy to connect to. This
                       port number can also be set in <info>CURLOPT_PROXY</info>.  <info>CURLOPT_PROXYTYPE</info> Either
                       <info>CURLPROXY_HTTP</info> (default), <info>CURLPROXY_SOCKS4</info>, <info>CURLPROXY_SOCKS5</info>,
                       <info>CURLPROXY_SOCKS4A</info> or <info>CURLPROXY_SOCKS5_HOSTNAME</info>.  Added in cURL 7.10.
                       <info>CURLOPT_REDIR_PROTOCOLS</info> Bitmask of <info>CURLPROTO_*</info> values. If used, this bitmask
                       limits what protocols libcurl may use in a transfer that it follows to in a
                       redirect when <info>CURLOPT_FOLLOWLOCATION</info> is enabled. This allows you to limit
                       specific transfers to only be allowed to use a subset of protocols in
                       redirections. By default libcurl will allow all protocols except for FILE and
                       SCP. This is a difference compared to pre-7.19.4 versions which
                       unconditionally would follow to all protocols supported.  See also
                       <info>CURLOPT_PROTOCOLS</info> for protocol constant values.  Added in cURL 7.19.4.
                       <info>CURLOPT_RESUME_FROM</info> The offset, in bytes, to resume a transfer from.
                       <info>CURLOPT_SOCKS5_AUTH</info> The SOCKS5 authentication method(s) to use. The options
                       are: <info>CURLAUTH_BASIC</info>, <info>CURLAUTH_GSSAPI</info>, <info>CURLAUTH_NONE</info>.  The bitwise <return>|</return> (or)
                       operator can be used to combine more than one method. If this is done, cURL
                       will poll the server to see what methods it supports and pick the best one.
                       <info>CURLAUTH_BASIC</info> allows username/password authentication. <info>CURLAUTH_GSSAPI</info>
                       allows GSS-API authentication. <info>CURLAUTH_NONE</info> allows no authentication.
                       Defaults to <return>CURLAUTH_BASIC|CURLAUTH_GSSAPI</return>. Set the actual username and
                       password with the <info>CURLOPT_PROXYUSERPWD</info> option.  Available as of 7.3.0 and
                       curl &gt;= 7.55.0. <info>CURLOPT_SSL_OPTIONS</info> Set SSL behavior options, which is a
                       bitmask of any of the following constants: <info>CURLSSLOPT_ALLOW_BEAST</info>: do not
                       attempt to use any workarounds for a security flaw in the SSL3 and TLS1.0
                       protocols.  <info>CURLSSLOPT_NO_REVOKE</info>: disable certificate revocation checks for
                       those SSL backends where such behavior is present.
                       <info>CURLSSLOPT_AUTO_CLIENT_CERT</info>: automatically locate and use a client
                       certificate for authentication, when requested by the server. This option is
                       only supported for Schannel (the native Windows SSL library).
                       <info>CURLSSLOPT_NATIVE_CA</info>: use the operating system's native CA store for
                       certificate verification. Works only on Windows when built to use OpenSSL.
                       This option is experimental and behavior is subject to change.
                       <info>CURLSSLOPT_NO_PARTIALCHAIN</info>: do not accept "partial" certificate chains, which
                       cURL otherwise does by default. This option is only supported for OpenSSL and
                       will fail the certificate verification if the chain ends with an intermediate
                       certificate and not with a root certificate.  <info>CURLSSLOPT_REVOKE_BEST_EFFORT</info>:
                       ignore certificate revocation checks in case of missing or offline
                       distribution points for those SSL backends where such behavior is present.
                       This option is only supported for Schannel (the native Windows SSL library).
                       If combined with <info>CURLSSLOPT_NO_REVOKE</info>, the latter takes precedence.   Added
                       in cURL 7.25.0. Available since PHP 7.0.7. <info>CURLOPT_SSL_VERIFYHOST</info><return>2</return> to verify
                       that a Common Name field or a Subject Alternate Name field in the SSL peer
                       certificate matches the provided hostname. <return>0</return> to not check the names. <return>1</return> should
                       not be used. In production environments the value of this option should be
                       kept at <return>2</return> (default value).  Support for value <return>1</return> removed in cURL 7.28.1.
                       <info>CURLOPT_SSLVERSION</info> One of <info>CURL_SSLVERSION_DEFAULT</info> (0), <info>CURL_SSLVERSION_TLSv1</info>
                       (1), <info>CURL_SSLVERSION_SSLv2</info> (2), <info>CURL_SSLVERSION_SSLv3</info> (3),
                       <info>CURL_SSLVERSION_TLSv1_0</info> (4), <info>CURL_SSLVERSION_TLSv1_1</info> (5),
                       <info>CURL_SSLVERSION_TLSv1_2</info> (6) or <info>CURL_SSLVERSION_TLSv1_3</info> (7). The maximum TLS
                       version can be set by using one of the <info>CURL_SSLVERSION_MAX_*</info> constants. It is
                       also possible to OR one of the <info>CURL_SSLVERSION_*</info> constants with one of the
                       <info>CURL_SSLVERSION_MAX_*</info> constants. <info>CURL_SSLVERSION_MAX_DEFAULT</info> (the maximum
                       version supported by the library), <info>CURL_SSLVERSION_MAX_TLSv1_0</info>,
                       <info>CURL_SSLVERSION_MAX_TLSv1_1</info>, <info>CURL_SSLVERSION_MAX_TLSv1_2</info>, or
                       <info>CURL_SSLVERSION_MAX_TLSv1_3</info>.  Your best bet is to not set this and let it use
                       the default. Setting it to 2 or 3 is very dangerous given the known
                       vulnerabilities in SSLv2 and SSLv3.   <info>CURLOPT_PROXY_SSL_OPTIONS</info> Set proxy SSL
                       behavior options, which is a bitmask of any of the following constants:
                       <info>CURLSSLOPT_ALLOW_BEAST</info>: do not attempt to use any workarounds for a security
                       flaw in the SSL3 and TLS1.0 protocols.  <info>CURLSSLOPT_NO_REVOKE</info>: disable
                       certificate revocation checks for those SSL backends where such behavior is
                       present. (curl &gt;= 7.44.0)  <info>CURLSSLOPT_NO_PARTIALCHAIN</info>: do not accept
                       "partial"  certificate chains, which it otherwise does by default. (curl
                       &gt;= 7.68.0)   Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
                       <info>CURLOPT_PROXY_SSL_VERIFYHOST</info> Set to <return>2</return> to verify in the HTTPS proxy's
                       certificate name fields against the proxy name.  When set to <return>0</return> the connection
                       succeeds regardless of the names used in the certificate.  Use that ability
                       with caution!  <return>1</return> treated as a debug option in curl 7.28.0 and earlier.  From
                       curl 7.28.1 to 7.65.3 <info>CURLE_BAD_FUNCTION_ARGUMENT</info> is returned. From curl
                       7.66.0 onwards <return>1</return> and <return>2</return> is treated as the same value. In production
                       environments the value of this option should be kept at <return>2</return> (default value).
                       Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
                       <info>CURLOPT_PROXY_SSLVERSION</info> One of <info>CURL_SSLVERSION_DEFAULT</info>,
                       <info>CURL_SSLVERSION_TLSv1</info>, <info>CURL_SSLVERSION_TLSv1_0</info>, <info>CURL_SSLVERSION_TLSv1_1</info>,
                       <info>CURL_SSLVERSION_TLSv1_2</info>, <info>CURL_SSLVERSION_TLSv1_3</info>,
                       <info>CURL_SSLVERSION_MAX_DEFAULT</info>, <info>CURL_SSLVERSION_MAX_TLSv1_0</info>,
                       <info>CURL_SSLVERSION_MAX_TLSv1_1</info>, <info>CURL_SSLVERSION_MAX_TLSv1_2</info>,
                       <info>CURL_SSLVERSION_MAX_TLSv1_3</info> or <info>CURL_SSLVERSION_SSLv3</info>.  Your best bet is to
                       not set this and let it use the default <info>CURL_SSLVERSION_DEFAULT</info> which will
                       attempt to figure out the remote SSL protocol version.   Available since PHP
                       7.3.0 and libcurl &gt;= cURL 7.52.0. <info>CURLOPT_STREAM_WEIGHT</info> Set the numerical
                       stream weight (a number between 1 and 256).  Added in cURL 7.46.0. Available
                       since PHP 7.0.7. <info>CURLOPT_TCP_KEEPALIVE</info> If set to <return>1</return>, TCP keepalive probes will
                       be sent. The delay and frequency of these probes can be controlled by the
                       <info>CURLOPT_TCP_KEEPIDLE</info> and <info>CURLOPT_TCP_KEEPINTVL</info> options, provided the
                       operating system supports them. If set to <return>0</return> (default) keepalive probes are
                       disabled.  Added in cURL 7.25.0. <info>CURLOPT_TCP_KEEPIDLE</info> Sets the delay, in
                       seconds, that the operating system will wait while the connection is idle
                       before sending keepalive probes, if <info>CURLOPT_TCP_KEEPALIVE</info> is enabled. Not all
                       operating systems support this option. The default is <return>60</return>.  Added in cURL
                       7.25.0. <info>CURLOPT_TCP_KEEPINTVL</info> Sets the interval, in seconds, that the
                       operating system will wait between sending keepalive probes, if
                       <info>CURLOPT_TCP_KEEPALIVE</info> is enabled. Not all operating systems support this
                       option. The default is <return>60</return>.  Added in cURL 7.25.0. <info>CURLOPT_TIMECONDITION</info> How
                       <info>CURLOPT_TIMEVALUE</info> is treated. Use <info>CURL_TIMECOND_IFMODSINCE</info> to return the page
                       only if it has been modified since the time specified in <info>CURLOPT_TIMEVALUE</info>.
                       If it hasn't been modified, a <return>"304 Not Modified"</return> header will be returned
                       assuming <info>CURLOPT_HEADER</info> is <info>true</info>. Use <info>CURL_TIMECOND_IFUNMODSINCE</info> for the
                       reverse effect. Use <info>CURL_TIMECOND_NONE</info> to ignore <info>CURLOPT_TIMEVALUE</info> and always
                       return the page. <info>CURL_TIMECOND_NONE</info> is the default.  Before cURL 7.46.0 the
                       default was <info>CURL_TIMECOND_IFMODSINCE</info>. <info>CURLOPT_TIMEOUT</info> The maximum number of
                       seconds to allow cURL functions to execute.  <info>CURLOPT_TIMEOUT_MS</info> The maximum
                       number of milliseconds to allow cURL functions to execute.  If libcurl is
                       built to use the standard system name resolver, that portion of the connect
                       will still use full-second resolution for timeouts with a minimum timeout
                       allowed of one second.  Added in cURL 7.16.2. <info>CURLOPT_TIMEVALUE</info> The time in
                       seconds since January 1st, 1970. The time will be used by
                       <info>CURLOPT_TIMECONDITION</info>.  <info>CURLOPT_TIMEVALUE_LARGE</info> The time in seconds since
                       January 1st, 1970. The time will be used by <info>CURLOPT_TIMECONDITION</info>. Defaults
                       to zero. The difference between this option and <info>CURLOPT_TIMEVALUE</info> is the type
                       of the argument. On systems where 'long' is only 32 bit wide,  this option
                       has to be used to set dates beyond the year 2038.  Added in cURL 7.59.0.
                       Available since PHP 7.3.0. <info>CURLOPT_UPKEEP_INTERVAL_MS</info> Some protocols have
                       "connection upkeep" mechanisms. These mechanisms usually send some traffic on
                       existing connections in order to keep them alive. This option defines the
                       connection upkeep interval. Currently, the only protocol with a connection
                       upkeep mechanism is HTTP/2. When the connection upkeep interval is exceeded,
                       an HTTP/2 PING frame is sent on the connection. Default is <return>60</return> seconds.
                       <info>CURLOPT_UPLOAD_BUFFERSIZE</info> Preferred buffer size in bytes for the cURL upload
                       buffer. The upload buffer size by default is 64 kilobytes. The maximum buffer
                       size allowed to be set is 2 megabytes. The minimum buffer size allowed to be
                       set is 16 kilobytes.  <info>CURLOPT_MAX_RECV_SPEED_LARGE</info> If a download exceeds this
                       speed (counted in bytes per second) on cumulative average during the
                       transfer, the transfer will pause to keep the average rate less than or equal
                       to the parameter value. Defaults to unlimited speed.  Added in cURL 7.15.5.
                       <info>CURLOPT_MAX_SEND_SPEED_LARGE</info> If an upload exceeds this speed (counted in
                       bytes per second) on cumulative average during the transfer, the transfer
                       will pause to keep the average rate less than or equal to the parameter
                       value. Defaults to unlimited speed.  Added in cURL 7.15.5.
                       <info>CURLOPT_SSH_AUTH_TYPES</info> A bitmask consisting of one or more of
                       <info>CURLSSH_AUTH_PUBLICKEY</info>,  <info>CURLSSH_AUTH_PASSWORD</info>,  <info>CURLSSH_AUTH_HOST</info>,
                       <info>CURLSSH_AUTH_KEYBOARD</info>. Set to  <info>CURLSSH_AUTH_ANY</info> to let libcurl pick one.
                       Added in cURL 7.16.1.  <info>CURLOPT_IPRESOLVE</info> Allows an application to select what
                       kind of IP addresses to use when resolving host names. This is only
                       interesting when using host names that resolve addresses using more than one
                       version of IP, possible values are <info>CURL_IPRESOLVE_WHATEVER</info>,
                       <info>CURL_IPRESOLVE_V4</info>,  <info>CURL_IPRESOLVE_V6</info>, by default <info>CURL_IPRESOLVE_WHATEVER</info>.
                       Added in cURL 7.10.8. <info>CURLOPT_FTP_FILEMETHOD</info> Tell curl which method to use to
                       reach a file on a FTP(S) server. Possible values are <info>CURLFTPMETHOD_DEFAULT</info>,
                       <info>CURLFTPMETHOD_MULTICWD</info>, <info>CURLFTPMETHOD_NOCWD</info>, and <info>CURLFTPMETHOD_SINGLECWD</info>.
                       Added in cURL 7.15.1.
                       
                       <info>CURLHEADER_UNIFIED</info>: the headers specified in <info>CURLOPT_HTTPHEADER</info> will be used
                       in requests both to servers and proxies. With this option enabled,
                       <info>CURLOPT_PROXYHEADER</info> will not have any effect.
                       
                       <info>CURLHEADER_SEPARATE</info>: makes <info>CURLOPT_HTTPHEADER</info> headers only get sent to a
                       server and not to a proxy. Proxy headers must be set with <info>CURLOPT_PROXYHEADER</info>
                       to get used. Note that if a non-CONNECT request is sent to a proxy, libcurl
                       will send both server headers and proxy headers. When doing CONNECT, libcurl
                       will send <info>CURLOPT_PROXYHEADER</info> headers only to the proxy and then
                       <info>CURLOPT_HTTPHEADER</info> headers only to the server.
                       
                       Defaults to <info>CURLHEADER_SEPARATE</info> as of cURL 7.42.1, and <info>CURLHEADER_UNIFIED</info>
                       before.
                       
                       The HTTP authentication method(s) to use. The options are: <info>CURLAUTH_BASIC</info>,
                       <info>CURLAUTH_DIGEST</info>, <info>CURLAUTH_GSSNEGOTIATE</info>, <info>CURLAUTH_NTLM</info>, <info>CURLAUTH_AWS_SIGV4</info>,
                       <info>CURLAUTH_ANY</info>, and <info>CURLAUTH_ANYSAFE</info>.
                       
                       The bitwise <return>|</return> (or) operator can be used to combine more than one method. If
                       this is done, cURL will poll the server to see what methods it supports and
                       pick the best one.
                       
                       <info>CURLAUTH_ANY</info> sets all bits. cURL will automatically select the one it finds
                       most secure.
                       
                       <info>CURLAUTH_ANYSAFE</info> sets all bits except <return>CURLAUTH_BASIC</return>. cURL will automatically
                       select the one it finds most secure.
                       
                       Bitmask of <info>CURLPROTO_*</info> values. If used, this bitmask  limits what protocols
                       libcurl may use in the transfer. This allows you to have a libcurl built to
                       support a wide range of protocols but still limit specific transfers to only
                       be allowed to use a subset of them. By default libcurl will accept all
                       protocols it supports.  See also <info>CURLOPT_REDIR_PROTOCOLS</info>.
                       
                       Valid protocol options are:  <info>CURLPROTO_HTTP</info>, <info>CURLPROTO_HTTPS</info>, <info>CURLPROTO_FTP</info>,
                       <info>CURLPROTO_FTPS</info>, <info>CURLPROTO_SCP</info>, <info>CURLPROTO_SFTP</info>, <info>CURLPROTO_TELNET</info>,
                       <info>CURLPROTO_LDAP</info>, <info>CURLPROTO_LDAPS</info>, <info>CURLPROTO_DICT</info>, <info>CURLPROTO_FILE</info>,
                       <info>CURLPROTO_TFTP</info>, <info>CURLPROTO_MQTT</info>, <info>CURLPROTO_ALL</info>
                       
                       The SOCKS5 authentication method(s) to use. The options are: <info>CURLAUTH_BASIC</info>,
                       <info>CURLAUTH_GSSAPI</info>, <info>CURLAUTH_NONE</info>.
                       
                       The bitwise <return>|</return> (or) operator can be used to combine more than one method. If
                       this is done, cURL will poll the server to see what methods it supports and
                       pick the best one.
                       
                       <info>CURLAUTH_BASIC</info> allows username/password authentication.
                       
                       <info>CURLAUTH_GSSAPI</info> allows GSS-API authentication.
                       
                       <info>CURLAUTH_NONE</info> allows no authentication.
                       
                       Defaults to <return>CURLAUTH_BASIC|CURLAUTH_GSSAPI</return>. Set the actual username and
                       password with the <info>CURLOPT_PROXYUSERPWD</info> option.
                       
                       <info>CURLSSLOPT_ALLOW_BEAST</info>: do not attempt to use any workarounds for a security
                       flaw in the SSL3 and TLS1.0 protocols.
                       
                       <info>CURLSSLOPT_NO_REVOKE</info>: disable certificate revocation checks for those SSL
                       backends where such behavior is present.
                       
                       <info>CURLSSLOPT_AUTO_CLIENT_CERT</info>: automatically locate and use a client
                       certificate for authentication, when requested by the server. This option is
                       only supported for Schannel (the native Windows SSL library).
                       
                       <info>CURLSSLOPT_NATIVE_CA</info>: use the operating system's native CA store for
                       certificate verification. Works only on Windows when built to use OpenSSL.
                       This option is experimental and behavior is subject to change.
                       
                       <info>CURLSSLOPT_NO_PARTIALCHAIN</info>: do not accept "partial" certificate chains, which
                       cURL otherwise does by default. This option is only supported for OpenSSL and
                       will fail the certificate verification if the chain ends with an intermediate
                       certificate and not with a root certificate.
                       
                       <info>CURLSSLOPT_REVOKE_BEST_EFFORT</info>: ignore certificate revocation checks in case
                       of missing or offline distribution points for those SSL backends where such
                       behavior is present. This option is only supported for Schannel (the native
                       Windows SSL library). If combined with <info>CURLSSLOPT_NO_REVOKE</info>, the latter takes
                       precedence.
                       
                       Your best bet is to not set this and let it use the default. Setting it to 2
                       or 3 is very dangerous given the known vulnerabilities in SSLv2 and SSLv3.
                       
                       <info>CURLSSLOPT_ALLOW_BEAST</info>: do not attempt to use any workarounds for a security
                       flaw in the SSL3 and TLS1.0 protocols.
                       
                       <info>CURLSSLOPT_NO_REVOKE</info>: disable certificate revocation checks for those SSL
                       backends where such behavior is present. (curl &gt;= 7.44.0)
                       
                       <info>CURLSSLOPT_NO_PARTIALCHAIN</info>: do not accept "partial"  certificate chains,
                       which it otherwise does by default. (curl &gt;= 7.68.0)
                       
                       Your best bet is to not set this and let it use the default
                       <info>CURL_SSLVERSION_DEFAULT</info> which will attempt to figure out the remote SSL
                       protocol version.
                       
                       <strong>$value</strong> should be a <info>string</info> for the following values of the <strong>$option</strong> parameter:
                       OptionSet <strong>$value</strong> toNotes<info>CURLOPT_ABSTRACT_UNIX_SOCKET</info> Enables the use of an
                       abstract Unix domain socket instead of  establishing a TCP connection to a
                       host and sets the path to the given <info>string</info>. This option shares the same
                       semantics as <info>CURLOPT_UNIX_SOCKET_PATH</info>. These two options share the same
                       storage and therefore only one of them can be set per handle.   Available
                       since PHP 7.3.0 and cURL 7.53.0 <info>CURLOPT_ALTSVC</info> Pass the filename for cURL to
                       use as the Alt-Svc cache file to read existing cache contents from and
                       possibly also write it back to a after a transfer, unless
                       <info>CURLALTSVC_READONLYFILE</info> is set via <info>CURLOPT_ALTSVC_CTRL</info>.  <info>CURLOPT_ALTSVC_CTRL</info>
                       Populate the bitmask with the correct set of features to instruct cURL how to
                       handle Alt-Svc for the transfers using this handle. cURL only accepts Alt-Svc
                       headers over HTTPS. It will also only complete a request to an alternative
                       origin if that origin is properly hosted over HTTPS. Setting any bit will
                       enable the alt-svc engine. The options are: <info>CURLALTSVC_H1</info>, <info>CURLALTSVC_H2</info>,
                       <info>CURLALTSVC_H3</info>, and <info>CURLALTSVC_READONLYFILE</info>.  <info>CURLOPT_AWS_SIGV4</info> Provides AWS
                       V4 signature authentication on HTTP(S) header.  This option overrides any
                       other authentication types that have been set in <info>CURLOPT_HTTPAUTH</info>. This
                       method cannot be combined with other authentication types.  <info>CURLOPT_CAINFO</info>
                       The name of a file holding one or more certificates to verify the peer with.
                       This only makes sense when used in combination with <info>CURLOPT_SSL_VERIFYPEER</info>.
                       Might require an absolute path. <info>CURLOPT_CAINFO_BLOB</info> The name of a PEM file
                       holding one or more certificates to verify the peer with. This option
                       overrides <info>CURLOPT_CAINFO</info>.  Available as of PHP 8.2.0 and cURL 7.77.0
                       <info>CURLOPT_CAPATH</info> A directory that holds multiple CA certificates. Use this
                       option alongside <info>CURLOPT_SSL_VERIFYPEER</info>.  <info>CURLOPT_COOKIE</info> The contents of the
                       <return>"Cookie: "</return> header to be used in the HTTP request. Note that multiple cookies
                       are separated with a semicolon followed by a space (e.g., "<return>fruit=apple;
                       colour=red</return>")  <info>CURLOPT_COOKIEFILE</info> The name of the file containing the cookie
                       data. The cookie file can be in Netscape format, or just plain HTTP-style
                       headers dumped into a file. If the name is an empty string, no cookies are
                       loaded, but cookie handling is still enabled.  <info>CURLOPT_COOKIEJAR</info> The name of
                       a file to save all internal cookies to when the handle is closed,  e.g. after
                       a call to curl_close.  <info>CURLOPT_COOKIELIST</info> A cookie string (i.e. a single line
                       in Netscape/Mozilla format, or a regular HTTP-style Set-Cookie header) adds
                       that single cookie to the internal cookie store. <return>"ALL"</return> erases all cookies
                       held in memory. <return>"SESS"</return> erases all session cookies held in memory. <return>"FLUSH"</return>
                       writes all known cookies to the file specified by <info>CURLOPT_COOKIEJAR</info>. <return>"RELOAD"</return>
                       loads all cookies from the files specified by <info>CURLOPT_COOKIEFILE</info>.  Available
                       since cURL 7.14.1. <info>CURLOPT_CUSTOMREQUEST</info> A custom request method to use
                       instead of <return>"GET"</return> or <return>"HEAD"</return> when doing a HTTP request. This is useful for
                       doing <return>"DELETE"</return> or other, more obscure HTTP requests. Valid values are things
                       like <return>"GET"</return>, <return>"POST"</return>, <return>"CONNECT"</return> and so on; i.e. Do not enter a whole HTTP
                       request line here. For instance, entering <return>"GET /index.html HTTP/1.0\r\n\r\n"</return>
                       would be incorrect.  Don't do this without making sure the server supports
                       the custom request method first.   <info>CURLOPT_DEFAULT_PROTOCOL</info> The default
                       protocol to use if the URL is missing a scheme name.  Added in cURL 7.45.0.
                       Available since PHP 7.0.7. <info>CURLOPT_DNS_INTERFACE</info> Set the name of the network
                       interface that the DNS resolver should bind to. This must be an interface
                       name (not an address).  Added in cURL 7.33.0. Available since PHP 7.0.7.
                       <info>CURLOPT_DNS_LOCAL_IP4</info> Set the local IPv4 address that the resolver should
                       bind to. The argument should contain a single numerical IPv4 address as a
                       string.  Added in cURL 7.33.0. Available since PHP 7.0.7.
                       <info>CURLOPT_DNS_LOCAL_IP6</info> Set the local IPv6 address that the resolver should
                       bind to. The argument should contain a single numerical IPv6 address as a
                       string.  Added in cURL 7.33.0. Available since PHP 7.0.7. <info>CURLOPT_EGDSOCKET</info>
                       Like <info>CURLOPT_RANDOM_FILE</info>, except a filename to an Entropy Gathering Daemon
                       socket.  <info>CURLOPT_ENCODING</info> The contents of the <return>"Accept-Encoding: "</return> header.
                       This enables decoding of the response. Supported encodings are <return>"identity"</return>,
                       <return>"deflate"</return>, and <return>"gzip"</return>. If an empty string, <return>""</return>, is set, a header containing
                       all supported encoding types is sent.  Added in cURL 7.10. <info>CURLOPT_FTPPORT</info>
                       The value which will be used to get the IP address to use for the FTP "PORT"
                       instruction. The "PORT" instruction tells the remote server to connect to our
                       specified IP address.  The string may be a plain IP address, a hostname, a
                       network interface name (under Unix), or just a plain '-' to use the systems
                       default IP address.  <info>CURLOPT_HSTS</info> HSTS (HTTP Strict Transport Security) cache
                       file name.  <info>CURLOPT_HSTS_CTRL</info> Controls HSTS (HTTP Strict Transport Security)
                       behavior. Populate the bitmask with the correct set of features to instruct
                       cURL how to handle HSTS for the transfers using this handle. <info>CURLHSTS_ENABLE</info>
                       enables the in-memory HSTS cache. If the HSTS cache file is defined, set
                       <info>CURLHSTS_READONLYFILE</info> to make the file read-only.  <info>CURLOPT_INTERFACE</info> The name
                       of the outgoing network interface to use. This can be an interface name, an
                       IP address or a host name.  <info>CURLOPT_KEYPASSWD</info> The password required to use
                       the <info>CURLOPT_SSLKEY</info>  or <info>CURLOPT_SSH_PRIVATE_KEYFILE</info> private key.   Added in
                       cURL 7.16.1.  <info>CURLOPT_KRB4LEVEL</info> The KRB4 (Kerberos 4) security level. Any of
                       the following values (in order from least to most powerful) are valid:
                       <return>"clear"</return>, <return>"safe"</return>, <return>"confidential"</return>, <return>"private".</return>. If the string does not match one
                       of these, <return>"private"</return> is used. Setting this option to <info>null</info> will disable KRB4
                       security. Currently KRB4 security only works with FTP transactions.
                       <info>CURLOPT_LOGIN_OPTIONS</info> Can be used to set protocol specific login options,
                       such as the preferred authentication mechanism via "AUTH=NTLM" or "AUTH=*",
                       and should be used in conjunction with the <info>CURLOPT_USERNAME</info> option.  Added in
                       cURL 7.34.0. Available since PHP 7.0.7. <info>CURLOPT_PINNEDPUBLICKEY</info> Set the
                       pinned public key. The string can be the file name of your pinned public key.
                       The file format expected is "PEM" or "DER". The string can also be any number
                       of base64 encoded sha256 hashes preceded by "sha256//" and separated by ";".
                       Added in cURL 7.39.0. Available since PHP 7.0.7. <info>CURLOPT_POSTFIELDS</info> The full
                       data to post in a HTTP "POST" operation. This parameter can either be passed
                       as a urlencoded string like '<return>para1=val1&para2=val2&...</return>'  or as an array with
                       the field name as key and field data as value. If <strong>$value</strong> is an array, the
                       <return>Content-Type</return> header will be set to <return>multipart/form-data</return>.  Files can be sent
                       using <class>CURLFile</class> or <class>CURLStringFile</class>, in which case <strong>$value</strong> must be an array.
                       <info>CURLOPT_PRIVATE</info> Any data that should be associated with this cURL handle.
                       This data can subsequently be retrieved with the <info>CURLINFO_PRIVATE</info> option of
                       <strong>curl_getinfo()</strong>. cURL does nothing with this data. When using a cURL multi
                       handle, this private data is typically a unique key to identify a standard
                       cURL handle.  Added in cURL 7.10.3.  <info>CURLOPT_PRE_PROXY</info> Set a <info>string</info> holding
                       the host name or dotted numerical  IP address to be used as the preproxy that
                       curl connects to before  it connects to the HTTP(S) proxy specified in the
                       <info>CURLOPT_PROXY</info> option for the upcoming request. The preproxy can only be a
                       SOCKS proxy and it should be prefixed with <return>[scheme]://</return> to specify which kind
                       of socks is used. A numerical IPv6 address must be written within [brackets].
                       Setting the preproxy to an empty string explicitly disables the use of a
                       preproxy.  To specify port number in this string, append <return>:[port]</return> to the end
                       of the host name. The proxy's port number may optionally be  specified with
                       the separate option <info>CURLOPT_PROXYPORT</info>.  Defaults to using port 1080 for
                       proxies if a port is not specified.  Available since PHP 7.3.0 and libcurl
                       &gt;= cURL 7.52.0. <info>CURLOPT_PROXY</info> The HTTP proxy to tunnel requests through.
                       <info>CURLOPT_PROXY_SERVICE_NAME</info> The proxy authentication service name.  Added in
                       cURL 7.43.0 for HTTP proxies, and in cURL 7.49.0 for SOCKS5 proxies.
                       Available since PHP 7.0.7. <info>CURLOPT_PROXY_CAINFO</info> The path to proxy Certificate
                       Authority (CA) bundle. Set the path as a <info>string</info> naming a file holding one or
                       more certificates to verify the HTTPS proxy with. This option is for
                       connecting to an HTTPS proxy, not an HTTPS server. Defaults set to the system
                       path where libcurl's cacert bundle is assumed to be stored.  Available since
                       PHP 7.3.0 and libcurl &gt;= cURL 7.52.0. <info>CURLOPT_PROXY_CAINFO_BLOB</info> The name
                       of a PEM file holding one or more certificates to verify the HTTPS proxy
                       with. This option is for connecting to an HTTPS proxy, not an HTTPS server.
                       Defaults set to the system path where libcurl's cacert bundle is assumed to
                       be stored.  Available as of PHP 8.2.0 and libcurl &gt;= cURL 7.77.0.
                       <info>CURLOPT_PROXY_CAPATH</info> The directory holding multiple CA certificates to verify
                       the HTTPS proxy with.  Available since PHP 7.3.0 and libcurl &gt;= cURL
                       7.52.0. <info>CURLOPT_PROXY_CRLFILE</info> Set the file name with the concatenation of CRL
                       (Certificate Revocation List)  in PEM format to use in the certificate
                       validation that occurs during  the SSL exchange.  Available since PHP 7.3.0
                       and libcurl &gt;= cURL 7.52.0. <info>CURLOPT_PROXY_KEYPASSWD</info> Set the string be used
                       as the password required to use the  <info>CURLOPT_PROXY_SSLKEY</info> private key. You
                       never needed a  passphrase to load a certificate but you need one to load
                       your private key. This option is for connecting to an HTTPS proxy, not an
                       HTTPS server.  Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
                       <info>CURLOPT_PROXY_PINNEDPUBLICKEY</info> Set the pinned public key for HTTPS proxy. The
                       string can be the file name  of your pinned public key. The file format
                       expected is "PEM" or "DER".  The string can also be any number of base64
                       encoded sha256 hashes preceded by  "sha256//" and separated by ";"  Available
                       since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0. <info>CURLOPT_PROXY_SSLCERT</info> The file
                       name of your client certificate used to connect to the HTTPS proxy.  The
                       default format is "P12" on Secure Transport and "PEM" on other engines,  and
                       can be changed with <info>CURLOPT_PROXY_SSLCERTTYPE</info>. With NSS or Secure Transport,
                       this can also be the nickname of the certificate  you wish to authenticate
                       with as it is named in the security database.  If you want to use a file from
                       the current directory, please precede it with  "./" prefix, in order to avoid
                       confusion with a nickname.  Available since PHP 7.3.0 and libcurl &gt;= cURL
                       7.52.0. <info>CURLOPT_PROXY_SSLCERTTYPE</info> The format of your client certificate used
                       when connecting to an HTTPS proxy. Supported formats are "PEM" and "DER",
                       except with Secure Transport.  OpenSSL (versions 0.9.3 and later) and Secure
                       Transport  (on iOS 5 or later, or OS X 10.7 or later) also support "P12" for
                       PKCS#12-encoded files. Defaults to "PEM".  Available since PHP 7.3.0 and
                       libcurl &gt;= cURL 7.52.0. <info>CURLOPT_PROXY_SSL_CIPHER_LIST</info> The list of ciphers
                       to use for the connection to the HTTPS proxy.  The list must be syntactically
                       correct, it consists of one or more cipher  strings separated by colons.
                       Commas or spaces are also acceptable separators  but colons are normally
                       used, !, - and + can be used as operators.  Available since PHP 7.3.0 and
                       libcurl &gt;= cURL 7.52.0. <info>CURLOPT_PROXY_TLS13_CIPHERS</info> The list of cipher
                       suites to use for the TLS 1.3 connection to a proxy. The list must be
                       syntactically correct, it consists of one or more  cipher suite strings
                       separated by colons. This option is currently used  only when curl is built
                       to use OpenSSL 1.1.1 or later.  If you are using a different SSL backend you
                       can try setting  TLS 1.3 cipher suites by using the
                       <info>CURLOPT_PROXY_SSL_CIPHER_LIST</info> option.  Available since PHP 7.3.0 and libcurl
                       &gt;= cURL 7.61.0. Available when built with OpenSSL &gt;= 1.1.1.
                       <info>CURLOPT_PROXY_SSLKEY</info> The file name of your private key used for connecting to
                       the HTTPS proxy.  The default format is "PEM" and can be changed with
                       <info>CURLOPT_PROXY_SSLKEYTYPE</info>.  (iOS and Mac OS X only) This option is ignored if
                       curl was built against Secure Transport.  Available since PHP 7.3.0 and
                       libcurl &gt;= cURL 7.52.0. Available if built TLS enabled.
                       <info>CURLOPT_PROXY_SSLKEYTYPE</info> The format of your private key. Supported formats
                       are "PEM", "DER" and "ENG".  Available since PHP 7.3.0 and libcurl &gt;= cURL
                       7.52.0. <info>CURLOPT_PROXY_TLSAUTH_PASSWORD</info> The password to use for the TLS
                       authentication method specified with the  <info>CURLOPT_PROXY_TLSAUTH_TYPE</info> option.
                       Requires that the  <info>CURLOPT_PROXY_TLSAUTH_USERNAME</info> option to also be set.
                       Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
                       <info>CURLOPT_PROXY_TLSAUTH_TYPE</info> The method of the TLS authentication used for the
                       HTTPS connection. Supported method is "SRP".  Secure Remote Password (SRP)
                       authentication for TLS provides mutual authentication  if both sides have a
                       shared secret. To use TLS-SRP, you must also set the
                       <info>CURLOPT_PROXY_TLSAUTH_USERNAME</info> and  <info>CURLOPT_PROXY_TLSAUTH_PASSWORD</info> options.
                       Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
                       <info>CURLOPT_PROXY_TLSAUTH_USERNAME</info> The username to use for the HTTPS proxy TLS
                       authentication method specified with the <info>CURLOPT_PROXY_TLSAUTH_TYPE</info> option.
                       Requires that the <info>CURLOPT_PROXY_TLSAUTH_PASSWORD</info> option to also be set.
                       Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0. <info>CURLOPT_PROXYUSERPWD</info>
                       A username and password formatted as <return>"[username]:[password]"</return> to use for the
                       connection to the proxy.  <info>CURLOPT_RANDOM_FILE</info> A filename to be used to seed
                       the random number generator for SSL.  <info>CURLOPT_RANGE</info> Range(s) of data to
                       retrieve in the format <return>"X-Y"</return> where X or Y are optional. HTTP transfers also
                       support several intervals, separated with commas in the format <return>"X-Y,N-M"</return>.
                       <info>CURLOPT_REFERER</info> The contents of the <return>"Referer: "</return> header to be used in a HTTP
                       request.  <info>CURLOPT_SASL_AUTHZID</info> The authorization identity (authzid) for the
                       transfer. Only applicable to the PLAIN SASL authentication mechanism where it
                       is optional. When not specified, only the authentication identity (authcid)
                       as specified by the username will be sent to the server, along with the
                       password. The server will derive the authzid from the authcid when not
                       provided, which it will then use internally.  <info>CURLOPT_SERVICE_NAME</info> The
                       authentication service name.  Added in cURL 7.43.0. Available since PHP
                       7.0.7. <info>CURLOPT_SSH_HOST_PUBLIC_KEY_MD5</info> A string containing 32 hexadecimal
                       digits. The string should be the  MD5 checksum of the remote host's public
                       key, and libcurl will reject  the connection to the host unless the md5sums
                       match.  This option is only for SCP and SFTP transfers.  Added in cURL
                       7.17.1.  <info>CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256</info> Base64-encoded SHA256 hash of the
                       remote host's public key. The transfer will fail if the given hash does not
                       match the hash the remote host provides.  <info>CURLOPT_SSH_PUBLIC_KEYFILE</info> The file
                       name for your public key. If not used, libcurl defaults to
                       $HOME/.ssh/id_dsa.pub if the HOME environment variable is set,  and just
                       "id_dsa.pub" in the current directory if HOME is not set.  Added in cURL
                       7.16.1.  <info>CURLOPT_SSH_PRIVATE_KEYFILE</info> The file name for your private key. If
                       not used, libcurl defaults to  $HOME/.ssh/id_dsa if the HOME environment
                       variable is set,  and just "id_dsa" in the current directory if HOME is not
                       set.  If the file is password-protected, set the password with
                       <info>CURLOPT_KEYPASSWD</info>.  Added in cURL 7.16.1.  <info>CURLOPT_SSL_CIPHER_LIST</info> A list of
                       ciphers to use for SSL. For example, <return>RC4-SHA</return> and <return>TLSv1</return> are valid cipher
                       lists.  <info>CURLOPT_SSL_EC_CURVES</info> A colon delimited list of elliptic curve
                       algorithms. For example, <return>X25519:P-521</return> is a valid list of two elliptic curves.
                       This option defines the client's key exchange algorithms in the SSL
                       handshake, if the SSL backend cURL is built to use supports it.
                       <info>CURLOPT_SSLCERT</info> The name of a file containing a PEM formatted certificate.
                       <info>CURLOPT_SSLCERTPASSWD</info> The password required to use the <info>CURLOPT_SSLCERT</info>
                       certificate.  <info>CURLOPT_SSLCERTTYPE</info> The format of the certificate. Supported
                       formats are <return>"PEM"</return> (default), <return>"DER"</return>, and <return>"ENG"</return>. As of OpenSSL 0.9.3, <return>"P12"</return>
                       (for PKCS#12-encoded files) is also supported.  Added in cURL 7.9.3.
                       <info>CURLOPT_SSLENGINE</info> The identifier for the crypto engine of the private SSL key
                       specified in <info>CURLOPT_SSLKEY</info>.  <info>CURLOPT_SSLENGINE_DEFAULT</info> The identifier for
                       the crypto engine used for asymmetric crypto operations.  <info>CURLOPT_SSLKEY</info> The
                       name of a file containing a private SSL key.  <info>CURLOPT_SSLKEYPASSWD</info> The secret
                       password needed to use the private SSL key specified in <info>CURLOPT_SSLKEY</info>.
                       Since this option contains a sensitive password, remember to keep the PHP
                       script it is contained within safe.   <info>CURLOPT_SSLKEYTYPE</info> The key type of the
                       private SSL key specified in <info>CURLOPT_SSLKEY</info>. Supported key types are <return>"PEM"</return>
                       (default), <return>"DER"</return>, and <return>"ENG"</return>.  <info>CURLOPT_TLS13_CIPHERS</info> The list of cipher suites
                       to use for the TLS 1.3 connection. The list must be  syntactically correct,
                       it consists of one or more cipher suite strings separated by colons.  This
                       option is currently used only when curl is built to use OpenSSL 1.1.1 or
                       later.  If you are using a different SSL backend you can try setting  TLS 1.3
                       cipher suites by using the <info>CURLOPT_SSL_CIPHER_LIST</info> option.  Available since
                       PHP 7.3.0 and libcurl &gt;= cURL 7.61.0. Available when built with OpenSSL
                       &gt;= 1.1.1. <info>CURLOPT_UNIX_SOCKET_PATH</info> Enables the use of Unix domain sockets
                       as connection endpoint and sets the path to the given <info>string</info>.  Added in cURL
                       7.40.0. Available since PHP 7.0.7. <info>CURLOPT_URL</info> The URL to fetch. This can
                       also be set when initializing a session with <strong>curl_init()</strong>.  <info>CURLOPT_USERAGENT</info>
                       The contents of the <return>"User-Agent: "</return> header to be used in a HTTP request.
                       <info>CURLOPT_USERNAME</info> The user name to use in authentication.  Added in cURL
                       7.19.1. <info>CURLOPT_PASSWORD</info> The password to use in authentication.  Added in
                       cURL 7.19.1. <info>CURLOPT_USERPWD</info> A username and password formatted as
                       <return>"[username]:[password]"</return> to use for the connection.  <info>CURLOPT_XOAUTH2_BEARER</info>
                       Specifies the OAuth 2.0 access token.  Added in cURL 7.33.0. Available since
                       PHP 7.0.7.
                       
                       Provides AWS V4 signature authentication on HTTP(S) header.
                       
                       This option overrides any other authentication types that have been set in
                       <info>CURLOPT_HTTPAUTH</info>. This method cannot be combined with other authentication
                       types.
                       
                       A custom request method to use instead of <return>"GET"</return> or <return>"HEAD"</return> when doing a HTTP
                       request. This is useful for doing <return>"DELETE"</return> or other, more obscure HTTP
                       requests. Valid values are things like <return>"GET"</return>, <return>"POST"</return>, <return>"CONNECT"</return> and so on;
                       i.e. Do not enter a whole HTTP request line here. For instance, entering <return>"GET
                       /index.html HTTP/1.0\r\n\r\n"</return> would be incorrect.  Don't do this without
                       making sure the server supports the custom request method first.
                       
                       Don't do this without making sure the server supports the custom request
                       method first.
                       
                       The default protocol to use if the URL is missing a scheme name.
                       
                       Set the name of the network interface that the DNS resolver should bind to.
                       This must be an interface name (not an address).
                       
                       Set the local IPv4 address that the resolver should bind to. The argument
                       should contain a single numerical IPv4 address as a string.
                       
                       Set the local IPv6 address that the resolver should bind to. The argument
                       should contain a single numerical IPv6 address as a string.
                       
                       HSTS (HTTP Strict Transport Security) cache file name.
                       
                       Controls HSTS (HTTP Strict Transport Security) behavior. Populate the bitmask
                       with the correct set of features to instruct cURL how to handle HSTS for the
                       transfers using this handle. <info>CURLHSTS_ENABLE</info> enables the in-memory HSTS
                       cache. If the HSTS cache file is defined, set <info>CURLHSTS_READONLYFILE</info> to make
                       the file read-only.
                       
                       The full data to post in a HTTP "POST" operation. This parameter can either
                       be passed as a urlencoded string like '<return>para1=val1&para2=val2&...</return>'  or as an
                       array with the field name as key and field data as value. If <strong>$value</strong> is an
                       array, the <return>Content-Type</return> header will be set to <return>multipart/form-data</return>.
                       
                       Files can be sent using <class>CURLFile</class> or <class>CURLStringFile</class>, in which case <strong>$value</strong> must
                       be an array.
                       
                       Secure Remote Password (SRP) authentication for TLS provides mutual
                       authentication  if both sides have a shared secret. To use TLS-SRP, you must
                       also set the  <info>CURLOPT_PROXY_TLSAUTH_USERNAME</info> and
                       <info>CURLOPT_PROXY_TLSAUTH_PASSWORD</info> options.
                       
                       The secret password needed to use the private SSL key specified in
                       <info>CURLOPT_SSLKEY</info>.  Since this option contains a sensitive password, remember to
                       keep the PHP script it is contained within safe.
                       
                       Since this option contains a sensitive password, remember to keep the PHP
                       script it is contained within safe.
                       
                       <strong>$value</strong> should be an array for the following values of the <strong>$option</strong> parameter:
                       OptionSet <strong>$value</strong> toNotes<info>CURLOPT_CONNECT_TO</info> Connect to a specific host and
                       port instead of the URL's host and port. Accepts an array of strings with the
                       format <return>HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT</return>.  Added in cURL 7.49.0.
                       Available since PHP 7.0.7. <info>CURLOPT_HTTP200ALIASES</info> An array of HTTP 200
                       responses that will be treated as valid responses and not as errors.  Added
                       in cURL 7.10.3. <info>CURLOPT_HTTPHEADER</info> An array of HTTP header fields to set, in
                       the format  array('Content-type: text/plain', 'Content-length: 100')
                       <info>CURLOPT_POSTQUOTE</info> An array of FTP commands to execute on the server after the
                       FTP request has been performed.  <info>CURLOPT_PROXYHEADER</info> An array of custom HTTP
                       headers to pass to proxies.  Added in cURL 7.37.0. Available since PHP 7.0.7.
                       <info>CURLOPT_QUOTE</info> An array of FTP commands to execute on the server prior to the
                       FTP request.  <info>CURLOPT_RESOLVE</info> Provide a custom address for a specific host
                       and port pair. An array of hostname, port, and IP address strings, each
                       element separated by a colon. In the format:
                       array("example.com:80:127.0.0.1")   Added in cURL 7.21.3.
                       
                       <strong>$value</strong> should be a stream resource (using <strong>fopen()</strong>, for example) for the
                       following values of the <strong>$option</strong> parameter: OptionSet <strong>$value</strong> to<info>CURLOPT_FILE</info>
                       The file that the transfer should be written to. The default is <return>STDOUT</return> (the
                       browser window). <info>CURLOPT_INFILE</info> The file that the transfer should be read
                       from when uploading. <info>CURLOPT_STDERR</info> An alternative location to output errors
                       to instead of <return>STDERR</return>. <info>CURLOPT_WRITEHEADER</info> The file that the header part of
                       the transfer is written to.
                       
                       <strong>$value</strong> should be the name of a valid function or a Closure  for the following
                       values of the <strong>$option</strong> parameter: OptionSet <strong>$value</strong>
                       toNotes<info>CURLOPT_HEADERFUNCTION</info> A callback accepting two parameters. The first
                       is the cURL resource, the second is a string with the header data to be
                       written. The header data must be written by this callback. Return the number
                       of  bytes written. <info>CURLOPT_PASSWDFUNCTION</info> A callback accepting three
                       parameters.  The first is the cURL resource, the second is a string
                       containing a password prompt, and the third is the maximum password length.
                       Return the string containing the password. Removed as of PHP
                       7.3.0.<info>CURLOPT_PROGRESSFUNCTION</info> A callback accepting five parameters. The
                       first is the cURL resource, the second is the total number of bytes expected
                       to be downloaded in this transfer, the third is the number of bytes
                       downloaded so far, the fourth is the total number of bytes expected to be
                       uploaded in this transfer, and the fifth is the number of bytes uploaded so
                       far.  The callback is only called when the <info>CURLOPT_NOPROGRESS</info> option is set
                       to <info>false</info>.  Return a non-zero value to abort the transfer. In which case, the
                       transfer will set a <info>CURLE_ABORTED_BY_CALLBACK</info> error. <info>CURLOPT_READFUNCTION</info> A
                       callback accepting three parameters.  The first is the cURL resource, the
                       second is a stream resource provided to cURL through the option
                       <info>CURLOPT_INFILE</info>, and the third is the maximum amount of data to be read. The
                       callback must return a string with a length equal or smaller than the amount
                       of data requested, typically by reading it from the passed stream resource.
                       It should return an empty string to signal <return>EOF</return>. <info>CURLOPT_WRITEFUNCTION</info> A
                       callback accepting two parameters.  The first is the cURL resource, and the
                       second is a string with the data to be written. The data must be saved by
                       this callback. It must return the exact number of bytes written  or the
                       transfer will be aborted with an error. <info>CURLOPT_XFERINFOFUNCTION</info> A callback
                       accepting two parameters. Has a similar purpose as <info>CURLOPT_PROGRESSFUNCTION</info>
                       but is more modern and the preferred option from cURL.  Added in 7.32.0.
                       Available as of PHP 8.2.0.
                       
                       A callback accepting five parameters. The first is the cURL resource, the
                       second is the total number of bytes expected to be downloaded in this
                       transfer, the third is the number of bytes downloaded so far, the fourth is
                       the total number of bytes expected to be uploaded in this transfer, and the
                       fifth is the number of bytes uploaded so far.
                       
                       The callback is only called when the <info>CURLOPT_NOPROGRESS</info> option is set to
                       <info>false</info>.
                       
                       Return a non-zero value to abort the transfer. In which case, the transfer
                       will set a <info>CURLE_ABORTED_BY_CALLBACK</info> error.
                       
                       Other values: OptionSet <strong>$value</strong> to<info>CURLOPT_SHARE</info> A result of <strong>curl_share_init()</strong>.
                       Makes the cURL handle to use the data from the shared handle.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>curl_setopt_array()</strong>
   * <class>CURLFile</class>
   * <class>CURLStringFile</class>


