cynic           Fri Jan 26 06:37:35 2001 EDT

  Added files:                 
    /phpdoc/cs/functions        classobj.xml 
  Log:
  
  
  hope(fully) \1 translated
  

Index: phpdoc/cs/functions/classobj.xml
+++ phpdoc/cs/functions/classobj.xml
 <reference id="ref.classobj">
  <title>Funkce pro pr�ci s t��dami/objekty</title>
  <titleabbrev>T��dy/Objekty</titleabbrev>

  <partintro>
   <sect1 id="classobj.partintro">
    <title>�vod</title>
    <sect2 id="classobj.intro">
     <title>About</title>
     <para>
      Tyto funkce v�m umo��uj� z�sk�vat informace o t��d�ch a instanc�ch. M��ete
      zjistit n�zev t��dy do kter� objekt pat�� nebo jeho prom�nn� a metody.
      Pomoc� t�chto funkc� m��ete zjistit nejen p��slu�nost objektu k t��d�,
      ale i jeho p�edka (tj. kterou t��du t��da tohoto objektu roz�i�uje).
     </para>
    </sect2>
    <sect2 id="classobj.example">
     <title>Uk�zka pou�it�</title>
     <para>
      V t�to uk�zce nejd��ve definujeme z�kladn� t��du a roz���en� t�to t��dy.
      Z�kladn� t��da popisuje obecnou zeleninu, a� u� je jedl� nebo ne a bez
      ohledu na jej� barvu. Podt��da <varname>Spenat</varname> p�id�v� metodu
      na uva�en� t�to zeleniny a dal��, kter� zjist�, jestli je va�en�.
     </para>
     <para>
      <example>
       <title>classes.inc</title>
       <programlisting role="php">
&lt;?php

// z�kladn� t��da s �lensk�mi prom�nn�mi a metodami
class Zelenina {

    var $jedla;
    var $barva;

    function Zelenina( $jedla, $barva=&quot;green&quot; ) {
        $this-&gt;jedla = $jedla;
        $this-&gt;barva = $barva;
    }

    function je_jedla() {
        return $this-&gt;jedla;
    }

    function jaka_barva() {
        return $this-&gt;barva;
    }

} // konec tridy zelenina


// rozsiruje zakladni tridu
class Spenat extends Zelenina {

    var $varena = false;

    function Spenat() {
        $this-&gt;Zelenina( true, &quot;zelena&quot; );
    }

    function cook_it() {
        $this-&gt;varena = true;
    }

    function je_varena() {
        return $this-&gt;varena;
    }

} // konec tridy Spenat

?&gt;
       </programlisting>
      </example>
     </para>
     <para>
     Potom z t�chto t��d vytvo��me 2 objekty a vytiskneme informace o nich, v�.
     rodi�ovsk�ch t��d. Tak� definujeme n�kter� pomocn� funkce, p�edev��m kv�li
     pohodln�mu tisku informac�.
     </para>
     <para>
      <example>
       <title>test_script.php</title>
       <programlisting role="php">
&lt;pre&gt;
&lt;?php

include &quot;classes.inc&quot;;

// pomocn� funkce

function vytiskni_promenne($obj) {
    $pole = get_object_vars($obj);
    while (list($vlastnost, $hodnota) = each($pole))
        echo &quot;\t$vlastnost = $hodnota\n&quot;;
}

function vytiskni_metody($obj) {
    $pole = get_class_methods(get_class($obj));
    foreach ($pole as $metoda)
        echo &quot;\tfunction $metoda()\n&quot;;
}

function class_parentage($obj, $class) {
    global $$obj;
    if (is_subclass_of($$obj, $class)) {
        echo &quot;Objekt $obj patri do tridy &quot;.get_class($$obj);
        echo &quot; ktera je podtridou $class\n&quot;;
    } else {
        echo &quot;Objekt $obj nepatri do podtridy tridy $class\n&quot;;
    }
}

// instancujeme 2 objekty

$zeleninka = new Zelenina(true,&quot;modra&quot;);
$listnaty = new Spenat();

// vytisknout informace o obou objektech
echo &quot;zeleninka: CLASS &quot;.get_class($zeleninka).&quot;\n&quot;;
echo &quot;listnaty: CLASS &quot;.get_class($listnaty);
echo &quot;, PARENT &quot;.get_parent_class($listnaty).&quot;\n&quot;;

// vytisknout vlastnosti zeleninky
echo &quot;\nzeleninka: Vlastnosti\n&quot;;
print_vars($zeleninka);

// a metody objektu listnaty
echo &quot;\nlistnaty: Metody\n&quot;;
print_methods($listnaty);

