<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ruan Carlos &#187; POO</title>
	<atom:link href="http://ruancarlos.com.br/Blog/category/poo/feed/" rel="self" type="application/rss+xml" />
	<link>http://ruancarlos.com.br/Blog</link>
	<description>Desenvolvimento</description>
	<lastBuildDate>Thu, 02 Sep 2010 15:04:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1-alpha</generator>
		<item>
		<title>Instanciando uma classe dentro dela mesma</title>
		<link>http://ruancarlos.com.br/Blog/instanciando-uma-classe-dentro-dela-mesma/</link>
		<comments>http://ruancarlos.com.br/Blog/instanciando-uma-classe-dentro-dela-mesma/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 14:04:31 +0000</pubDate>
		<dc:creator>Ruan Carlos</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[POO]]></category>

		<guid isPermaLink="false">http://ruancarlos.com.br/Blog/?p=22</guid>
		<description><![CDATA[Como chamar uma classe dentro dela mesma no PHP Orientado a Objetos]]></description>
			<content:encoded><![CDATA[<p>Olá, nós estamos de volta, hehe.
</p>
<p>Bom, esta semana eu tive alguns probleminhas com POO (programação orientada a objetos) do qual eu não sabia/conseguia como instanciar uma classe dentro dela mesmo.</p>
<p>Com a ajuda da <a title="Lista PHP" href="http://groups.google.com.br/group/listaphp?hl=pt-BR" target="_blank">lista PHP do google</a> o <a title="Site do Alexandre" href="http://gaigalas.net/" target="_blank">Alexandre Gaigalas</a> me deu o tok do <code> <a href="http://br.php.net/manual/pt_BR/reserved.classes.php" target="_blank">self </a></code></p>
<p>Irei falar sobre o self mais a frente, quando eu for explicar sobre métodos estáticos.</p>
<p>O código que ele me mandou foi este:</p>
<pre class="brush: php;">
*class* Teste
{
    public function __construct() {
        $nova_instancia = new *self*(); //Exemplo 1
        $outra_instancia = new *Teste*(); //Assim também funciona
    }
}
</pre>
<p>O por que ele colocou estes * (asteriscos) eu não sei. Mais eu mudei para minha necessidade, assim:</p>
<pre class="brush: php;">
public static function login($login,$senha) {
	//verifica o login
	.
	.
	.
	return new self($matricula);
}
</pre>
<h3>Conclusão</h3>
<p>Como não conseguimos dar um <a href="http://br.php.net/manual/pt_BR/language.oop5.basic.php" target="_blank">new </a>na classe que eu estava (Usuario). Tive que usar a palavra reserva self para dizer que era esta mesma classe que eu precisava instanciar.</p>
<p>Até mais.</p>
]]></content:encoded>
			<wfw:commentRss>http://ruancarlos.com.br/Blog/instanciando-uma-classe-dentro-dela-mesma/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
