adu             Tue Mar 19 10:17:58 2002 EDT

  Added files:                 
    /phpdoc/ro/functions        var.xml 
  Log:
  Variable Functions - Romanian version
  

Index: phpdoc/ro/functions/var.xml
+++ phpdoc/ro/functions/var.xml
<?xml version="1.0" encoding="iso-8859-2"?>
<!-- $Revision: 1.1 $ -->
 <reference id="ref.variables">
  <title>Variabile</title>
  <titleabbrev>Variabile</titleabbrev>

  <partintro>
   <para>
    Pentru informații despre comportamentul variabilelor, consultați capitolul
    <link linkend="language.variables">Variabile</link>, secțiunea
    <link linkend="langref">Documentația limbajului</link> din manual.
   </para>
  </partintro>

  <refentry id="function.doubleval">
   <refnamediv>
    <refname>doubleval</refname>
    <refpurpose>Alias pentru <function>floatval</function></refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
    <para>
     Această funcție este un alias pentru funcția <function>floatval</function>.
    </para>
    <note>
     <para>
      Acest alias este inutil acum, în urma redenumirii unei funcții, dar în
      versiunile mai vechi ale PHP veți fi nevoiți să folosiți acest alias, întrucât
      <function>floatval</function> nu există în acele versiuni.
     </para>
    </note>
   </refsect1>
  </refentry>

  <refentry id="function.empty">
   <refnamediv>
    <refname>empty</refname>
    <refpurpose>Determină dacă o variabilă este definită</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>boolean</type><methodname>empty</methodname>
      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
     </methodsynopsis>
    <note>
     <para>
      <function>empty</function> este o construcție de limbaj.
     </para>
    </note>
    <para>
     Este inversul folosirii construcției 
     <literal>(boolean) <parameter>var</parameter></literal>,
     cu deosebirea că nu se generează mesaj de atenționare dacă
     variabila nu este definită. Consultați
     <link linkend="language.types.boolean.casting">conversia la
     boolean</link> pentru detalii.
    </para>
     <informalexample>
      <programlisting role="php">
<![CDATA[
$var = 0;

if (empty($var)) {  // este evaluată ca TRUE
    echo '$var este 0 sau nu este definită';
}

if (!isset($var)) { // este evaluată ca FALSE
    echo '$var nu este definită';
}
]]>
      </programlisting>
     </informalexample>

    <simpara>
     De notat că este lipsită de sens folosirea cu un parametru care
     nu reprezintă o variabilă. De exemplu,
     <command>empty (addslashes ($name))</command> nu are sens.
     In acest exemplu este verificat ceva ce nu reprezintă o variabilă
     că ar avea valoarea &false;.
    </simpara>
    <simpara>
     Mai consultați <function>isset</function> și
     <function>unset</function>.
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.floatval">
   <refnamediv>
    <refname>floatval</refname>
    <refpurpose>Returnează valoarea de tip float a unei variabile</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>float</type><methodname>floatval</methodname>
      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     Returnează valoarea de tip <type>float</type> a parametrului 
<parameter>var</parameter>.
    </simpara>
    <para>
     <parameter>var</parameter> poate să fie orice tip scalar. Nu se poate folosi
     <function>floatval</function> pe tablouri (<type>array</type>)
     sau obiecte (<type>object</type>).
    <informalexample>
      <programlisting role="php">