echo &quot;\nRodic:\n&quot;;
class_parentage(&quot;listnaty&quot;, &quot;Spenat&quot;);
class_parentage(&quot;listnaty&quot;, &quot;Zelenina&quot;);
?&gt;
&lt;/pre&gt;
       </programlisting>
      </example>
     </para>
     <para>
      Je t�eba poznamenat, �e ve v��e uveden� uk�zce je objekt
      <varname>$listnaty</varname> instanc� t��dy <classname>Spenat</classname>,
      kter� je podt��dou t��dy <classname>Zelenina</classname>, a posledn� ��st
      v��e uveden�ho skriptu tud�� vytiskne:
     </para>
     <para>
      <informalexample>
       <programlisting>
       [...]
Rodic:
Objekt listnaty nepatri do podtridy tridy Spenat
Object listnaty patri do tridy Spenat, ktera je podtridou tridy Zelenina
       </programlisting>
      </informalexample>
     </para>
    </sect2>
   </sect1>
  </partintro>

  <refentry id="function.call-user-method">
   <refnamediv>
    <refname>call_user_method</refname>
    <refpurpose>
     Zavolat u�ivatelsky definouvanou metodu ur�it�ho objektu
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>mixed
       <function>call_user_method</function>
      </funcdef>
      <paramdef>string
       <parameter>method_name</parameter>
      </paramdef>
      <paramdef>object
       <parameter>obj</parameter>
      </paramdef>
      <paramdef>mixed
       <parameter><optional>parameter</optional></parameter>
      </paramdef>
      <paramdef>mixed
       <parameter><optional>...</optional></parameter>
      </paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Zavol� metodu <parameter>method_name</parameter> objektu
     <parameter>obj</parameter>. Uk�zka vyu�it� je n��e, kde definujeme t��du,
     vytvo��me objekt a pou�ijeme <function>call_user_method</function> k
     nep��m�mu vol�n� jej� <varname>print_info</varname> metody.
     <informalexample>
      <programlisting role="php">
&lt;?php
class Country {
    var $NAME;
    var $TLD;

    function Country($name, $tld) {
        $this-&gt;NAME = $name;
        $this-&gt;TLD = $tld;
    }

    function print_info($prestr=&quot;&quot;) {
        echo $prestr.&quot;Country: &quot;.$this-&gt;NAME.&quot;\n&quot;;
        echo $prestr.&quot;Top Level Domain: &quot;.$this-&gt;TLD.&quot;\n&quot;;
    }
}

$cntry = new Country(&quot;Peru&quot;,&quot;pe&quot;);

echo &quot;* Calling the object method directly\n&quot;;
$cntry-&gt;print_info();

echo &quot;\n* Calling the same method indirectly\n&quot;;
call_user_method (&quot;print_info&quot;, $cntry, &quot;\t&quot;);
?&gt;
      </programlisting>
     </informalexample>
    </para>
    <simpara>
     Viz tak� <function>call_user_func</function>.
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.class-exists">
   <refnamediv>
    <refname>class_exists</refname>
    <refpurpose>Zjistit, jestli je t��da definov�na</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>bool <function>class_exists</function></funcdef>
      <paramdef>string <parameter>class_name</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Tato funkce vr�t� <literal>true</literal>, pokud je t��da
     <parameter>class_name</parameter> definov�na, jinak <literal>false</literal>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.get-class">
   <refnamediv>
    <refname>get_class</refname>
    <refpurpose>Vr�tit jm�no t��dy objektu</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>string <function>get_class</function></funcdef>
      <paramdef>object <parameter>obj</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Tato funkce vrac� n�zev t��dy j�� je objekt <parameter>obj</parameter>
     instanc�.
    </para>
    <simpara>
     Viz tak� <function>get_parent_class</function>,
     <function>is_subclass_of</function>
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.get-class-methods">
   <refnamediv>
    <refname>get_class_methods</refname>
    <refpurpose>Vr�tit pole n�zv� metod t��dy</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>array <function>get_class_methods</function></funcdef>
      <paramdef>string <parameter>class_name</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Tato funkce vrac� pole n�zv� metod definovan�ch pro t��du specifikovanou
     argumentem <parameter>class_name</parameter>.
    </para>
    <simpara>
     Viz tak� <function>get_class_vars</function>,
     <function>get_object_vars</function>
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.get-class-vars">
   <refnamediv>
    <refname>get_class_vars</refname>
    <refpurpose>Vr�tit pole defaultn�ch vlastnost� t��dy</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>array <function>get_class_vars</function></funcdef>
      <paramdef>string <parameter>class_name</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Tato funkce vrac� pole defaultn�ch vlastnost� t��dy
     <parameter>class_name</parameter>.
    </para>
    <simpara>
     Viz tak� <function>get_class_methods</function>,
     <function>get_object_vars</function>
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.get-declared-classes">
   <refnamediv>
    <refname>get_declared_classes</refname>
    <refpurpose>Vr�tit pole n�zv� definovan�ch t��d</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>array <function>get_declared_classes</function></funcdef>
      <paramdef>void</paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Tato funkce vrac� pole n�zv� t��d definovan�ch v sou�asn�m skriptu.
    </para>
    <note>
     <para>
      V PHP 4.0.1pl2 jsou na za��tku pole vr�ceny je�t� t�i dal�� t��dy:
      <classname>stdClass</classname> (definovan� v
      <filename>Zend/zend.c</filename>),
      <classname>OverloadedTestClass</classname> (definovan� v
      <filename>ext/standard/basic_functions.c</filename>)
      a <classname>Directory</classname>
      (definovan� v <filename>ext/standard/dir.c</filename>).
     </para>
    </note>
   </refsect1>
  </refentry>

  <refentry id="function.get-object-vars">
   <refnamediv>
    <refname>get_object_vars</refname>
    <refpurpose>Vr�tit asociativn� pole vlastnost� objektu</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>array <function>get_object_vars</function></funcdef>
      <paramdef>object <parameter>obj</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Tato funkce vrac� asociativn� pole definovan�ch vlastnost� objektu
     <parameter>obj</parameter>. Prom�nn�m deklarovan�m v t��d� j�� je
     <parameter>obj</parameter> instanc�, kter�m nebyla p�i�azena hodnota,
     nejsou ve vr�cen�m poli obsa�eny.
     <example>
      <title>Pou�it� <function>get_object_vars</function></title>
      <programlisting role="php">
