cvs: phpdoc-hu /language/oop5 interfaces.xml

[email protected] ("Lajos Cseppent?")
Newsgroups php.doc.hu
Message-ID <cvschappy1161460093@cvsserver>
chappy		Sat Oct 21 19:48:13 2006 UTC

  Added files:                 
    /phpdoc-hu/language/oop5	interfaces.xml 
  Log:
  sync
  

http://cvs.php.net/viewvc.cgi/phpdoc-hu/language/oop5/interfaces.xml?view=markup&rev=1.1
Index: phpdoc-hu/language/oop5/interfaces.xml
+++ phpdoc-hu/language/oop5/interfaces.xml
<?xml version="1.0" encoding="iso-8859-2"?>
<!-- EN-Revision: 1.8 Maintainer: chappy Status: ready --> 
 <sect1 id="language.oop5.interfaces">
  <title>Objektum Interfészek</title>
  <para>
   Az objektum interfészek lehetõvé teszik, hogy létrehozz egy kódot mely megszabja, 
   milyen metódusokat kötelezõ implementálni anélkül, hogy definiáljuk ezeknek a metódusoknak 
   a kezelését.
  </para>
  <para>
   Az interfészeket az interface kulcsszóval lehet definiálni, ugyanúgy mint az általános 
   osztályokat, de a metódusok tartalma nélkül.
  </para>
  <para>
   Minden interfészben definiált metódusnak publikusnak kell lennie, ez a természetes 
   egy interfészben.
  </para>
  <sect2>
   <title><literal>implements</literal></title>
   <para>
    Egy interfész megvalósításához az <literal>implements</literal> kezelõt kell használni. 
	Minden interfészben szereplõ metódust meg kell valósítani az osztályba, különben 
	a program fatális hibát eredményez. Az osztályok több, mint egy interfészt is megvalósíthatnak, 
	ha ezeket vesszõvel választjuk el.
   </para>
   <note>
    <para>
	 Egy osztály nem valósíthat meg két interfészt amelyek azonos függvényneveket tárolnak, 
	 ugyanis ez kétértelmûséget okozhat.
    </para>
   </note>
  </sect2>
  <sect2>
   &reftitle.examples;
   <example>
    <title>Interface example</title>
     <programlisting role="php">
<![CDATA[
<?php
// Az "iTemplate" interfész definiálása
interface iTemplate
{
    public function setVariable($name, $var);
    public function getHtml($template);
}

// Interfész megvalósítása
// Ez múködni fog
class Template implements iTemplate
{
    private $vars = array();
  
    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }
  
    public function getHtml($template)
    {
        foreach($this->vars as $name => $value) {
            $template = str_replace('{' . $name . '}', $value, $template);
        }
 
        return $template;
    }
}

// Ez nem mûködik
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
// Fatális hiba: A BadTemplate tarmalmaz 1 elvont metódust és ezért ezt definiálni kell (iTemplate::getHtml)
class BadTemplate implements iTemplate
{
    private $vars = array();
  
    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }
}

?>
]]>
    </programlisting>
   </example>
   <simpara>
     Lásd még az <link linkend="language.operators.type">instanceof</link>
     operátort.
   </simpara>
  </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
-->
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.