<![CDATA[
$var = '122.34343Gigi';
$float_value_of_var = floatval ($var);
print $float_value_of_var; // afișează 122.34343
]]>
      </programlisting>
     </informalexample>
    </para>
    <simpara>
     Mai consultați <function>intval</function>,
     <function>strval</function>, <function>settype</function> și
     <link linkend="language.types.type-juggling">Tipuri
     de date</link>.
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.gettype">
   <refnamediv>
    <refname>gettype</refname>
    <refpurpose>Returnează tipul unei variabile</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>string</type><methodname>gettype</methodname>
      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
     </methodsynopsis>
    <para>
     Returnează tipul variabilei PHP <parameter>var</parameter>.
    </para>
    <warning>
     <simpara>
      Nu folosiți niciodată <function>gettype</function> pentru a testa
      un anumit tip de dată pentru că șirul de caractere returnat poate să
      se schimbe la versiuni următoare. În plus, operația este și consumatoare
      de timp, deoarece implică comparație între șiruri de caractere.
     </simpara>
     <simpara>
      Se recomandă folosirea funcțiilor <literal>is_*</literal>.
     </simpara>
    </warning>
    <para>
     Valori posibile pentru șirul de caractere returnat sunt:
     <itemizedlist>
      <listitem>
       <simpara>"<type>boolean</type>" (începând cu PHP 4)</simpara>
      </listitem>
      <listitem>
       <simpara>"<type>integer</type>"</simpara>
      </listitem>
      <listitem>
       <simpara>"<type>double</type>" (din motive istorice, se returnează
       "double" în loc de "float" în cazul tipului <type>float</type>)
       </simpara>
      </listitem>
      <listitem>
       <simpara>"<type>string</type>"</simpara>
      </listitem>
      <listitem>
       <simpara>"<type>array</type>"</simpara>
      </listitem>
      <listitem>
       <simpara>"<type>object</type>"</simpara>
      </listitem>
      <listitem>
       <simpara>"<type>resource</type>" (începând cu PHP 4)</simpara>
      </listitem>
      <listitem>
       <simpara>"<type>NULL</type>" (începând cu PHP 4)</simpara>
      </listitem>
      <listitem>
       <simpara>"user function" (doar în PHP 3, nu se mai folosește)</simpara>
      </listitem>
      <listitem>
       <simpara>"unknown type"<!-- someone's joking? --></simpara>
      </listitem>
     </itemizedlist>
    </para>
    <para>
     Pentru PHP 4, se folosește <function>function_exists</function> și
     <function>method_exists</function> în loc de
     <function>gettype</function> pentru o funcție.
    </para>
    <para>
     Mai cunsultați
     <function>settype</function>,
     <function>is_array</function>,
     <function>is_bool</function>,
     <function>is_float</function>,
     <function>is_integer</function>,
     <function>is_null</function>,
     <function>is_numeric</function>,
     <function>is_object</function>,
     <function>is_resource</function>,
     <function>is_scalar</function> și
     <function>is_string</function>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.get-defined-vars">
   <refnamediv>
    <refname>get_defined_vars</refname>
    <refpurpose>
     Returnează un tablou cu toate variabilele definite
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>array</type><methodname>get_defined_vars</methodname>
      <void/>
     </methodsynopsis>
    <para>
     Această funcție returnează un tablou multidimensional care conține
     toate variabilele definite (globale, definite de utilizator sau
     de către server).
     <informalexample>
      <programlisting role="php">
<![CDATA[
$b = array(1, 1, 2, 3, 5, 8);

$arr = get_defined_vars();

// afișează $b
print_r($arr["b"]);

// afișează calea către interpretorul PHP (dacă este folosit ca CGI)
// exemplu: /usr/local/bin/php
echo $arr["_"];

// afișează parametrii liniei de comandă, dacă există
print_r($arr["argv"]);

// afișează toate variabilele server
print_r($arr["HTTP_SERVER_VARS"]);

// afișează toate cheile tablourilor disponibile
print_r(array_keys(get_defined_vars()));
]]>
      </programlisting>
     </informalexample>
    </para>
    <para>
     Mai consultați <function>get_defined_functions</function> and
     <function>get_defined_constants</function>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.get-resource-type">
   <refnamediv>
    <refname>get_resource_type</refname>
    <refpurpose>
     Returnează tipul resursei
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>string</type><methodname>get_resource_type</methodname>
      <methodparam><type>resource</type><parameter>handle</parameter></methodparam>
     </methodsynopsis>
    <para>
     Această funcție returnează un șir de caractere care reprezintă tipul
     resursei <type>resource</type> care i-a fost pasată. Dacă parametrul
     <type>resource</type> nu este o resursă validă, se va genera o eroare.
     <informalexample>
      <programlisting role="php">
<![CDATA[
$c = mysql_connect();
echo get_resource_type($c) . "\n";
// afișează: mysql link

$fp = fopen("foo", "w");
echo get_resource_type($fp) . "\n";
// afișează: file

$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc) . "\n";
// afișează: domxml document
]]>
      </programlisting>
     </informalexample>
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.import-request-variables">
   <refnamediv>
    <refname>import_request_variables</refname>
    <refpurpose>Importă variabilele GET/POST/Cookie variabile globale</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>bool</type><methodname>import_request_variables</methodname>
      <methodparam><type>string</type><parameter>types</parameter></methodparam>
      <methodparam 
choice="opt"><type>string</type><parameter>prefix</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     Importsă variabilele de tip GET/POST/Cookie, făcându-le vizibile ca variabile
     globale. Este util dacă se dezactivează
     <link linkend="ini.register-globals">register_globals</link>,
     dar se dorește totuși vizibilitatea unor variabile in mod global.
    </simpara>
    <simpara>
     Folosind parametrul <parameter>types</parameter>
     se poate specifica ce variabile să fie importate. Se pot folosi caracterele
     'G', 'P' and 'C' pentru variabile GET, POST, respectiv Cookie.
     Aceste caractere nu sunt cu majuscule nesemnificative, adică
     se poate folosi și o combinație a caracterelor 'g', 'p' and 'c'.
     POST include și informațiile despre fișiere încărcate.
     De notat că ordinea în care sunt scrie caracterele este importantă.
     Dacă se folosește combinația "gp", variabilele POST vor suprascrie
     variabilele GET cu aceleași nume. Orice litere în afară de GPC sunt
     ignorate.
    </simpara>
    <note>
     <para>
      Deși parametrul <parameter>prefix</parameter> este opțional,
      se va genera o atenționare la nivelul utilizatorului dacă acesta lipsește
      sau este un șir de caractere vid. Acest lucru se face din motive de
      securitate. Dacă se folosește nivelul implicit de raportare a erorilor,
      atenționările la nivelul utilizatorului nu sunt afișate.
     </para>
    </note>
    <informalexample>
     <programlisting role="php">
