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