<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Curso_POO_PHP_Definici%C3%B3n_de_clases</id>
	<title>Curso POO PHP Definición de clases - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Curso_POO_PHP_Definici%C3%B3n_de_clases"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Curso_POO_PHP_Definici%C3%B3n_de_clases&amp;action=history"/>
	<updated>2026-10-26T06:51:04Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Curso_POO_PHP_Definici%C3%B3n_de_clases&amp;diff=36754&amp;oldid=prev</id>
		<title>Vlourido: /* Definición de clases */</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Curso_POO_PHP_Definici%C3%B3n_de_clases&amp;diff=36754&amp;oldid=prev"/>
		<updated>2013-07-31T16:17:00Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Definición de clases&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Definición de clases ==&lt;br /&gt;
&lt;br /&gt;
A declaración dunha clase en PHP faise utilizando a palabra &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/language.oop5.basic.php class]&amp;#039;&amp;#039;&amp;#039;. A continuación e entre chaves, deben figurar os membros da clase. Unha clase pode ter tres tipos de membros:&lt;br /&gt;
&lt;br /&gt;
* Constantes. Decláranse empregando a palabra &amp;#039;&amp;#039;&amp;#039;const&amp;#039;&amp;#039;&amp;#039;. Non usan o carácter &amp;quot;&amp;#039;&amp;#039;&amp;#039;$&amp;#039;&amp;#039;&amp;#039;&amp;quot; e o seu valor vai sempre entre comiñas e está asociado á clase, é dicir, non existe unha copia deste en cada obxecto. É habitual empregar nomes en letras maiúsculas para os identificadores das constantes.&lt;br /&gt;
* Variables. As variables dunha clase reciben o nome de &amp;#039;&amp;#039;&amp;#039;propiedades&amp;#039;&amp;#039;&amp;#039; ou &amp;#039;&amp;#039;&amp;#039;atributos&amp;#039;&amp;#039;&amp;#039;. Os valores dos atributos de cada obxecto son independentes uns dos outros. Na declaración da clase é posible indicar un valor para cada atributo. Neste caso, todos os obxectos que se instancien a partir desa clase, partirán con ese valor por defecto no atributo.&lt;br /&gt;
* Funcións. As funcións dunha clase reciben o nome de &amp;#039;&amp;#039;&amp;#039;métodos&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Pódese indicar o [http://www.php.net/manual/es/language.oop5.visibility.php nivel de acceso ou visibilidade] para cada propiedade e método definido nunha clase (as constantes que conteñan serán sempre públicas). Os principais niveis (&amp;#039;&amp;#039;&amp;#039;protected&amp;#039;&amp;#039;&amp;#039; vese coa [[Curso POO PHP Herdanza|herdanza]]) son:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;public&amp;#039;&amp;#039;&amp;#039;. Os membros declarados como public poden utilizarse directamente polos obxectos da clase.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;private&amp;#039;&amp;#039;&amp;#039;. Os membros declarados como private só poden ser accedidos polos métodos definidos na clase, non directamente polos obxectos desta.&lt;br /&gt;
&lt;br /&gt;
Cando se declara unha clase, convén facelo de forma ordenada: primeiro as constantes, a continuación as propiedades, e despois os métodos, cada un co seu código respectivo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
class Produto {&lt;br /&gt;
    const EURO = &amp;quot;166.386&amp;quot;;&lt;br /&gt;
    private $codigo;&lt;br /&gt;
    public $nome;&lt;br /&gt;
    public $PVP;&lt;br /&gt;
        &lt;br /&gt;
    public function mostra_codigo() {&lt;br /&gt;
        print &amp;quot;&amp;lt;p&amp;gt;&amp;quot; . $this-&amp;gt;codigo . &amp;quot;&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un dos motivos para crear atributos privados é que o seu valor forma parte da información interna do obxecto. Outro motivo é manter certo control sobre os seus posibles valores. Por exemplo, non queres que se poida cambiar libremente o valor do código dun produto. Ou necesitas coñecer cal será o novo valor antes de asignalo. Nestes casos, adóitanse definir eses atributos como privados e crear dentro da clase métodos para permitirnos obter e/ou modificar os valores deses atributos. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
class Produto {&lt;br /&gt;
    private $codigo;&lt;br /&gt;
&lt;br /&gt;
    public function setCodigo($novo_codigo) {&lt;br /&gt;
        if (noExisteCodigo($novo_codigo)) {&lt;br /&gt;
            $this-&amp;gt;codigo = $novo_codigo;&lt;br /&gt;
            return true;&lt;br /&gt;
        }&lt;br /&gt;
        return false;&lt;br /&gt;
    }&lt;br /&gt;
    public function getCodigo() { return $this-&amp;gt;codigo; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aínda que non é obrigatorio, o nome do método que nos permite obter o valor dun atributo adoita empezar por &amp;#039;&amp;#039;&amp;#039;get&amp;#039;&amp;#039;&amp;#039;, e o que nos permite modificalo por &amp;#039;&amp;#039;&amp;#039;set&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
É preferible que cada clase figure no seu propio ficheiro. Ademais, aínda que os nomes das clases non son sensibles a maiúsculas e minúsculas, moitos programadores prefiren utilizar para as clases nomes que comecen por letra maiúscula, para, desta forma, distinguilos dos obxectos e outras variables.&lt;br /&gt;
&lt;br /&gt;
Entre as [http://www.php.net/manual/es/language.constants.predefined.php constantes predefinidas en PHP] atópanse &amp;#039;&amp;#039;&amp;#039;__CLASS__&amp;#039;&amp;#039;&amp;#039; e &amp;#039;&amp;#039;&amp;#039;__METHOD__&amp;#039;&amp;#039;&amp;#039; que devolven respectivamente o nome da clase e do método que se está a executar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Vlourido|Víctor Lourido]] 19:44 27 jun 2013 (CEST)&lt;/div&gt;</summary>
		<author><name>Vlourido</name></author>
	</entry>
</feed>