<![CDATA[
// vor fi importate variabilele GET și POST
// cu prefixul "rvar_"
import_request_variables("gP", "rvar_");
]]>
     </programlisting>
    </informalexample>
    <simpara>
     Mai consultați <link linkend="ini.register-globals">register_globals</link>
     și <link linkend="ini.track-vars">track_vars</link>.
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.intval">
   <refnamediv>
    <refname>intval</refname>
    <refpurpose>Returnează valoarea întreagă a unei variabile</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>int</type><methodname>intval</methodname>
      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
      <methodparam 
choice="opt"><type>int</type><parameter>base</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     Returnează valoarea întreagă a variabilei <parameter>var</parameter>,
     folosind baza specificată în <parameter>base</parameter> pentru conversie
     (implicit se folosește baza 10).
    </simpara>
    <simpara>
     <parameter>var</parameter> poate să fie orice tip scalar. Nu se poate folosi
     <function>intval</function> pentru tablouri (<type>array</type>) sau
     obiecte (<type>object</type>).
    </simpara>
    <note>
     <para>
      Parametrul <parameter>base</parameter> are efect pentru
      <function>intval</function> doar dacă parametrul
      <parameter>var</parameter> este un șir de caractere.
     </para>
    </note>
    <simpara>
     Mai consultați <function>floatval</function>,
     <function>strval</function>, <function>settype</function> și
     <link linkend="language.types.type-juggling">Tipuri
     de date</link>.
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.is-array">
   <refnamediv>
    <refname>is_array</refname>
    <refpurpose>Decide dacă o variabilă este un tablou</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>bool</type><methodname>is_array</methodname>
      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
     </methodsynopsis>
    <para>
     Returnează &true; dacă <parameter>var</parameter> este de tip <type>array</type>,
     &false; în caz contrar.
    </para>
    <para>
     Mai consultați 
     <function>is_float</function>,
     <function>is_int</function>,
     <function>is_integer</function>,
     <function>is_string</function>, și
     <function>is_object</function>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.is-bool">
   <refnamediv>
    <refname>is_bool</refname>
     <refpurpose>
      Decide dacă o variabilă este de tip boolean
     </refpurpose>
    </refnamediv>
    <refsect1>
     <title>Descriere</title>
     <methodsynopsis>
       <type>bool</type><methodname>is_bool</methodname>
       <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
     </methodsynopsis>
     <para>
      Returnează &true; dacă <parameter>var</parameter> este de tip
      <type>boolean</type>, &false; în caz contrar.
     </para>
     <para>
     Mai consultați 
     <function>is_array</function>,
     <function>is_float</function>,
     <function>is_int</function>,
     <function>is_integer</function>,
     <function>is_string</function>, și
     <function>is_object</function>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.is-double">
   <refnamediv>
    <refname>is_double</refname>
    <refpurpose>Alias pentru <function>is_float</function></refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
    <para>
     Această funcție este un alias pentru funcția <function>is_float</function>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.is-float">
   <refnamediv>
    <refname>is_float</refname>
    <refpurpose>Decide dacă o variabilă este de tip float</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>bool</type><methodname>is_float</methodname>
      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
     </methodsynopsis>
    <simpara>
      Returnează &true; dacă <parameter>var</parameter> este de tip
      <type>float</type>, &false; în caz contrar.
    </simpara>
    <note>
     <para>
      Pentru a testa dacă o variabilă este numerică sau un șir de caractere
      care reprezintă un număr (cum ar fi variabilele venite prin intermediul
      unui form, care au întotdeauna de tip <type>string</type>),  trebuie
      folosită funcția <function>is_numeric</function>.
     </para>
    </note>
    <simpara>
     Mai consultați 
     <function>is_bool</function>,
     <function>is_int</function>,
     <function>is_integer</function>,
     <function>is_numeric</function>,
     <function>is_string</function>,
     <function>is_array</function>, și
     <function>is_object</function>,
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.is-int">
   <refnamediv>
    <refname>is_int</refname>
    <refpurpose>Decide dacă o variabilă este de tip integer</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>bool</type><methodname>is_int</methodname>
      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
     </methodsynopsis>
    <simpara>
      Returnează &true; dacă <parameter>var</parameter> este de tip
      <type>integer</type>, &false; în caz contrar.
    </simpara>
    <note>
     <para>
      Pentru a testa dacă o variabilă este numerică sau un șir de caractere
      care reprezintă un număr (cum ar fi variabilele venite prin intermediul
      unui form, care au întotdeauna de tip <type>string</type>),  trebuie
      folosită funcția <function>is_numeric</function>.
     </para>
    </note>
    <simpara>
     Mai consultați <function>is_bool</function>,
     <function>is_float</function>,
     <function>is_integer</function>,
     <function>is_numeric</function>,
     <function>is_string</function>,
     <function>is_array</function>, și
     <function>is_object</function>.
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.is-integer">
   <refnamediv>
    <refname>is_integer</refname>
    <refpurpose>Alias pentru <function>is_int</function></refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
    <para>
     Această funcție este un alias pentru <function>is_int</function>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.is-long">
   <refnamediv>
    <refname>is_long</refname>
    <refpurpose>Alias pentru <function>is_int</function></refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
    <para>
     Această funcție este un alias pentru <function>is_int</function>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.is-null">
   <refnamediv>
    <refname>is_null</refname>
    <refpurpose>
     Decide dacă o variabilă este &null;
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>bool</type><methodname>is_null</methodname>
      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
     </methodsynopsis>
    <para>
      Returnează &true; dacă <parameter>var</parameter> este
      <type>null</type>, &false; în caz contrar.
    </para>
    <para>
     Mai consultați <function>is_bool</function>,
     <function>is_numeric</function>,
     <function>is_float</function>,
     <function>is_int</function>,
     <function>is_string</function>,
     <function>is_object</function>,
     <function>is_array</function>, și
    </para>
   </refsect1>
  </refentry>


  <refentry id="function.is-numeric">
   <refnamediv>
    <refname>is_numeric</refname>
    <refpurpose>
     Decide dacă o variabilă este numerică sau un șir de caractere numeric
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>bool</type><methodname>is_numeric</methodname>
      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
     </methodsynopsis>
    <para>
      Returnează &true; dacă <parameter>var</parameter> este numerică
      sau un șir de caractere numeric, &false; în caz contrar.
    </para>
    <para>
     Mai consultați <function>is_bool</function>,
     <function>is_float</function>,
     <function>is_int</function>,
     <function>is_string</function>,
     <function>is_object</function>,
     <function>is_array</function>, și
     <function>is_integer</function>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.is-object">
   <refnamediv>
    <refname>is_object</refname>
    <refpurpose>Decide dacă o variabilă este de tip object</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>bool</type><methodname>is_object</methodname>
      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
     </methodsynopsis>
    <para>
     Returnează &true; dacă <parameter>var</parameter> este de tip <type>object</type>,
     &false; în caz contrar.
    </para>
    <para>
     Mai consultați <function>is_bool</function>,
     <function>is_int</function>,
     <function>is_integer</function>,
     <function>is_float</function>,
     <function>is_string</function>, și
     <function>is_array</function>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.is-real">
   <refnamediv>
    <refname>is_real</refname>
    <refpurpose>Alias pentru <function>is_float</function></refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
    <para>
     Această funcție este un alias pentru <function>is_float</function>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.is-resource">
   <refnamediv>
    <refname>is_resource</refname>
    <refpurpose>
     Decide dacă o variabilă este o resursă
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>bool</type><methodname>is_resource</methodname>
      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>is_resource</function> returnează &true; dacă
     <parameter>var</parameter> este o resursă, &false; în caz contrar.
    </para>
    <para>
     Consultați documentația pentru tipul <type>resource</type> pentru detalii.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.is-scalar">
   <refnamediv>
    <refname>is_scalar</refname>
    <refpurpose>
     Decide dacă o variabilă este un scalar
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>bool</type><methodname>is_scalar</methodname>
      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>is_scalar</function> returnează &true; dacă
     <parameter>var</parameter> este un scalar, &false; în caz contrar.
    </para>
    <para>
     Variabilele de tip scalar includ tipurile <type>integer</type>, 
     <type>float</type>, <type>string</type> și <type>boolean</type>.  
     Tipurile <type>array</type>, <type>object</type> și <type>resource</type> 
     nu sunt tipuri scalare.
     <informalexample>
      <programlisting role="php">