&lt;?php
class Point2D {
    var $x, $y;
    var $label;

    function Point2D($x, $y) {
        $this-&gt;x = $x;
        $this-&gt;y = $y;
    }

    function setLabel($label) {
        $this-&gt;label = $label;
    }

    function getPoint() {
        return array("x" =&gt; $this-&gt;x,
                     "y" =&gt; $this-&gt;y,
                     "label" =&gt; $this-&gt;label);
    }
}

$p1 = new Point2D(1.233, 3.445);
print_r(get_object_vars($p1));
// "$label" is declared but not defined
// Array
// (
//     [x] =&gt; 1.233
//     [y] =&gt; 3.445
// )

$p1-&gt;setLabel("point #1");
print_r(get_object_vars($p1));
// Array
// (
//     [x] =&gt; 1.233
//     [y] =&gt; 3.445
//     [label] =&gt; point #1
// )

?&gt;
      </programlisting>
     </example>
    </para>
    <simpara>
     Viz tak� <function>get_class_methods</function>,
     <function>get_class_vars</function>
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.get-parent-class">
   <refnamediv>
    <refname>get_parent_class</refname>
    <refpurpose>Vr�tit n�zev rodi�ovsk� t��dy objektu</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>string <function>get_parent_class</function></funcdef>
      <paramdef>object <parameter>obj</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Tato funkce vrac� n�zev rodi�ovsk� t��dy objektu
     <parameter>obj</parameter>.
    </para>
    <simpara>
     Viz tak� <function>get_class</function>,
     <function>is_subclass_of</function>
    </simpara>
   </refsect1>
  </refentry>

 <refentry id="function.is-subclass-of">
   <refnamediv>
    <refname>is_subclass_of</refname>
    <refpurpose>
     Zjistit, jestli objekt pat�� do podt��dy ur�it� t��dy
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>bool <function>is_subclass_of</function></funcdef>
      <paramdef>object <parameter>obj</parameter></paramdef>
      <paramdef>string <parameter>superclass</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Tato funkce vrac� <literal>true</literal>, pokud je objekt
     <parameter>obj</parameter> instanc� t��dy, kter� je podt��dou
     <parameter>superclass</parameter>, jinak <literal>false</literal>.
    </para>
    <simpara>
     Viz tak� <function>get_class</function>,
     <function>get_parent_class</function>
    </simpara>
   </refsect1>
  </refentry>
  <refentry id="function.method-exists">
   <refnamediv>
    <refname>method_exists</refname>
    <refpurpose>Zjistit, jestli m� t��da ur�itou metodu</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>bool <function>method_exists</function></funcdef>
      <paramdef>object <parameter>object</parameter></paramdef>
      <paramdef>string <parameter>method_name</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Tato funkce vrac� <literal>true</literal>, pokud m�
     <parameter>object</parameter> definov�nu metodu
     <parameter>method_name</parameter>, jinak <literal>false</literal>.
    </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
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->

Reply via email to