cvs: phpdoc /cs/functions classobj.xml

From: Date: Fri, 26 Jan 2001 14:37:35 +0000
Subject: cvs: phpdoc /cs/functions classobj.xml
Groups: php.doc 
Request: Send a blank email to phpdoc+get-969333975@lists.php.net to get a copy of this message
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: -->
« previous php.doc (#969333975) next »