<!-- TODO: better example, this one can be quite misleading for unexperienced
           programmers.  -->
<![CDATA[
function show_var($var) {
    if (is_scalar($var)) {
        echo $var;
    } else {
        var_dump($var);
    }
}
$pi = 3.1416;
$proteins = array("hemoglobin", "cytochrome c oxidase", "ferredoxin");

show_var($pi);
// afișează 3.1416

show_var($proteins);
// afișează:
// array(3) {
//   [0]=>
//   string(10) "hemoglobin"
//   [1]=>
//   string(20) "cytochrome c oxidase"
//   [2]=>
//   string(10) "ferredoxin"
// }
]]>
      </programlisting>
     </informalexample>
    </para>
    <note>
     <para>
      <function>is_scalar</function> nu consideră tipul <type>resource</type>
      ca fiind scalar, resursele fiind tipuri de date abstracte care sunt bazate
      pe valori întregi. Acest detaliu de implementare se poate modifica pe viitor,
      așa că nu trebuie să scrieți aplicații care să depindă de el.
     </para>
    </note>
    <para>
     Mai consultați <function>is_bool</function>,
     <function>is_numeric</function>,
     <function>is_float</function>,
     <function>is_int</function>,
     <function>is_real</function>,
     <function>is_string</function>,
     <function>is_object</function>,
     <function>is_array</function>, and
     <function>is_integer</function>.
    </para>
   </refsect1>
  </refentry>


  <refentry id="function.is-string">
   <refnamediv>
    <refname>is_string</refname>
    <refpurpose>Decide dacă o variabilă este de tip string</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>bool</type><methodname>is_string</methodname>
      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
     </methodsynopsis>
    <para>
     Returnează &true; dacă <parameter>var</parameter> este de tip
     <type>string</type>, &false; în caz contrar.
    </para>
    <para>
     Mai consultați <function>is_bool</function>,
     <function>is_int</function>,
     <function>is_integer</function>,
     <function>is_float</function>,
     <function>is_real</function>,
     <function>is_object</function>, și
     <function>is_array</function>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.isset">
   <refnamediv>
    <refname>isset</refname>
    <refpurpose>Determină dacă o variabilă este definită</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>boolean</type><methodname>isset</methodname>
      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
      <methodparam 
