cvs: phpdoc-sk /reference/classobj reference.xml
[email protected] ("Joseph Drake")
| Newsgroups | php.doc.sk |
|---|---|
| Message-ID | <cvsjoseph1046817628@cvsserver> |
joseph Tue Mar 4 17:40:28 2003 EDT
Added files:
/phpdoc-sk/reference/classobj reference.xml
Log:
new one
Index: phpdoc-sk/reference/classobj/reference.xml
+++ phpdoc-sk/reference/classobj/reference.xml
<?xml version="1.0" encoding="iso-8859-2"?>
<!-- EN-Revision: 1.6 Maintainer: joseph Status: ready -->
<reference id="ref.classobj">
<title>Funkcie Tried/Objektov</title>
<titleabbrev>Classes/Objects</titleabbrev>
<partintro>
<section id="classobj.intro">
&reftitle.intro;
<para>
Tieto funkcie vám umo¾òujú získa» informácie o triedach
a in¹tanciách objektov. Mô¾ete získa» názov triedy, do ktorej
objekt patrí, rovnako ako jeho vlastnosti a metódy. Pomocou
týchto funkcií mô¾ete zisti» nie len triedne èlenstvo objektu,
ale aj jeho rodièovstvo (t.j. akej triedy je trieda objektu
roz¹írením).
</para>
</section>
<section id="classobj.requirements">
&reftitle.required;
&no.requirement;
</section>
<section id="classobj.installation">
&reftitle.install;
&no.install;
</section>
<section id="classobj.configuration">
&reftitle.runtime;
&no.config;
</section>
<section id="classobj.resources">
&reftitle.resources;
&no.resource;
</section>
<section id="classobj.constants">
&reftitle.constants;
&no.constants;
</section>
<section id="classobj.examples">
&reftitle.examples;
<para>
V tomto príklade najprv definujeme základnú triedu a roz¹írenie
triedy. Základná trieda popisuje obyèajnú zeleninu, èi je jedlá
alebo nie a akej je farby. Podtrieda <varname>Spenat</varname>
pridáva spôsob jej varenia a ïal¹ia zis»uje, èi je uvarená.
</para>
<para>
<example>
<title>classes.inc</title>
<programlisting role="php">
<![CDATA[
<?php
// základná trieda s èlenskými vlastnos»ami a metódami
class Zelenina {
var $jedla;
var $farba;
function Zelenina( $jedla, $farba="green" ) {
$this->jedla = $jedla;
$this->farba = $farba;
}
function je_jedla() {
return $this->jedla;
}
function aka_farba() {
return $this->farba;
}
} // koniec triedy Zelenina
// rozsirenie zakladnej triedy
class Spenat extends Zelenina {
var $varena = false;
function Spenat() {
$this->Zelenina( true, "green" );
}
function varit_ju() {
$this->varena = true;
}
function je_uvarena() {
return $this->varena;
}
} // koniec triedy Spenat
?>
]]>
</programlisting>
</example>
</para>
<para>
Potom in¹tancujeme 2 ojekty z týchto tried a vypí¹eme o nich
informácie, vrátane ich triednej príslu¹nosti. Tie¾ definujeme
nejaké prektické funkcie, hlavne kvôli peknému výpisu premenných.
</para>
<para>
<example>
<title>test_script.php</title>
<programlisting role="php">
<![CDATA[
<pre>
<?php
include "classes.inc";
// prakticke funkcie
function print_vars($obj) {
$arr = get_object_vars($obj);
while (list($prop, $val) = each($arr))
echo "\t$prop = $val\n";
}
function print_methods($obj) {
$arr = get_class_methods(get_class($obj));
foreach ($arr as $method)
echo "\tfunkcia $method()\n";
}
function class_parentage($obj, $class) {
global $$obj;
if (is_subclass_of($$obj, $class)) {
echo "Objekt $obj patri do triedy ".get_class($$obj);
echo " podtriedy $class\n";
} else {
echo "Objekt $obj nepatri do podtriedy $class\n";
}
}
// instancovanie 2 objektov
$veggie = new Zelenina(true,"blue");
$leafy = new Spenat();
// vypis informacii o objektoch
echo "veggie: CLASS ".get_class($veggie)."\n";
echo "leafy: CLASS ".get_class($leafy);
echo ", PARENT ".get_parent_class($leafy)."\n";
// show veggie properties
echo "\nveggie: Vlastnosti\n";
print_vars($veggie);
// and leafy methods
echo "\nleafy: Metody\n";
print_methods($leafy);
echo "\nRodicovstvo:\n";
class_parentage("leafy", "Spenat");
class_parentage("leafy", "Zelenina");
?>
</pre>
]]>
</programlisting>
</example>
</para>
<para>
Je dôle¾ité poznamena», ¾e v horeuvedenom príklade je
objekt <varname>$leafy</varname> in¹tanciou triedy
<classname>Spenat</classname>, ktorá je podtriedou
<classname>Zelenina</classname>,
preto posledná èas» horeuvedného skriptu bude ma» výstup:
</para>
<para>
<informalexample>
<programlisting>
<![CDATA[
[...]
Rodicovstvo:
Objekt leafy nepatri do podtriedy Spenat
Objekt leafy patri do tridy spenat podtriedy Zelenina
]]>
</programlisting>
</informalexample>
</para>
</section>
</partintro>
&reference.classobj.functions;
</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
-->