<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.get-resources" xmlns="http://docbook.org/ns/docbook">
 <refnamediv>
  <refname>get_resources</refname>
  <refpurpose>Returns active resources</refpurpose>
 </refnamediv>
 
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>array</type><methodname>get_resources</methodname>
   <methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>type</parameter><initializer>&null;</initializer></methodparam>
  </methodsynopsis>
  <para>
   Returns an array of all currently active <type>resource</type>s, optionally
   filtered by resource type.
  </para>
  <note>
   <simpara>
    This function is meant for debugging and testing purposes. It is not supposed
    to be used in production environments, especially not to access or even manipulate
    resources which are normally not accessible (e.g. the underlying stream resource
    of <classname>SplFileObject</classname> instances).
   </simpara>
  </note>
 </refsect1>

 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>type</parameter></term>
     <listitem>
      <para>
       If defined, this will cause <function>get_resources</function> to only
       return resources of the given type.
       <link linkend="resource">A list of resource types is available.</link>
      </para>
      <para>
       If the <type>string</type> <literal>Unknown</literal> is provided as
       the type, then only resources that are of an unknown type will be
       returned.
      </para>
      <para>
       If omitted, all resources will be returned.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>

 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   Returns an <type>array</type> of currently active resources, indexed by
   resource number.
  </para>
 </refsect1>

 <refsect1 role="changelog">
  &reftitle.changelog;
  <informaltable>
   <tgroup cols="2">
    <thead>
     <row>
      <entry>&Version;</entry>
      <entry>&Description;</entry>
     </row>
    </thead>
    <tbody>
     <row>
      <entry>8.0.0</entry>
      <entry>
       <parameter>type</parameter> is nullable now.
      </entry>
     </row>
    </tbody>
   </tgroup>
  </informaltable>
 </refsect1>

 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   <example>
    <title>Unfiltered <function>get_resources</function></title>
    <programlisting role="php">
<![CDATA[
<?php
$fp = tmpfile();
var_dump(get_resources());
?>
]]>
    </programlisting>
    &example.outputs.similar;
    <screen>
<![CDATA[
array(1) {
  [1]=>
  resource(1) of type (stream)
}
]]>
    </screen>
   </example>
   <example>
    <title>Filtered <function>get_resources</function></title>
    <programlisting role="php">
<![CDATA[
<?php
$fp = tmpfile();
var_dump(get_resources('stream'));
var_dump(get_resources('curl'));
?>
]]>
    </programlisting>
    &example.outputs.similar;
    <screen>
<![CDATA[
array(1) {
  [1]=>
  resource(1) of type (stream)
}
array(0) {
}
]]>
    </screen>
   </example>
  </para>
 </refsect1>

 <refsect1 role="seealso">
  &reftitle.seealso;
  <para>
   <simplelist>
    <member><function>get_loaded_extensions</function></member>
    <member><function>get_defined_constants</function></member>
    <member><function>get_defined_functions</function></member>
    <member><function>get_defined_vars</function></member>
   </simplelist>
  </para>
 </refsect1>

</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