choice="opt"><type>mixed</type><parameter>var</parameter></methodparam>
      <methodparam choice="opt"><parameter>...</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     Returnează &true; dacă <parameter>var</parameter>
     existsă, &false; în caz contrar.
    </simpara>
    <para>
     Dacă o variabilă a fost ștearsă cu <function>unset</function>,
     <function>isset</function> va returna &false;. De asemenea,
     <function>isset</function> va returna &false; dacă se testează o variabilă
     a cărei valoare a fost setată ca &null;. De notat că octetul nul
     (<literal>"\0"</literal>) nu este echivalent cu constanta PHP &null;.
     <informalexample>
      <programlisting role="php">
<![CDATA[
$a = "test";
$b = "alt_test";

echo isset ($a); // TRUE
echo isset ($a, $b) //TRUE

unset ($a);
echo isset ($a); // FALSE
echo isset ($a, $b); //FALSE

$foo = NULL;
print isset ($foo); // FALSE
]]>
      </programlisting>
     </informalexample>
    </para>
    <simpara>
     Mai consultați <function>empty</function> și
     <function>unset</function>.
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.print-r">
   <refnamediv>
    <refname>print_r</refname>
    <refpurpose>
     Afișează informații despre o variabilă într-un format ușor de înțeles
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>void</type><methodname>print_r</methodname>
      <methodparam><type>mixed</type><parameter>expression</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     <function>print_r</function> afișează informații espre o variabilă
     într-un format ușor de citit de către utilizatori. Dacă se pasează
     un parametru de tip <type>string</type>, <type>integer</type> sau
     <type>float</type>, va fi afișată chiar valoarea parametrului.
     Dacă se pasează un parametru de tip <type>array</type>,
     valorile vor fi prezentate într-o formă care arată cheile și valorile.
     Asemănător se întâmplă și cu tipul <type>object</type>.
    </simpara>
    <simpara>
     De reținut că <function>print_r</function> va muta pointer-ul tabloului
     la sfârșit. Trebuie folosită funcția <function>reset</function> pentru
     a aduce pointer-ul la început.
    </simpara>
     &tip.ob-capture;
    <para>
     <informalexample>
      <programlisting role="php">
<![CDATA[
$a = array ('a' => 'măr', 'b' => 'pară', 'c' => array ('x','y','z'));
print_r ($a);
</pre>
]]>
      </programlisting>
     </informalexample>
    </para>
    <para>
     Care va afișa:
     <screen>
<![CDATA[
Array
(
    [a] => măr
    [b] => pară
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)
]]>
      </screen>
     </para>
    <note>
     <simpara>
      La versiunile mai mici decât PHP 4.0.4, <function>print_r</function>
      va rula la infinit dacă se pasează un <type>array</type> sau un
      <type>object</type> care conține o referință directă la el însuși.
      Un exemplu este <literal>print_r($GLOBALS)</literal> deoarece
      <literal>$GLOBALS</literal> este o variabilă globală,
      care conține o referință la ea insăși.
     </simpara>
    </note>
    <simpara>
      Mai consultați <function>ob_start</function>, <function>var_dump</function>,
      și <function>var_export</function>.
    </simpara>

   </refsect1>
  </refentry>

  <refentry id="function.serialize">
   <refnamediv>
    <refname>serialize</refname>
    <refpurpose>
     Generează o reprezentare liniară a unei variabile
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>string</type><methodname>serialize</methodname>
      <methodparam><type>mixed</type><parameter>value</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     <function>serialize</function> returnează un șir de caractere care conține
     reprezentarea liniară a parametrului <parameter>value</parameter>, care
     poate fi stocată ușor sub această formă.
    </simpara>
    <simpara>
     Este utilă pentru a stoca sau pentru a transmite variabile PHP
     fără alterarea tipului și structurii acestora.
    </simpara>
   <simpara>
    Pentru a reveni de la reprezentarea liniară la cea a unei variabile PHP
    se folosește funcția <function>unserialize</function>.
    <function>serialize</function> lucrează cu toate tipurile de variabile,
    mai puțin cu tipul <type>resource</type>.
    Se poate folosi <function>serialize</function> chiar și pentru tablouri
    care conțin referințe circulare (către sine). Aceste referințe
    vor fi și ele liniarizate și stocate.
   </simpara>
   <note>
    <para>
     În PHP 3, proprietățile obiectelor sunt păstrate, însă metodele
     se pierd. PHP 4 a eliminat această limitare. Consultați și secțiunea
     <link linkend="language.oop.serialization">Liniarizarea obiectelor</link>
     a capitolului <link linkend="language.oop">Clase și
     obiecte</link> pentru mai multe informații.
    </para>
   </note>
    <para>
     <example>
      <title>Exemplu pentru funcția <function>serialize</function></title>
      <programlisting role="php">
