cvs: phpdoc-sk /language/oop5 basic.xml

[email protected] ("Miroslav Lednicky") Mon, 24 Jan 2005 18:49:17 -0000
Newsgroups php.doc.sk
Message-ID <cvs_batman_1106592557@cvsserver>
_batman_		Mon Jan 24 13:49:17 2005 EDT

  Added files:                 
    /phpdoc-sk/language/oop5	basic.xml 
  Log:
  hopefully right place
  
  

http://cvs.php.net/co.php/phpdoc-sk/language/oop5/basic.xml?r=1.1&p=1
Index: phpdoc-sk/language/oop5/basic.xml
+++ phpdoc-sk/language/oop5/basic.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->

 <sect1 id="language.oop5.basic">
  <title>Základy</title>

  <sect2 id="language.oop5.basic.class">
   <title>class</title>
   <para>
    Ka¾dá definícia triedy zaèína kµúèovým slovom class nasledované názvom 
    triedy, ktorý je µubovoµný, s výnimkou 
    <link linkend="reserved">rezervovaných</link> slov v PHP. Nasleduje pár
    zlo¾ených zátvoriek, ktoré obsahujú definíciu vlastností a metód triedy.
    V ka¾dej metóde, okrem <link linkend="language.oop5.static">statických</link>,
    je dostupná pseudo premenná <varname>$this</varname>. <varname>$this</varname>
    je referencia na tú istú in¹tanciu, z ktorej bola metóda volaná.
   </para>
   <example>
    <title>Jednoduchá definícia triedy</title>
    <programlisting role="php">
<![CDATA[
<?php
class SimpleClass
{
    // member declaration
    public $var = 'a default value';

    // method declaration
    public function displayVar() {
        echo $this->var;
    }
}
?>
]]>
    </programlisting>
   </example>
  </sect2>

  <sect2 id="language.oop5.basic.new">
   <title>new</title>
   <para>
    Na vytvorenie in¹tancie objektu, musí by» vytvorený nový objekt a priradený
    premennej. Ak sa vytvára nový objekt, v¾dy je priradený premennej, s jedinou
    výnimkou, a to ak objekt obsahuje <link linkend="language.oop5.decon">kon¹truktor</link>,
    v ktorom je definovaná <link linkend="language.exceptions">výnimka</link>, 
    vracajúca chybu.
   </para>
   <example>
    <title>Vytváranie in¹tancie</title>
    <programlisting role="php">
<![CDATA[
<?php
$instance = new SimpleClass()
?>
]]>
    </programlisting>
   </example>
   <para>
    Ak priraïujeme u¾ existujúcu in¹tanciu objektu novej premennej, tak nová
    premenná bude pristupova» k tej istej in¹tancii ako premenná, ktorej bol
    pôvodný objekt priradený. Toto isté správanie je aj pri predávaní in¹tancie 
    ako parametru funkcii. Nová in¹tancia u¾ existujúceho objektu mo¾e by» 
    vytvorená <link linkend="language.oop5.cloning">klonovaním</link>.
   </para>
   <example>
    <title>Priraïovanie objektu</title>
    <programlisting role="php">
<![CDATA[
<?php
$assigned   =  $instance;
$reference  =& $instance;

$instance->var = '$assigned will have this value';

$instance = null; // $instance and $reference become null

var_dump($instance);
var_dump($reference);
var_dump($assigned);
?>
]]>
    </programlisting>
    &example.outputs;
    <screen>
<![CDATA[
NULL
NULL
object(SimpleClass)#1 (1) {
   ["var"]=>
     string(30) "$assigned will have this value"
}
]]>
    </screen>
   </example>
  </sect2>

  <sect2 id="language.oop5.basic.extends">
   <title>extends</title>
   <para>
    Trieda mô¾e zdedi» metódy a vlastnosti inej triedy pou¾itím kµúèového
    slova extends v deklarácii. Nie je mo¾né dedenie z viacerých tried, trieda
    mô¾e dedi» iba z jednej základnej triedy.
   </para>
   <para>
    Zdedené metódy a vlastnosti mô¾u by» nahradené, s jednou výnimkou, a to, ak 
    je v rodièovskej triede definovaná metóda ako <link linkend="language.oop5.final">final</link>,
    opakovanou deklaráciou s tým istým menom metódy, aké bolo pou¾ité v 
    rodièovskej triede.
    Je taktie¾ mo¾né pristupova» k nahradeným metódam alebo vlastnostiam rodièovskej
    triedy, odkazovaním sa pomocou <link linkend="language.oop5.paamayim-nekudotayim">parent::</link>
   </para>
   <example>
    <title>Jednoduché dedenie triedy</title>
    <programlisting role="php">
<![CDATA[
<?php
class ExtendClass extends SimpleClass
{
    // Redefine the parent method
    function displayVar()
    {
        echo "Extending class\n";
        parent::displayVar();
    }
}

$extended = new ExtendClass();
$extended->displayVar();
?>
]]>
    </programlisting>
    &example.outputs;
    <screen>
<![CDATA[
Extending class
a default value
]]>
    </screen>
   </example>
  </sect2>

 </sect1>

<!-- 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
-->