<![CDATA[
// $session_data conține un tablou multi-dimensional cu informații
// ale sesiunii pentru utilizatorul curent
// se folosește serialize() pentru a stoca acest tablou
// intr-o bază de date la încheierea cererii

$conn = odbc_connect ("webdb", "php", "chicken");
$stmt = odbc_prepare ($conn,
      "UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $PHP_AUTH_USER);
if (!odbc_execute ($stmt, &$sqldata)) {
    $stmt = odbc_prepare($conn,
     "INSERT INTO sessions (id, data) VALUES(?, ?)");
    if (!odbc_execute($stmt, &$sqldata)) {
    /* ceva nu a funcționat cum trebuie */
    }
}
]]>
      </programlisting>
     </example>
    </para>
   <para>
    Mai consultați: <function>unserialize</function>.
   </para>
   </refsect1>
  </refentry>

  <refentry id="function.settype">
   <refnamediv>
    <refname>settype</refname>
    <refpurpose>Setează tipul unei variable</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>bool</type><methodname>settype</methodname>
      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
      <methodparam><type>string</type><parameter>type</parameter></methodparam>
     </methodsynopsis>
    <para>
     Setează tipul <parameter>type</parameter> pentru variabila
     <parameter>var</parameter>.
    </para>
    <para>
     Valorile posibile pentru <parameter>type</parameter> sunt:
     <itemizedlist>
      <listitem>
       <simpara>
        "boolean" (sau, până la PHP 4.2.0, "bool")
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        "integer" (sau, până la PHP 4.2.0, "int")
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        "float" (disponibil începând cu PHP 4.2.0, pentru versiunile anterioare
        se folosește varianta învechită "double")
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        "string"
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        "array"
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        "object"
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        "null" (începând cu PHP 4.0.8)
       </simpara>
      </listitem>
     </itemizedlist>
    </para>
    <para>
     Returnează &true; în cazul în care operația s-a executat cu succes,
     altfel returnează &false;.
    </para>
    <para>
     <example>
      <title>Exemplu pentru funcția <function>settype</function></title>
      <programlisting role="php">
<![CDATA[
$foo = "5bar"; // string
$bar = true;   // boolean

settype($foo, "integer"); // $foo este acum 5   (integer)
settype($bar, "string");  // $bar devine "1" (string)
]]>
      </programlisting>
     </example>
    </para>
    <para>
     Mai consultați <function>gettype</function>,
     <link linkend="language.types.typecasting">Conversia tipurilor</link> și
     <link linkend="language.types.type-juggling">Tipuri de date</link>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.strval">
   <refnamediv>
    <refname>strval</refname>
    <refpurpose>Returnează valoarea ca șir de caractere a unei variabile</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>string</type><methodname>strval</methodname>
      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     Returnează valoarea ca șir de caractere a parametrului <parameter>var</parameter>.
     Consultați documentația tipului <type>string</type> pentru mai multe informații
     legate de conversia la șiruri de caractere.
    </simpara>
    <simpara>
     <parameter>var</parameter> poate fi orice tip scalar. Nu se poate folosi
     <function>strval</function> pentru tablouri și obiecte.
    </simpara>
    <simpara>
     Mai consultați <function>floatval</function>,
     <function>intval</function>, <function>settype</function> și
     <link linkend="language.types.type-juggling">Tipuri de date</link>.
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.unserialize">
   <refnamediv>
    <refname>unserialize</refname>
    <refpurpose>
     Creează o variabilă PHP dintr-o reprezentare liniară
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>mixed</type><methodname>unserialize</methodname>
      <methodparam><type>string</type><parameter>str</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     <function>unserialize</function> primește ca parametru o singură variabilă
     liniarizată (vezi <function>serialize</function>) și o convertește
     "înapoi" într-o variabilă PHP. Este returnată valoarea convertită, care poate 
     să aibă tipurile <type>integer</type>, <type>float</type>,
     <type>string</type>, <type>array</type> sau <type>object</type>.
     Dacă a fost liniarizat un obiect, metodele nu sunt reținute în valoarea returnată.
    </simpara>
    <note>
     <para>
      Este posibilă setarea unei funcții callback ce va fi apelată
      dacă o clasă nedefinită trebuie instanțiată în timpul conversiei din
      forma liniară (pentru a preveni preluarea incompletă a unui <type>object</type>).
      Se poate folosi php.ini, <function>ini_set</function> sau un fisier .htaccess
      pentru a defini 'unserialize_callback_func'.
      De câte ori o clasă trebuie instanțiată, se va apela această funcție.
      Pentru a dezactiva această facilitate, trebuie doar să ștergeți această
      variabilă globală.
     </para>
    </note>
    <para>
     <example>
      <title>Exemplu unserialize_callback_func</title>
      <programlisting role="php">
<![CDATA[
$serialized_object='O:1:"a":1:{s:7:"valoare";s:3:"100";}';

ini_set('unserialize_callback_func','mycallback'); // setează callback_function

function mycallback($classname) {
    // includeți fișierul care conține definiția clasei
    // se folosește $classname pentru a decide ce definiție de clasă este vizată
}
]]>
      </programlisting>
     </example>
    </para>
    <note>
     <para>
      În PHP 3, metodele nu sunt păstrate când se folosește unserialize pentru un 
obiect.
      PHP 4 elimină această limitare și restaurează stât proprietățile cât și metodele.
      Consultați secțiunea <link linkend="language.oop.serialization">Serializarea
      obiectelor</link> a capitolului <link linkend="language.oop">Clase și 
obiecte</link>
      pentru mai multe informații.
     </para>
    </note>
    <para>
     <example>
      <title>Exemplu pentru <function>unserialize</function></title>
      <programlisting role="php">
<![CDATA[
// Aici se folosește unserialize() pentru a încărca datele unei sesiuni
// dintr-o bază de date în $session_data. Acest exemplu este complementar
// celui pentru funcția <function>serialize</function>.

$conn = odbc_connect ("webdb", "php", "chicken");
$stmt = odbc_prepare ($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array ($PHP_AUTH_USER);
if (!odbc_execute ($stmt, &$sqldata) || !odbc_fetch_into ($stmt, &$tmp)) {
    // se inițializează cu tablou vid în cazul in care execute sau fetch nu 
funcționează
    $session_data = array();
} else {
    // acum datele liniarizate sunt în $tmp[0].
    $session_data = unserialize ($tmp[0]);
    if (!is_array ($session_data)) {
    // dacă ceva nu merge cum trebuie, se inițializează cu tablou vid
    $session_data = array();
    }
}
]]>
      </programlisting>
     </example>
    </para>
   <para>
    Mai consultați: <function>serialize</function>.
   </para>
   </refsect1>
  </refentry>

  <refentry id="function.unset">
   <refnamediv>
    <refname>unset</refname>
    <refpurpose>Șterge variabilele date</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>void</type><methodname>unset</methodname>
      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
      <methodparam 
choice="opt"><type>mixed</type><parameter>var</parameter></methodparam>
      <methodparam choice="opt"><parameter>...</parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>unset</function> distruge variabilele specificate. de notat că în PHP 3,
     <function>unset</function> returnează întotdeauna &true;
     (de fapt valoarea întreagă 1). În PHP 4, 
     <function>unset</function> nu mai este o funcție, ci o instrucțiune.
     De aceea, încercarea de a atribui unei variabile valoarea returnată de 
     <function>unset</function> se va solda cu eroare gramaticală (parse error).
    </para>
    <para>
     <example>
      <title>Exemplu pentru <function>unset</function></title>
      <programlisting role="php">
<![CDATA[
// distruge o singură variabilă
unset ($foo);

// distruge un singur element al unui tablou
unset ($bar['quux']);

// distruge mai multe variabile
unset ($foo1, $foo2, $foo3);
]]>
      </programlisting>
     </example>
    </para>
    <para>
     Comportamentul <function>unset</function> în interiorul unei funcții
     poate să varieze în funcție de ce anume se dorește a fi distrus.
    </para>
    <para>
     Dacă se aplică <function>unset</function> pe o variabilă globală
     în interiorul unei funcții, doar variabila locală va fi ștearsă.
     Valoarea variabilei globale va fi aceeași după ce iese din mediul
     funcției.
     <informalexample>
      <programlisting role="php">
<![CDATA[
function destroy_foo() {
    global $foo;
    unset($foo);
}

$foo = 'bar';
destroy_foo();
echo $foo;
]]>
      </programlisting>
     </informalexample>
     Exemplul de mai sus va afișa:
     <informalexample>
      <screen>
<![CDATA[
bar
]]>
      </screen>
     </informalexample>
    </para>
    <para>
     De asemenea, și dacă o variabilă este transmisă prin referință,
     va fi distrusă doar variabila din interiorul funcției.
     <informalexample>
      <programlisting role="php">
<![CDATA[
function foo(&$bar) {
    unset($bar);
    $bar = "blah";
}

$bar = 'something';
echo "$bar\n";

foo($bar);
echo "$bar\n";
]]>
      </programlisting>
     </informalexample>
     Exemplul de mai sus va afișa:
     <informalexample>
      <screen>
<![CDATA[
something
something
]]>
      </screen>
     </informalexample>
    </para>
    <para>
     Dacă o variabilă statică este distrusă în interiorul unei funcții,
     vor fi distruse toate variabilele și referințele lor.
     <informalexample>
      <programlisting role="php">
<![CDATA[
function foo() {
    static $a;
    $a++;
       echo "$a\n";

    unset($a);
}

foo();
foo();
foo();
]]>
      </programlisting>
     </informalexample>
     Exemplul de mai sus va afișa:
     <informalexample>
      <screen>
<![CDATA[
1
2
3
]]>
      </screen>
     </informalexample>
    </para>
    <para>
     Dacă doriți să distrugeți o variabilă globală în interiorul unei funcții,
     puteți folosi tabloul <parameter>$GLOBALS</parameter>:
     <informalexample>
      <programlisting role="php">
<![CDATA[
function foo() {
    unset($GLOBALS['bar']);
}

$bar = "something";
foo();
]]>
      </programlisting>
     </informalexample>
    </para>
    <note>
     <para>
      <function>unset</function> este o construcție de limbaj.
     </para>
    </note>
    <para>
     Mai consultați <function>isset</function> și
     <function>empty</function>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.var-dump">
   <refnamediv>
    <refname>var_dump</refname>
    <refpurpose>Afișează informații despre o variabilă</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>void</type><methodname>var_dump</methodname>
      <methodparam><type>mixed</type><parameter>expression</parameter></methodparam>
      <methodparam 
choice="opt"><type>mixed</type><parameter>expression</parameter></methodparam>
      <methodparam choice="opt"><parameter>...</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     Această funcție afișează o informație structurată despre una sau mai multe
     variabile. Tablourile sunt explorate recursiv pentru a afișa valorile
     în această structură.
    </simpara>
    &tip.ob-capture;
    <simpara>
     Comparați <function>var_dump</function> cu
     <function>print_r</function>.
    </simpara>
    <para>
     <informalexample>
      <programlisting role="php">
<![CDATA[
<pre>
<?php
$a = array (1, 2, array ("a", "b", "c"));
var_dump ($a);

/* afișează:
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}

*/

$b = 3.1; $c = TRUE;
var_dump($b,$c);

/* afișează:
float(3.1)
bool(true)

*/
?>;
</pre>
]]>
      </programlisting>
     </informalexample>
    </para>
   </refsect1>
  </refentry>


  <refentry id="function.var-export">
   <refnamediv>
    <refname>var_export</refname>
    <refpurpose>Afișează o reprezentare ca șir de caractere a unei 
variabile</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>mixed</type><methodname>var_export</methodname>
      <methodparam><type>mixed</type><parameter>expression</parameter></methodparam>
      <methodparam 
choice="opt"><type>bool</type><parameter>return</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     Această funcție returnează o informație structurată despre o variabilă.
     Este similară funcției <function>var_dump</function>, cu excepția faptului
     că reprezentarea returnată este un cod PHP valid.
    </simpara>
    <simpara>
     Dacă se folosește cel de-al doilea parametru optional cu valoarea &true;
     se poate returna această reprezentare pentru a fi atribuită unei variabile.
    </simpara>
    <simpara>
     Comparați <function>var_export</function> cu
     <function>var_dump</function>.
    </simpara>
    <para>
     <informalexample>
      <programlisting role="php">
<![CDATA[
$a = array (1, 2, array ("a", "b", "c"));
var_export ($a);

/* afișează:
array (
  0 => 1,
  1 => 2,
  2 => 
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)
*/

$b = 3.1;
$v = var_export($b, TRUE);
echo $v;

/* afișează:
3.1
*/
]]>
      </programlisting>
     </informalexample>
    </para>
   </refsect1>
  </refentry>

  <refentry id='function.is-callable'>
   <refnamediv>
    <refname>is_callable</refname>
    <refpurpose>
     Decide dacă argumentul este o construcție apelabilă
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descriere</title>
     <methodsynopsis>
      <type>bool</type><methodname>is_callable</methodname>
      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
      <methodparam 
choice="opt"><type>bool</type><parameter>syntax_only</parameter></methodparam>
      <methodparam 
choice="opt"><type>string</type><parameter>callable_name</parameter></methodparam>
     </methodsynopsis>
    <para>
     &warn.undocumented.func;
    </para>
   </refsect1>
  </refentry>
  

 </reference>

<!-- 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:"../../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
-->

Reply via email to