<?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>BLOG::Nivaldo &#187; PHP</title>
	<atom:link href="http://www.nivaldoarruda.com.br/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nivaldoarruda.com.br</link>
	<description>Tecnologias Web, PHP e Aquários</description>
	<lastBuildDate>Thu, 03 Jun 2010 13:14:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Zend Framework 2.0 &#8211; Quais são as novidades?</title>
		<link>http://www.nivaldoarruda.com.br/2010/05/13/zend-framework-2-0-quais-sao-as-novidades/</link>
		<comments>http://www.nivaldoarruda.com.br/2010/05/13/zend-framework-2-0-quais-sao-as-novidades/#comments</comments>
		<pubDate>Thu, 13 May 2010 16:21:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[2.0]]></category>
		<category><![CDATA[componentes]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[lançamento]]></category>
		<category><![CDATA[novidades]]></category>
		<category><![CDATA[PHP 5.3]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Zend Framework 2.0]]></category>
		<category><![CDATA[ZF]]></category>
		<category><![CDATA[Zf 2.0]]></category>

		<guid isPermaLink="false">http://www.nivaldoarruda.com.br/?p=672</guid>
		<description><![CDATA[Novidades do Zend Framework 2.0 Como todos devem saber, sempre que existe uma alteração de versão de algum produto (versão, não release) muitas alterações são feitas, componentes são retirados, componentes são adicionados e as vezes até conceitos são revistos.  Com o Zend Framework não vai ser diferente. A Zend está preparando várias modificações para essa [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/08/11/zend-framework-criando-um-view-helper/' rel='bookmark' title='Permanent Link: Zend Framework &#8211; Criando um View helper'>Zend Framework &#8211; Criando um View helper</a> <small>O blog está um pouco parado, então irei reanima-lo um...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/08/01/zend-framework-1-9-0/' rel='bookmark' title='Permanent Link: Zend Framework 1.9.0'>Zend Framework 1.9.0</a> <small>Baixe o seu em: http://framework.zend.com/download/latest Fora os mais de 700...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/08/26/zend-framework-criando-action-helpers/' rel='bookmark' title='Permanent Link: Zend Framework &#8211; Criando Action Helpers'>Zend Framework &#8211; Criando Action Helpers</a> <small>Conforme eu havia prometido aqui, hoje eu estarei dando continuidade...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><h2 align="center"><div id="attachment_673" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.nivaldoarruda.com.br/category/zend/"><img class="size-medium wp-image-673 " title="Artigos sobre Zend Framework" src="http://www.nivaldoarruda.com.br/wp-content/uploads/2010/05/ZendFramework2-logo-300x79.png" alt="Artigos sobre Zend Framework" width="300" height="79" /></a><p class="wp-caption-text">Zend Framework 2.0</p></div></h2>
<h2>Novidades do Zend Framework 2.0</h2>
<p>Como todos devem saber, sempre que existe uma alteração de versão de algum produto (versão, não release) muitas alterações são feitas, componentes são retirados, componentes são adicionados e as vezes até conceitos são revistos.  Com o <strong>Zend Framework</strong> não vai ser diferente. A Zend está preparando várias modificações para essa versão, algumas bem radicais.  Dar uma boa lida para saber o que nos espera nunca é demais <img src='http://www.nivaldoarruda.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h2>Mudanças na arquitetura</h2>
<ul>
<li><strong>Construtor Unificado</strong>. Todos os construtores irão (opcionalmente) aceitar um array de opções ou  um objeto do tipo <strong>Zend_Config </strong>como primeiro argumento. Isso permite uma maior flexibilidade para adicionar novos argumentos, suportará números variáveis de argumentos e ainda permitir argumentos &#8220;nomeados&#8221;. Além disso tudo, é uma boa tecnica para  permitir Injeção de dependência (Dependency Injection).<br />
Como parte dessa iniciativa, a maioria dos componentes também terão um método &#8220;setOptions()&#8221; que receberá o array de opções (e que poderá ser usado mais tarde para reiniciar o estado do objeto). Muitos componentes do <strong>ZF </strong>1.X já fazem isso: <strong>Zend_Application</strong>, <strong>Zend_Form</strong>, <strong> Zend_Validate</strong>, <strong>Zend_Layout</strong>, etc.</li>
<li><strong>Opções (Options</strong>). No <strong>ZF 1.5</strong>, entre os vários componentes que aceitos opções, o fazem em uma variedade de formatos: Alguns esperam chaves separadas por sublinhado (underscore) &#8220;_&#8221;, outros esperam chavesCamelCase, outros em CAIXAALTA ou caixabaixa. Essa variação, além de causar muita confusão, dificulta o debug. Um dos objetivos do <strong>ZF 2.0</strong> é padronizar essas chaves de opções e corrigir essa situação.<br />
Atualmente, estão tentando padronizador tudo_em_caixa_baixa_com_sublinhado. Isso torna as chaves legíveis para humanos, contém apenas caracteres válidos para variáveis <strong>PHP </strong>e torna o parse mais simples.</li>
<li><strong>Exceções (Exceptions</strong>). Cada componete terá uma interface criadora de  exceções, que serão jogadas por seus componentes. As exceções concretas irão extender ou a classe global Exception  ou a SPL Exception e ainda implementarão o componente Exception interface.</li>
</ul>
<ul>
<li><strong>Programação por contrato (</strong><strong>Design By Contract</strong>). Será alterado primeiro algumas partes do framework para poder criar um padrão de design por contrato para poder ser seguido, então, os novos desenvolvimentos seguirão esse padrão.</li>
<li><strong>Eliminação da maioria dos  singletons</strong>. O <strong>ZF </strong>foi acusado de usar muito sigletons, seus desenvolvedores ainda não aceitaram completamente essa questão, mas perceberam que na maioria dos casos o singleton apresentou diversos problemas e dificuldade para os casos de testes. Por conta desses e outros problemas, os códigos serão refatorados e todos os sigletons removidos.</li>
<li><strong>Criação de componentes genéricos, e ações multi-funcionais</strong>. Existe uma série de componentes de código duplicado, eles serão jogados dentro de um componete discreto, aonde os componentes originais poderão consumi-los. Alguns exemplos:
<ul>
<li>Plugins/Helpers/Strategies (Atualmente em   <strong>Zend_Controller_Front</strong>, <strong>Zend_Controller_Action_Helper</strong>, <strong>Zend_View </strong>(helpers e filters), <strong>Zend_Form</strong> (validators, filters, e decorators), etc.)</li>
<li>Decorators (Atualmente em <strong>Zend_Form</strong> <img src='http://www.nivaldoarruda.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>Factories (Atualmente em <strong>Zend_Db</strong>, <strong>Zend_Navigation_Page</strong>, <strong> Zend_Auth</strong>, <strong>Zend_Translate</strong>, <strong>Zend_Cache</strong>, etc.)</li>
<li>Caching (Atualmente em <strong>Zend_Translate</strong>, <strong>Zend_Locale</strong>,  <strong>Zend_Queue</strong>,<strong> Zend_Paginator</strong>, <strong>Zend_Feed_Reader</strong>, <strong>Zend_Db_Table</strong>, etc.)</li>
</ul>
</li>
<li><strong>Utilização de novas funções da linguagem</strong>. O <strong>PHP 5.3</strong> oferece algumas alternativas que serão exploradas para os plugins, são elas: __invoke() e closures.</li>
<li><strong>Apenas autoload</strong>. Todo o framework irá utilizar o autoloading como padrão, isso irá diminuir alguns problemas de performance e simplicar muito códigos.</li>
<li><strong>Namespaces</strong>. Os Namespaces do <strong>PHP</strong> beneficia os frameworks e as bibliotecas mais que qualquer outra base de código e o <strong>Zend Framework</strong> pode se beneficiar muito dele. Mas tudo isso tem um custo, todo os códigos deverão ser reescritos para se beneficiar dele.</li>
<li><strong>goto</strong>. Goto sempre são considerados &#8220;malvados&#8221;, mas é inevitável o a criação de máquina de estados finitos (Finite State Machines (FSM)) e parsers. O uso do goto será estudado caso-a-caso. Segundo a equipe, o componente <strong>Zend_Search_Lucene</strong> é um dos que mais será beneficiado com esse método, assim como o MVC</li>
</ul>
<h2>Implementações MVC</h2>
<p>Como a atual versão do <strong>MVC</strong> está gerando problemas no ciclo da requisição, uma proposta para seu aperfeiçoamento está sendo montada. Enquanto você pode conseguir algum desempenho adicional retirando as chamadas require_once e usando autoloading, o mais rápido dos pedidos ainda estão muito além de outros frameworks mais enxutos (CodeIgniter por ex.). Para resolver esse problema, a equipe está estudando e irá refatorar uma  grande quantidade de códigos relacionadas a camada MVC.</p>
<p>Uma segunda olhada no <strong>MVC</strong>, seria relacionada as rotas de URL. Eles citam a Horde_Routes, que se tornou base nos projetos em python. Estão analizando se essa seria uma boa escolha de mudanças para esse caso.</p>
<p>Uma outra idéia seria transformar o Front Controller em uma maquina de estado (graças ao <strong>PHP 5.3</strong> e o goto). Isso permitiria pulos dentro da aplicação que retiraria diversos loops e problemas.</p>
<p>Para mais informações a respeito da reestruturação do <strong>MVC</strong>, por favor, veja esses links (em inglês):</p>
<ul>
<li><a href="http://framework.zend.com/wiki/display/ZFDEV2/Zend_Controller+2.0">Zend_Controller  2.0</a></li>
<li><a href="http://framework.zend.com/wiki/display/ZFDEV2/Zend_Controller_router+2.0">Zend_Controller_Router  2.0</a></li>
<li><a href="http://framework.zend.com/wiki/display/ZFDEV2/Zend_View+2.0">Zend_View  2.0</a></li>
<li><a href="http://framework.zend.com/wiki/display/ZFDEV2/Zend_Session+2.0">Zend_Session  2.0</a></li>
<li><a title="Zend_Form 2.0" href="http://framework.zend.com/wiki/display/ZFDEV2/Zend_Form+2.0">Zend_Form 2.0</a></li>
</ul>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/08/11/zend-framework-criando-um-view-helper/' rel='bookmark' title='Permanent Link: Zend Framework &#8211; Criando um View helper'>Zend Framework &#8211; Criando um View helper</a> <small>O blog está um pouco parado, então irei reanima-lo um...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/08/01/zend-framework-1-9-0/' rel='bookmark' title='Permanent Link: Zend Framework 1.9.0'>Zend Framework 1.9.0</a> <small>Baixe o seu em: http://framework.zend.com/download/latest Fora os mais de 700...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/08/26/zend-framework-criando-action-helpers/' rel='bookmark' title='Permanent Link: Zend Framework &#8211; Criando Action Helpers'>Zend Framework &#8211; Criando Action Helpers</a> <small>Conforme eu havia prometido aqui, hoje eu estarei dando continuidade...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2010/05/13/zend-framework-2-0-quais-sao-as-novidades/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Certificação em Zend Framework</title>
		<link>http://www.nivaldoarruda.com.br/2010/05/07/certificacao-em-zend-framework/</link>
		<comments>http://www.nivaldoarruda.com.br/2010/05/07/certificacao-em-zend-framework/#comments</comments>
		<pubDate>Fri, 07 May 2010 13:07:42 +0000</pubDate>
		<dc:creator>Nivaldo Arruda</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Treinamento]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[misc]]></category>
		<category><![CDATA[certificação]]></category>
		<category><![CDATA[Prova]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[ZF]]></category>

		<guid isPermaLink="false">http://www.nivaldoarruda.com.br/?p=662</guid>
		<description><![CDATA[Alguém aqui pensa em tirar uma Certificação do Zend Framework? Eu, sinceramente, já cogitei a idéia, mas acabei desistindo porque não vi muito diferencial (ao menos não em Curitiba/PR). Mas acabei caindo em um post do http://www.phpdeveloper.org/ e resolvi pensar novamente no assunto. As certificações são uma forma de comprovar que você dominia o assunto/ferramenta/linguagem/etc [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/02/19/testes-automatizados-com-zend-framework-parte-1/' rel='bookmark' title='Permanent Link: Testes automatizados com Zend Framework &#8211; Parte 1'>Testes automatizados com Zend Framework &#8211; Parte 1</a> <small>Automatizar os testes, em suas aplicações web, é um importante...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/08/26/zend-framework-criando-action-helpers/' rel='bookmark' title='Permanent Link: Zend Framework &#8211; Criando Action Helpers'>Zend Framework &#8211; Criando Action Helpers</a> <small>Conforme eu havia prometido aqui, hoje eu estarei dando continuidade...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/10/23/integrando-o-zend-framework-com-o-dojo/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo'>Integrando o Zend Framework com o Dojo</a> <small>Bom, como me bati um pouco para achar boas informações...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Alguém aqui pensa em tirar uma <strong>Certificação </strong>do <a title="Artigos sobre Zend Framework" href="http://www.nivaldoarruda.com.br/category/zend/">Zend Framework</a>? Eu, sinceramente, já cogitei a idéia, mas acabei desistindo porque não vi muito diferencial (ao menos não em Curitiba/PR). Mas acabei caindo em um post do <a title="PHP Developer" href="http://www.phpdeveloper.org/news/14354">http://www.phpdeveloper.org/</a> e resolvi pensar novamente no assunto.</p>
<p>As <strong>certificações </strong>são uma forma de comprovar que você dominia o assunto/ferramenta/linguagem/etc e teoricamente lhe deveria render uma grana a mais por esse investimento, mas o que vejo é que o único retorno é uma satisfação pessoal. Aqui em curitiba, se não estou enganado a <a title="Elaborata" href="http://www.elaborata.com.br">Elaborata</a> e o <a title="Opet" href="http://www.opet.com.br">Opet</a> possuem autorização para aplicar esses tipos de certificações e essas, em específico, possuem um valor que é relativamente tranquilo de pagar.</p>
<p>No mesmo post que citei acima, é feito uma referência a um <a title="PDF sobre a Prova de Certificação do Zend Framework" href="http://akrabat.com/wp-content/uploads/ZendCon09-ZF-Certification-Refresher.pdf" target="_blank">PDF sobre a Prova de Certificação do Zend Framework</a>. Recomendo a leitura, para quem interessar =)</p>
<p>Porque fiz esse post vago? Para divulgar esse PDF, além de ser bem legal poderá ajudar alguém e para eu voltar a pensar sobre o assunto. Com a vida conturbada (profissionalmente falando) que ando levando, talvez seja hora de parar, colocar o pé chão e apontar para algum lado. Se é esse caminho que vou seguir, que ao menos siga da forma mais profissional possível. Ou não?</p>
<p><strong>Perguntas </strong>(vai que algum leitor quer interagir ^^):</p>
<ul>
<li>Você tem alguma certificação? Qual(quais)?</li>
<li>Você pretende tirar alguma certificação algum dia? Qual(quais)?</li>
</ul>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/02/19/testes-automatizados-com-zend-framework-parte-1/' rel='bookmark' title='Permanent Link: Testes automatizados com Zend Framework &#8211; Parte 1'>Testes automatizados com Zend Framework &#8211; Parte 1</a> <small>Automatizar os testes, em suas aplicações web, é um importante...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/08/26/zend-framework-criando-action-helpers/' rel='bookmark' title='Permanent Link: Zend Framework &#8211; Criando Action Helpers'>Zend Framework &#8211; Criando Action Helpers</a> <small>Conforme eu havia prometido aqui, hoje eu estarei dando continuidade...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/10/23/integrando-o-zend-framework-com-o-dojo/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo'>Integrando o Zend Framework com o Dojo</a> <small>Bom, como me bati um pouco para achar boas informações...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2010/05/07/certificacao-em-zend-framework/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Repetição &#8211; Parte 6</title>
		<link>http://www.nivaldoarruda.com.br/2010/03/21/curso-de-php-modulo-basico-estrutura-de-repeticao-parte-6/</link>
		<comments>http://www.nivaldoarruda.com.br/2010/03/21/curso-de-php-modulo-basico-estrutura-de-repeticao-parte-6/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 20:27:26 +0000</pubDate>
		<dc:creator>Nivaldo Arruda</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Treinamento]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[Básico]]></category>
		<category><![CDATA[curso]]></category>
		<category><![CDATA[Estrutura de repetição]]></category>

		<guid isPermaLink="false">http://www.nivaldoarruda.com.br/?p=635</guid>
		<description><![CDATA[Dando continuidade ao meu Curso de PHP, vamos falar a respeito das Estruturas de repetição (comandos FOR e While). Repetir um bloco de comandos é algo muito corriqueiro na vida de um desenvolvedor. Por mais simples que seja um sistema ou um site que você virá a fazer, pode acreditar que você precisará usar uma [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2010/01/23/curso-de-php-modulo-basico-estrutura-de-controle-parte-5/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Controle &#8211; Parte 5'>Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Controle &#8211; Parte 5</a> <small>Curso de PHP &#8211; Estrutura de controles Durante o desenvolvimento...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-variaveis-e-constantes-parte-4/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Variáveis e Constantes &#8211; Parte 4'>Curso de PHP &#8211; Módulo Básico &#8211; Variáveis e Constantes &#8211; Parte 4</a> <small>Variáveis Variáveis são endereços de memória que contém valores que...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-parte-1/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Parte 1'>Curso de PHP &#8211; Módulo Básico &#8211; Parte 1</a> <small>Nos ultimos tempos, o número de visitantes que estão caindo...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Dando continuidade ao meu <a href="http://www.nivaldoarruda.com.br/curso-de-php">Curso de PHP</a>, vamos falar a respeito das <strong>Estruturas de repetição</strong> (comandos <strong>FOR</strong> e <strong>While</strong>).</p>
<p>Repetir um bloco de comandos é algo muito corriqueiro na vida de um desenvolvedor. Por mais simples que seja um sistema ou um site que você virá a fazer, pode acreditar que você precisará usar uma dessas estruturas. Seja para listar produtos/clientes, realizar operações matemáticas ou mesmo enviar emails. Vamos ver alguns exemplos de uso.</p>
<p>Ex.: Escreva o número &#8220;1&#8243; na tela.</p>
<pre class="brush: php">
&lt;?
echo 1;
?&gt;
</pre>
<p>Simples e Fácil. Agora escreva o número &#8220;1&#8243; e o número &#8220;2&#8243; na tela (um em cada linha).</p>
<pre class="brush: php">
&lt;?
echo 1.&quot;&lt;br/&gt;&quot;;
echo 2.&quot;&lt;br/&gt;&quot;;
?&gt;
</pre>
<p>Já começa a ficar estranho, não? Agora digamos que você precise escrever do número 1 ao número 10 na tela.</p>
<pre class="brush: php">
&lt;?
echo 1.&quot;&lt;br/&gt;&quot;;
echo 2.&quot;&lt;br/&gt;&quot;;
echo 3.&quot;&lt;br/&gt;&quot;;
...
echo 9.&quot;&lt;br/&gt;&quot;;
echo 10.&quot;&lt;br/&gt;&quot;;
?&gt;
</pre>
<p>Perceba que o código foi abreviado após o número &#8220;3&#8243;, caso contrário, esse script já ficaria muito longo para ser escrito aqui. Agora imagine se você precisasse escrever até o número 300. Faria 300 linhas iguais, mudando apenas o número? Com certeza funcionaria, mas seu código ficaria muito poluido e grande. Outro problema: E como você faria se o número total de vezes fosse dinâmico? viesse de uma consulta ao banco de dados por exemplo, você não teria como saber quantos &#8220;echos&#8221; deveria escrever. Então vamos reescrever esse programa utilizando a nossa primeira função da estrutura de repetição, o laço &#8220;for&#8221;. Veja a diferença:</p>
<pre class="brush: php">
&lt;?
for($contador=1;$contador&lt;=300;$contador++){
    echo $contador.&quot;&lt;br/&gt;&quot;;
}
?&gt;
</pre>
<p>Essas três linhas de códigos vão surtir exatamente o mesmo efeito do que se você tivesse escrito 300 &#8220;echo&#8221; no seu script. Agora entenda como executar esse novo comando. Todo a regra dele está apenas nessa linha:</p>
<pre class="brush: php">
for($contador=1;$contador&lt;=300;$contador++){
</pre>
<p>Para entendermos o seu funcionamento, experiemnte visualiza-la em 4 partes diferentes:</p>
<p>* <strong>for()</strong> -> Nome de um dos método nativo do PHP(e de quase todas as outras linguagens de programação) para controle de repetição. (<a href="http://www.php.net/for">http://www.php.net/for</a>)<br />
* <strong>$contador=1</strong> -> Aqui você define uma variável de controle, neste caso &#8220;$contador&#8221;, e atribuí o seu valor inicial em &#8220;1&#8243;;<br />
* <strong>$contador<=300 </strong>-> Aqui você define uma condição de continuidade para o laço, isto é, o for irá executar o bloco de comando dentro dele, enquanto<br />
essa condição for verdadeira. Neste caso, o laço irá executar enquanto $contador for menor ou igual a 300.<br />
*<strong>$contador++</strong> -> Essa é a ultima expressão do for. Aqui você define o que deve acontecer com a variável de controle após cada iteração. Nesse exemplo,<br />
após executar o echo, ele irá incrementar o $contador em 1.</p>
<p>Assim, a cada volta desse loop, a variável $contador irá somar +1 em seu valor até que o total seja maior que 300, que é quando o for termina e o interpretador passa a executar o próximo bloco de comando (caso exista).</p>
<p>O próximo comando, é o while (<a href="http://www.php.net/while">http://www.php.net/while</a>). Ele também é um comando de repetição, mas é um pouco mais simples que o &#8220;for&#8221;. Basicamente um while funciona da seguinte maneira:</p>
<pre class="brush: php">
&lt;?php
while (expressao){
    Comando 1;
    Comando 2;
}
?&gt;
</pre>
<p>A expressão é uma comparação. O laço será executado enquanto essa comparação for verdadeira. Se você necessitar de um contador dentro do seu loop, terá que faze-lo de forma manual. Ex.</p>
<pre class="brush: php">
&lt;?php
$i = 0;
while ($i&lt;10){
    echo $i.&quot;&lt;br/&gt;&quot;;
    $i++;
}
?&gt;
</pre>
<p>*Nota: Lembre-se. O while continuará sua execução, até que a expressão informada se torne falsa. Então, Tome muito cuidado com o tipo de comparação que você irá realizar para não acabar criando o famoso &#8220;<strong>loop infinito</strong>&#8220;.</p>
<p>Uma &#8220;variação&#8221; do comando while é o &#8220;do-while&#8221;, a diferença entre eles está no processo de verificação da expressão. No while, primeiro o <strong>PHP </strong>valida a expressão, se for verdadeira, ele executa os comando, até que ela se torne falsa. Enquanto o &#8220;do-while&#8221; executa o camando e só depois valida a expressão(se ela for verdadeira, ele continua executando). Ex:</p>
<pre class="brush: php">
&lt;?php
$i = 3;
do {
    echo $i;
    $i--;
} while ($i &gt; 0);
?&gt;
</pre>
<p>É isso, agora muito treino. Que tal fazer alguns exercícios?</p>
<ol>
<li>Escreva a lista de números começando de 300 e indo até 0(zero)</li>
<li>Escreva uma lista de números <em>PARES</em>, de 0 a 300</li>
</ol>
<p>Abraços</p>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2010/01/23/curso-de-php-modulo-basico-estrutura-de-controle-parte-5/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Controle &#8211; Parte 5'>Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Controle &#8211; Parte 5</a> <small>Curso de PHP &#8211; Estrutura de controles Durante o desenvolvimento...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-variaveis-e-constantes-parte-4/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Variáveis e Constantes &#8211; Parte 4'>Curso de PHP &#8211; Módulo Básico &#8211; Variáveis e Constantes &#8211; Parte 4</a> <small>Variáveis Variáveis são endereços de memória que contém valores que...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-parte-1/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Parte 1'>Curso de PHP &#8211; Módulo Básico &#8211; Parte 1</a> <small>Nos ultimos tempos, o número de visitantes que estão caindo...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2010/03/21/curso-de-php-modulo-basico-estrutura-de-repeticao-parte-6/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Controle &#8211; Parte 5</title>
		<link>http://www.nivaldoarruda.com.br/2010/01/23/curso-de-php-modulo-basico-estrutura-de-controle-parte-5/</link>
		<comments>http://www.nivaldoarruda.com.br/2010/01/23/curso-de-php-modulo-basico-estrutura-de-controle-parte-5/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 23:55:53 +0000</pubDate>
		<dc:creator>Nivaldo Arruda</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Treinamento]]></category>
		<category><![CDATA[misc]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[curso]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.nivaldoarruda.com.br/?p=603</guid>
		<description><![CDATA[Curso de PHP &#8211; Estrutura de controles Durante o desenvolvimento de um projeto é muito comum que o sistema precise receber alguma informação e com base nessa informação, tomar um decisão para escolher o próximo caminho(ou bloco de comandos) a ser executado. Um exemplo rápido disso é o login. Caso a pessoa esteja logado no [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2010/03/21/curso-de-php-modulo-basico-estrutura-de-repeticao-parte-6/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Repetição &#8211; Parte 6'>Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Repetição &#8211; Parte 6</a> <small>Dando continuidade ao meu Curso de PHP, vamos falar a...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-iniciando-em-php-parte-3/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Iniciando em PHP &#8211; Parte 3'>Curso de PHP &#8211; Módulo Básico &#8211; Iniciando em PHP &#8211; Parte 3</a> <small>Iniciando em PHP A partir de agora, iremos supor que...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-parte-1/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Parte 1'>Curso de PHP &#8211; Módulo Básico &#8211; Parte 1</a> <small>Nos ultimos tempos, o número de visitantes que estão caindo...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p><strong>Curso de PHP &#8211; Estrutura de controles</strong></p>
<p>Durante o desenvolvimento de um <strong>projeto </strong>é muito comum que o sistema precise receber alguma informação e com base nessa informação, tomar um decisão para escolher o próximo caminho(ou bloco de comandos) a ser executado. Um exemplo rápido disso é o login. Caso a pessoa esteja logado no site, o mesmo deve apresentar um conteudo diferente do caso do usuário ser apenas um visitante. Vamos ilustrar esse exemplo, com 2 estruturas de controle encontradas no PHP.</p>
<p>if / else</p>
<p>o comando &#8220;if&#8221; com certeza é o mais conhecido na área da programação. Você faz uma pergunta para o PHP e caso essa seja verdadeira, ele irá executar o que lhe foi mandado, ou caso seja falsa, executará outro bloco (opcional)</p>
<p>ex:</p>
<pre class="brush: php">
if($logado == true){
   echo &quot;Olá usuário logado.&quot;;
}
</pre>
<p>Esse bloco acima, irá imprimir a mensagem entre aspas, caso a variavel $logado seja verdadeira. Se ela for falsa, nada acontece. Agora veja o mesmo exemplo com else:</p>
<pre class="brush: php">
if($logado == true){
   echo &quot;Olá usuário logado.&quot;;
}else{
   echo &quot;Olá visitante.&quot;;
}
</pre>
<p>Esse diferencial será executado, apenas quando a condição do IF for falsa. Então, se o usuário não estiver logado, o sistema irá trata-lo como visitante. Para aninhar ifs,  isto é, realizar várias validações no mesmo bloco, você pode usar o camando elseif. Veja o exemplo modificado a seguir:</p>
<pre class="brush: php">
if($logado == 1){
   echo &quot;Olá usuário logado.&quot;;
}elseif($logado==2){
   echo &quot;Olá Administrador.&quot;;
}else{
   echo &quot;Olá visitante.&quot;;
}
</pre>
<p>Percebe a diferença? Antes do PHP escapar para o ELSE, ele faz mais uma verificação para ver se a váriavel $logado possuí o valor 2. Caso seja verdadeiro, ele imprime a mensagem senão, cai no else normalmente.</p>
<p>O PHP nos fornece uma outra estrutra chamada &#8220;switch&#8221;. Ela nos permite fazer &#8220;IFs aninhados&#8221; de forma muito mais elegante. A diferença é que a expressão para  todas as opções deve ser a mesma (enquanto no &#8220;if aninhado&#8221; você pode mudar a expressão). Outros dois detalhes importante são que: ao fim de cada bloco de opções, você deve adicionar a palavra reservada &#8220;break&#8221; para que o interpretador não continue executando os outros códigos e que o &#8220;else&#8221; não existe no switch. O comando que realiza a mesma função dele chama-se &#8220;default&#8221;. veja o mesmo exemplo do &#8220;if aninhado&#8221; reescrito com switch:</p>
<pre class="brush: php">
switch($logado){
   case 1: echo &quot;Olá usuário logado.&quot;;
              break;
   case 2: echo &quot;Olá Administrador.&quot;;
              break;
   default: echo &quot;Olá visitante.&quot;;
}
</pre>
<p>O Código fica muito mais elegante e limpo. Principalmente quando existem muitos caminhos diferentes para seguir.</p>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2010/03/21/curso-de-php-modulo-basico-estrutura-de-repeticao-parte-6/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Repetição &#8211; Parte 6'>Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Repetição &#8211; Parte 6</a> <small>Dando continuidade ao meu Curso de PHP, vamos falar a...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-iniciando-em-php-parte-3/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Iniciando em PHP &#8211; Parte 3'>Curso de PHP &#8211; Módulo Básico &#8211; Iniciando em PHP &#8211; Parte 3</a> <small>Iniciando em PHP A partir de agora, iremos supor que...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-parte-1/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Parte 1'>Curso de PHP &#8211; Módulo Básico &#8211; Parte 1</a> <small>Nos ultimos tempos, o número de visitantes que estão caindo...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2010/01/23/curso-de-php-modulo-basico-estrutura-de-controle-parte-5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dica &#8211; PHP 5.3, Apache 2, Postgres e Zend Framework no Windows Seven</title>
		<link>http://www.nivaldoarruda.com.br/2010/01/18/dica-php-5-3-apache-2-postgres-e-zend-framework-no-windows-seven/</link>
		<comments>http://www.nivaldoarruda.com.br/2010/01/18/dica-php-5-3-apache-2-postgres-e-zend-framework-no-windows-seven/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 10:49:25 +0000</pubDate>
		<dc:creator>Nivaldo Arruda</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.nivaldoarruda.com.br/?p=600</guid>
		<description><![CDATA[Estou com a versão de testes do Windows Seven (Home Premium), instalada em minha máquina. O sistema está tão rápido e estavel quanto o XP era. A única diferença é que ele é muito mais bonito e usual. Enquanto não me sobra grana para comprar um Mac, ficarei com esse mesmo ^^ Precisei configurar meu [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-instalacao-do-php-5-windows-parte-2/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Instalação do PHP 5 (Windows) &#8211; Parte 2'>Curso de PHP &#8211; Instalação do PHP 5 (Windows) &#8211; Parte 2</a> <small>Instalação do PHP 5 (Windows) Nesse capítulo vamos ver como...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-parte-1/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Parte 1'>Curso de PHP &#8211; Módulo Básico &#8211; Parte 1</a> <small>Nos ultimos tempos, o número de visitantes que estão caindo...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/08/dica-rapida-postgres-sql-funcoes-uteis/' rel='bookmark' title='Permanent Link: Dica rápida &#8211; Postgres SQL &#8211; Funções úteis'>Dica rápida &#8211; Postgres SQL &#8211; Funções úteis</a> <small>Não, o blog não morreu! Só está meio largado para...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Estou com a versão de testes do <strong>Windows Seven (Home Premium)</strong>, instalada em minha máquina. O sistema está tão rápido e estavel quanto o XP era. A única diferença é que ele é muito mais bonito e usual. Enquanto não me sobra grana para comprar um <strong>Mac</strong>, ficarei com esse mesmo ^^</p>
<p>Precisei configurar meu ambiente de desenvolvimento nessa versão do windows e estou postando aqui só para dizer que tudo funciona corretamente. Na verdade, eu só tive problemas de compatibilidades com programas simples e que não me faziam falta. Muito estranho, haha. Enfim, só para constar:</p>
<p><strong>Windows Seven &#8211; Home Premium</strong></p>
<ol>
<li><strong>Zend Server CE</strong> (php 5.3, Apache 2.2, Zend Framework 1.9)</li>
<li><strong>Postgres </strong>8.x</li>
<li><strong>Netbeans 6.8</strong></li>
</ol>
<p>A única coisa chata é que o <strong>Zend Server</strong>, por padrão, instala no arquivos de programas e essa pasta precisa de permissão para poder alterar os arquivos. Mas a única coisa que precisa fazer é clicar com o direito nela, selecionar a aba de segurança e adicionar controle total para o seu usuário. Ou, se você for mais organizado, altere as configurações do Apache para apontar o <em>DocumentRoot</em> para outro local.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 48px; width: 1px; height: 1px;">Esse pequeno post é só para informar,</div>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-instalacao-do-php-5-windows-parte-2/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Instalação do PHP 5 (Windows) &#8211; Parte 2'>Curso de PHP &#8211; Instalação do PHP 5 (Windows) &#8211; Parte 2</a> <small>Instalação do PHP 5 (Windows) Nesse capítulo vamos ver como...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-parte-1/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Parte 1'>Curso de PHP &#8211; Módulo Básico &#8211; Parte 1</a> <small>Nos ultimos tempos, o número de visitantes que estão caindo...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/08/dica-rapida-postgres-sql-funcoes-uteis/' rel='bookmark' title='Permanent Link: Dica rápida &#8211; Postgres SQL &#8211; Funções úteis'>Dica rápida &#8211; Postgres SQL &#8211; Funções úteis</a> <small>Não, o blog não morreu! Só está meio largado para...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2010/01/18/dica-php-5-3-apache-2-postgres-e-zend-framework-no-windows-seven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Curso de PHP &#8211; Módulo Básico &#8211; Variáveis e Constantes &#8211; Parte 4</title>
		<link>http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-variaveis-e-constantes-parte-4/</link>
		<comments>http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-variaveis-e-constantes-parte-4/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 01:35:29 +0000</pubDate>
		<dc:creator>Nivaldo Arruda</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Treinamento]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[curso]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.nivaldoarruda.com.br/?p=533</guid>
		<description><![CDATA[Variáveis Variáveis são endereços de memória que contém valores que podem ser acessador pelo seu sistema. Você pode guardar os mais diversos tipos de dados em uma variável, desde texto puro até valores booleanos(verdadeiro ou falso) passando por números inteiros e decimais. No PHP as variáveis podem ser criadas dinâmicamentes, sem precisar ser declaradas anteriormente [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-iniciando-em-php-parte-3/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Iniciando em PHP &#8211; Parte 3'>Curso de PHP &#8211; Módulo Básico &#8211; Iniciando em PHP &#8211; Parte 3</a> <small>Iniciando em PHP A partir de agora, iremos supor que...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-parte-1/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Parte 1'>Curso de PHP &#8211; Módulo Básico &#8211; Parte 1</a> <small>Nos ultimos tempos, o número de visitantes que estão caindo...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2010/01/23/curso-de-php-modulo-basico-estrutura-de-controle-parte-5/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Controle &#8211; Parte 5'>Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Controle &#8211; Parte 5</a> <small>Curso de PHP &#8211; Estrutura de controles Durante o desenvolvimento...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p><center><script type="text/javascript"><!--
google_ad_client = "pub-6037690795851697";
/* Banner gráfico, 468x60, criado 19/02/09 */
google_ad_slot = "2783505197";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center></p>
<h2>Variáveis</h2>
<p>Variáveis são endereços de memória que contém valores que podem ser acessador pelo seu sistema. Você pode guardar os mais diversos tipos de dados em uma variável, desde texto puro até valores booleanos(verdadeiro ou falso) passando por números inteiros e decimais.</p>
<p>No PHP as variáveis podem ser criadas dinâmicamentes, sem precisar ser declaradas anteriormente (Apesar de ser uma boa forma de deixar seu código legível), outro ponto forte é o fato de PHP possuir uma tipagem fraca de variáveis, não interferindo no tipo de dados que você seta nela e podendo alterar o formato a qualquer momento sem usar nenhum tipo de conversão. As  variáveis começam sempre com o caractere &#8220;$&#8221; (cifrão) seguido pelo nome dela e devem seguir algumas regras para ser uma variável válida.</p>
<ul>
<li>Um nome de variável válido se inicia com uma letra ou sublinhado, seguido de qualquer número de letras, algarismos ou sublinhados</li>
<li>Não podem começar com números</li>
<li>Não podem conter caracteres especiais (#, %, /, \, (, ), &#8230;, etc)</li>
<li>As variáveis são case-sensitive, isto é, o interpretador do PHP irá fazer distinção entre caracteres maiusculos e minusculos.</li>
</ul>
<p>Obs: $this é uma variável especial que não pode ser atribuída.</p>
<p>ex.:</p>
<pre class="brush: php">
&lt;?php
$exemplo_string  = &quot;Isso é um texto&quot;;
$exemplo_inteiro = 1;
$exemplo_float   = 1.10;
$exemplo_boleano = false;
?&gt;
</pre>
<p>O PHP suporta criação de variáveis por referência, isto é, permite que uma variável seja um &#8220;apelido&#8221; para outra ou um &#8220;ponteiro&#8221;. Nesse caso, <span style="text-decoration: underline;">quando qualquer uma das variáveis for alterada a outra será modificado automaticamente</span> .</p>
<p>Veja um exemplo:</p>
<pre class="brush: php">
&lt;?php
	$original = &#039;Sou a verdadeira&#039;;
	$referencia = &amp;amp;amp;$original;

	echo $original.&#039; - &#039;.$referencia;
?&gt;
</pre>
<p>Esse pequeno exemplo irá imprimir:</p>
<p>-&gt; Sou a verdadeira &#8211; Sou a verdadeira</p>
<h2>OPERAÇÕES COM VARIÁVEIS</h2>
<p><strong>&gt; = </strong>Maior que</p>
<p><strong>&gt;= =</strong> Maior ou igual à</p>
<p><strong>&lt; =</strong> Menor que</p>
<p><strong>&lt;= =</strong> Menor ou igual à</p>
<p><strong>== </strong>= Igual à</p>
<p><strong>=== </strong>= Realmente igual à (Compara os valores e os tipos dos dados)</p>
<p><strong>$a++</strong> = Testa $a e depois incrementa em 1</p>
<p><strong>$a&#8211;</strong> = Testa $a e depois decrementa em 1</p>
<p><strong>++$a</strong> = Incrementa e depois testa $a</p>
<p><strong>&#8211;$a</strong> = Decrementa e depois testa $a</p>
<p><strong>Todos os operadores:</strong></p>
<p>Para ter acesso a lista atualizada de operadores, acesse:</p>
<p>http://br.php.net/manual/pt_BR/language.operators.php</p>
<h2>CONSTANTES</h2>
<p>Constantes são um identificador para um valor único e que, como o seu nome sugere, não pode ser alterado em tempo de execução. Por convenção, o nomes de constantes são sempre em maiúsculas e seguem o mesmo padrão de nomes das variáveis.</p>
<ul>
<li>Um nome de constante válido se inicia com uma letra ou sublinhado, seguido de qualquer número de letras, algarismos ou sublinhados</li>
<li>Não podem conter o caractere $(cifrão)</li>
<li>Não podem começar com números</li>
<li>Não podem conter caracteres especiais (#, %, /, \, (, ), &#8230;, etc)</li>
<li>Por convenção use sempre caracteres maiusculos para as constantes.</li>
<li>Constantes podem ser definidas e acessadas de qualquer lugar sem que a regras de escopo de variáveis seja aplicadas;</li>
<li>Depois de criadas, as constantes não podem ser eliminadas ou terem seus valores alterados</li>
<li>Somente dados escalares (boolean, integer, float e string) pode ser colocados em constantes.</li>
</ul>
<p>Para criar uma constante utilize o comando &#8220;define&#8221;, cujo primeiro parametro é o nome da constante e o segundo é o seu valor, ex.:</p>
<pre class="brush: php">
&lt;?php
	define(&quot;PRIMEIRA_CONSTANTE&quot;, &quot;Sou uma constante.&quot;);
	echo PRIMEIRA_CONSTANTE;
?&gt;
</pre>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-iniciando-em-php-parte-3/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Iniciando em PHP &#8211; Parte 3'>Curso de PHP &#8211; Módulo Básico &#8211; Iniciando em PHP &#8211; Parte 3</a> <small>Iniciando em PHP A partir de agora, iremos supor que...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-parte-1/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Parte 1'>Curso de PHP &#8211; Módulo Básico &#8211; Parte 1</a> <small>Nos ultimos tempos, o número de visitantes que estão caindo...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2010/01/23/curso-de-php-modulo-basico-estrutura-de-controle-parte-5/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Controle &#8211; Parte 5'>Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Controle &#8211; Parte 5</a> <small>Curso de PHP &#8211; Estrutura de controles Durante o desenvolvimento...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-variaveis-e-constantes-parte-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Curso de PHP &#8211; Módulo Básico &#8211; Iniciando em PHP &#8211; Parte 3</title>
		<link>http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-iniciando-em-php-parte-3/</link>
		<comments>http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-iniciando-em-php-parte-3/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 01:23:46 +0000</pubDate>
		<dc:creator>Nivaldo Arruda</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Treinamento]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[curso]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.nivaldoarruda.com.br/?p=527</guid>
		<description><![CDATA[Iniciando em PHP A partir de agora, iremos supor que você já possui o PHP e o apache corretamente instalados e configurados em sua máquina. Por padrão iremos utilizar nomes de arquivos com extensão .php e recomendamos que você crie uma pasta para cada parte desse curso, assim se manterá organizado e terá seus exemplos [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2010/01/23/curso-de-php-modulo-basico-estrutura-de-controle-parte-5/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Controle &#8211; Parte 5'>Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Controle &#8211; Parte 5</a> <small>Curso de PHP &#8211; Estrutura de controles Durante o desenvolvimento...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2010/03/21/curso-de-php-modulo-basico-estrutura-de-repeticao-parte-6/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Repetição &#8211; Parte 6'>Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Repetição &#8211; Parte 6</a> <small>Dando continuidade ao meu Curso de PHP, vamos falar a...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-parte-1/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Parte 1'>Curso de PHP &#8211; Módulo Básico &#8211; Parte 1</a> <small>Nos ultimos tempos, o número de visitantes que estão caindo...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><h2>Iniciando em PHP</h2>
<p>A partir de agora, iremos supor que você já possui o PHP e o apache corretamente instalados e configurados em sua máquina. Por padrão iremos utilizar nomes de arquivos com extensão .php e recomendamos que você crie uma pasta para cada parte desse curso, assim se manterá organizado e terá seus exemplos armazenados de forma cronológica. Caso você precise de alguma dica em HTML/CSS recomendo o blog do <a title="Rafael Fagundes" href="http://www.rafaelfagundes.com/blog" target="_blank">Rafael Fagundes</a> em especial o início do <a title="Rafael Fagundes - Tutorial HTML e CSS - Parte 1" href="http://www.rafaelfagundes.com/blog/?p=12" target="_blank">tutorial </a>dele.</p>
<p>Os arquivos de script PHP são todos do tipo texto puro, por isso, você pode programar até no Bloco de Notas se preferir, mas para utilizar toda a agilidade de desenvolvimento que o PHP proporciona, é aconselhavel utilizar algumas dessas opções de IDE:</p>
<ul>
<li><strong>PHPEclipse</strong> -<a title="http://www.phpeclipse.de/" href="http://www.phpeclipse.de/" target="_blank"> http://www.phpeclipse.de/</a></li>
<li><strong>PDT</strong> &#8211; <a title="http://www.eclipse.org/pdt/" href="http://www.eclipse.org/pdt/" target="_blank">http://www.eclipse.org/pdt/</a></li>
<li><strong>Zend Studio</strong> (<em>trial</em>) &#8211; <a title="http://www.zend.com/en/downloads/" href="http://www.zend.com/en/downloads/" target="_blank">http://www.zend.com/en/downloads/</a></li>
<li><strong>NetBeans -</strong> <a title="http://www.netbeans.org/features/php/" href="http://www.netbeans.org/features/php/" target="_blank">http://www.netbeans.org/features/php/</a></li>
</ul>
<p>Com sua IDE preferida corretamente instalada, você já pode dar inicio a sua aprendizagem real do PHP.</p>
<h2>Primeiros Passos</h2>
<p>Qualquer aplicação que você desenvolver, só irá ser interpretada pelo php se você utilizar a extensão do arquivo examente igual as que você configurou em seu apache. Dentro do seu arquivo é obrigatório que você adicione seus códigos dentro das tags php. São elas:</p>
<p>Para inciciar o bloco de comandos</p>
<pre class="brush: php">
&lt;?php
</pre>
<p>Para finalizar o bloco de comandos:</p>
<pre class="brush: php">
?&gt;
</pre>
<p>Ex.: Crie um arquivo chamado <em>primeiro_passo_1.php</em> dentro do diretório que você publica suas páginas do apache (htdocs geralmente) e insira as seguintes linhas de código.</p>
<pre class="brush: php">
&lt;?php
echo &quot;Meu primeiro script PHP&quot;;
?&gt;
</pre>
<p>Agora vamos analizar esse pequeno código.</p>
<p><strong>Linha 1</strong>: Ela irá dar inicio ao bloco de código, tudo que estiver abaixo dela será interpretado pelo PHP.</p>
<p><strong>Linha 2</strong>: &#8220;echo&#8221; é um método do PHP que serve para imprimir uma string na saída padrão do script. Já se acostume com ele, pois você dependerá muito dele em seu aprendizado</p>
<p><strong>Linha 2</strong>: Perceba que ao final da linha dois existe um &#8220;;&#8221; (ponto-e-vírgula). Ele é usado para separar comandos em PHP. Ao término de cada instrução você deve obrigatóriamente terminar com o &#8216;;&#8217; senão o interpretador irá exibir um erro de Parser. (você aprenderá mais sobre os erros nos próximos módulos)</p>
<p><strong>Linha 3</strong>: É essa tag a responsável pelo fim do bloco de códigos PHP. Apartir daqui o PHP não executará mais nada.</p>
<p>Chame esse script pelo seu navegador, utilizando a url que você viu na lição passada e veja o resultado.</p>
<p>Mais um exemplo, mas agora abrindo dois blocos de script no mesmo arquivo:</p>
<pre class="brush: php">

&lt;strong&gt;O meu nome é?&lt;/strong&gt;

&lt;?php
echo &quot;Nivaldo&quot;;
?&gt;

&lt;strong&gt;Qual módulo estou estudando?&lt;/strong&gt;

&lt;?php
echo &quot;Basico - INICIANDO EM PHP&quot;;
?&gt;
</pre>
<p>Com esse exemplo fica claro que o código que será interpretado pelo PHP é apenas o que consta dentro das tags &#8220;&lt;?php&#8221; e &#8220;?&gt;&#8221;. Você pode utilizar quantos blocos de código quiser. Nos próximos módulos serão apresentados mais comandos de saída e de string, mas, caso queira brincar um pouco mais com esse script, recomendo que vá alterando o texto passado para o echo e experimente informar algumas tags html junto a ele para testar como o script se comportará no navegador.</p>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2010/01/23/curso-de-php-modulo-basico-estrutura-de-controle-parte-5/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Controle &#8211; Parte 5'>Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Controle &#8211; Parte 5</a> <small>Curso de PHP &#8211; Estrutura de controles Durante o desenvolvimento...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2010/03/21/curso-de-php-modulo-basico-estrutura-de-repeticao-parte-6/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Repetição &#8211; Parte 6'>Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Repetição &#8211; Parte 6</a> <small>Dando continuidade ao meu Curso de PHP, vamos falar a...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-parte-1/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Parte 1'>Curso de PHP &#8211; Módulo Básico &#8211; Parte 1</a> <small>Nos ultimos tempos, o número de visitantes que estão caindo...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-iniciando-em-php-parte-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Curso de PHP &#8211; Instalação do PHP 5 (Windows) &#8211; Parte 2</title>
		<link>http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-instalacao-do-php-5-windows-parte-2/</link>
		<comments>http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-instalacao-do-php-5-windows-parte-2/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 01:18:40 +0000</pubDate>
		<dc:creator>Nivaldo Arruda</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Treinamento]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[apostila]]></category>
		<category><![CDATA[curso]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.nivaldoarruda.com.br/?p=523</guid>
		<description><![CDATA[Instalação do PHP 5 (Windows) Nesse capítulo vamos ver como instalar o PHP 5 no windows, levando em consideração, que você já possui o apache 2.2.* instalado (http://httpd.apache.org/) Obtendo o PHP O primeiro passo da instalação é obter a sua última versão direto no site oficial do PHP (http://www.php.net/downloads.php). No momento em que esse manual [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-iniciando-em-php-parte-3/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Iniciando em PHP &#8211; Parte 3'>Curso de PHP &#8211; Módulo Básico &#8211; Iniciando em PHP &#8211; Parte 3</a> <small>Iniciando em PHP A partir de agora, iremos supor que...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-parte-1/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Parte 1'>Curso de PHP &#8211; Módulo Básico &#8211; Parte 1</a> <small>Nos ultimos tempos, o número de visitantes que estão caindo...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-variaveis-e-constantes-parte-4/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Variáveis e Constantes &#8211; Parte 4'>Curso de PHP &#8211; Módulo Básico &#8211; Variáveis e Constantes &#8211; Parte 4</a> <small>Variáveis Variáveis são endereços de memória que contém valores que...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p><center><script type="text/javascript"><!--
google_ad_client = "pub-6037690795851697";
/* Banner gráfico, 468x60, criado 19/02/09 */
google_ad_slot = "2783505197";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center></p>
<h1>Instalação do PHP 5 (Windows)</h1>
<p>Nesse capítulo vamos ver como instalar o PHP 5 no windows, levando em consideração, que você já possui o apache 2.2.* instalado (http://httpd.apache.org/)</p>
<h2>Obtendo o PHP</h2>
<p>O primeiro passo da instalação é obter a sua última versão direto no site oficial do PHP (http://www.php.net/downloads.php). No momento em que esse manual foi escrito a ultima versão estável era a 5.3.1. Ná página de downloads, procure pelo link &#8220;PHP 5.3.1 zip package&#8221; e baixe o arquivo.</p>
<h2>Instalando</h2>
<p>Para essa versão da instalação o nome do arquivo é: php-5.3.1-Win32.zip, descompacte-o na pasta de sua preferência, sempre lembrando que essa pasta será aonde o PHP será instalado. É recomendado criar uma pasta apenas para o PHP, ex.: C:\php\ (esse será o caminha utilizado no restante do documento, caso você prefira fazer a instalação em outro local, fique atento para manter sempre o mesmo caminho nos outros passos desse capítulo.</p>
<p>Entre na pasta que você instalou o PHP e renomeie o arquivo c:\php\php.ini-dist para c:\php\php.ini</p>
<h2>Configurando o php.ini</h2>
<p>Abra o php.ini em algum editor de texto de sua preferência e procure pela entrada: doc_root. Então, você deve alterá-la para o local aonde o DocumentRoot do Apache está indicado. No caso desse curso fica assim:</p>
<p>doc_root = &#8220;d:\sites&#8221;</p>
<p>Desça um pouco mais no arquivo e procure a entrada: extension_dir. Então, você deve trocar o seu valor pelo caminho das extenções, no diretório que você instalou o PHP. No exemplo desse curso ficaria:</p>
<p>extension_dir = &#8220;c:\php\ext&#8221;</p>
<p>Opcionalmente, você pode alterar a entrada: error_reporting, para:</p>
<p>error_reporting = E_ALL | E_NOTICE | E_STRICT</p>
<p>Com essa modificação o PHP irá mostrar na tela uma mensagem com qualquer erro, notice ou problemas de codifcação que existir. Recomendo habilitar essa opção apenas no seu servidor de teste/desenvolvimento.</p>
<h2>Configurando o Apache</h2>
<p>Usando o editor de sua preferência, abra o arquivo “c:\Apache2\conf\httpd.conf” (levando em conta que o Apache está instalado nesse diretório) e adicione no final do arquivo as seguintes linhas:</p>
<p>LoadModule php5_module &#8220;c:/php/php5apache2_2.dll&#8221;</p>
<p>AddType application/x-httpd-php .php</p>
<p>PHPIniDir &#8220;c:/php&#8221;</p>
<p>Esteja sempre atento em substituir os caminhos do PHP para o local aonde você realizou a sua instalação.</p>
<p>Para que o apache procure primeiro pelo index.php em um diretório, adicione as seguintes linhas (caso esse bloco de instruções já exista, você só precisa aterar ele) .</p>
<p>&lt;IfModule dir_module&gt;</p>
<p>DirectoryIndex index.php index.html default.html</p>
<p>&lt;/IfModule&gt;</p>
<h2>Finalizando</h2>
<p>Com todos os arquivos devidamente alterados, é hora de testar sua configuração.  Para isso, reinicie o seu servidor Apache e verifique se ocorreu algum erro. Para testar seu PHP crie um arquivo simples na pasta “DocumentRoot” que você configurou no Apache (&#8220;d:\sites&#8221; em nosso exemplo) e adicione as seguintes linhas:</p>
<p>info.php</p>
<p>&lt;?php</p>
<p>phpinfo();</p>
<p>?&gt;</p>
<p>Chame esse arquivo pelo seu navegador preferido, utilizando a seguinte URL:</p>
<p><a href="http://localhost/info.php">http://localhost/info.php</a></p>
<p>O navegador irá exibir todo o conjuto de informações a repeito do PHP que está instalado em seu servidor.</p>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-iniciando-em-php-parte-3/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Iniciando em PHP &#8211; Parte 3'>Curso de PHP &#8211; Módulo Básico &#8211; Iniciando em PHP &#8211; Parte 3</a> <small>Iniciando em PHP A partir de agora, iremos supor que...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-parte-1/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Parte 1'>Curso de PHP &#8211; Módulo Básico &#8211; Parte 1</a> <small>Nos ultimos tempos, o número de visitantes que estão caindo...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-variaveis-e-constantes-parte-4/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Variáveis e Constantes &#8211; Parte 4'>Curso de PHP &#8211; Módulo Básico &#8211; Variáveis e Constantes &#8211; Parte 4</a> <small>Variáveis Variáveis são endereços de memória que contém valores que...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-instalacao-do-php-5-windows-parte-2/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Curso de PHP &#8211; Módulo Básico &#8211; Parte 1</title>
		<link>http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-parte-1/</link>
		<comments>http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-parte-1/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 01:12:57 +0000</pubDate>
		<dc:creator>Nivaldo Arruda</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Treinamento]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[curso]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.nivaldoarruda.com.br/?p=521</guid>
		<description><![CDATA[Nos ultimos tempos, o número de visitantes que estão caindo no meu site em busca de apostilas, tutorial, treinamento ou cursos relacionados a PHP tem aumentado drasticamente.  Como eu não gostaria de perder esses visitantes, e pensando mais alto, gostaria de abrir os olhos deles para o Zend Framework, resolvi começar a postar artigos a [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-iniciando-em-php-parte-3/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Iniciando em PHP &#8211; Parte 3'>Curso de PHP &#8211; Módulo Básico &#8211; Iniciando em PHP &#8211; Parte 3</a> <small>Iniciando em PHP A partir de agora, iremos supor que...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2010/01/23/curso-de-php-modulo-basico-estrutura-de-controle-parte-5/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Controle &#8211; Parte 5'>Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Controle &#8211; Parte 5</a> <small>Curso de PHP &#8211; Estrutura de controles Durante o desenvolvimento...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-variaveis-e-constantes-parte-4/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Variáveis e Constantes &#8211; Parte 4'>Curso de PHP &#8211; Módulo Básico &#8211; Variáveis e Constantes &#8211; Parte 4</a> <small>Variáveis Variáveis são endereços de memória que contém valores que...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p><center><script type="text/javascript"><!--
google_ad_client = "pub-6037690795851697";
/* Banner gráfico, 468x60, criado 19/02/09 */
google_ad_slot = "2783505197";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center><br />
Nos ultimos tempos, o número de visitantes que estão caindo no meu site em busca de apostilas, tutorial, treinamento ou cursos relacionados a PHP tem aumentado drasticamente.  Como eu não gostaria de perder esses visitantes, e pensando mais alto, gostaria de abrir os olhos deles para o Zend Framework, resolvi começar a postar artigos a respeito do PHP.</p>
<p>Essa primeira parte, vai servir para iniciar você no PHP. Aguardo suas sugestões, criticas e suas recomendações (caso conheça alguém que esteja iniciando no PHP, sugira esse artigo). Agora, vamos ao que interessa!</p>
<h1>Histórico</h1>
<p>A linguagem surgiu por volta de 1994, como um pacote de programas CGI criados por Rasmus Lerdof, com o nome Personal Home Page Tools, para substituir um conjunto de scripts Perl que ele usava no desenvolvimento de sua página pessoal. Em 1997 foi lançado o novo pacote da linguagem com o nome de PHP/FI, trazendo a ferramenta Forms Interpreter, um interpretador de comandos SQL.</p>
<p>Mais tarde, Zeev Suraski desenvolveu o analisador do PHP 3 que contava com o primeiro recurso de orientação a objetos, que dava poder de alcançar alguns pacotes, tinha herança e dava aos desenvolvedores somente a possibilidade de implementar propriedades e métodos.</p>
<p>Pouco depois, Zeev e Andi Gutmans, escreveram o PHP 4, abandonando por completo o PHP 3, dando mais poder à máquina da linguagem e maior número de recursos de orientação a objetos. O problema sério que apresentou o PHP 4 foi a criação de cópias de objetos, pois a linguagem ainda não trabalhava com apontadores ou handlers, como é a linguagem Java.</p>
<p>O problema fora resolvido na versão atual do PHP, a versão 5, que já trabalha com handlers. Caso se copie um objeto, na verdade copiaremos um apontador, pois, caso haja alguma mudança na versão original do objeto, todas as outras também sofrem a alteração, o que não acontecia na PHP 4.</p>
<h1>O que é o PHP?</h1>
<p>PHP, é um acrônimo que significa &#8220;PHP: Hypertext Preprocessor&#8221;, é uma linguagem de programação “server-side”, interpretada, que foi especialmente desenvolvida para a internet e pode ser embutida dentro do código HTML. A sintaxe da linguagem lembra C e Perl,  é fácil de aprender e tem um mercado muito grande tanto dentro quanto fora do Brasil. O objetivo principal da linguagem é permitir a desenvolvedores escreverem páginas dinâmicas  rapidamente, mas o PHP permite que você faça muito mais do que isso com ele, principalmente depois de lançada a versão 5 , que foi inteiramente reformulada para trabalhar com orientação a objetos.</p>
<p>Ser “server-side”, significa que o PHP é executado no servidor. Mesmo mesclando o php com código HTML, quando algum usuário fizer uma requisição à página, o servidor iá executar todo o código PHP que existir para só depois enviar o resultado para o navegador do usuário. Isso significa que seus códigos ficarão seguros dentro do servido e o visitante não conseguirá visualizar eles. Você pode inclusive configurar seu servidor para processar todos os seus arquivos HTML como PHP, e então não haverá nenhum modo dos usuários descobrirem que se você usa essa linguagem ou não. Outra vantagem nesse tipo de linguagem é que o cliente não precisa fazer procesamento algum, o servidor se encarrega de tudo.</p>
<p>Por ser multiplataforma, ela roda nos mais diversos sistemas operacionais. Windows, Linux, Mac OS, *BSD etc). PHP é uma linguagem livre e de código fonte aberto. Para saber mais sobre ela, acesse o site oficial:</p>
<p><a href="http://www.php.net/">http://www.php.net</a></p>
<h1>Características</h1>
<ul>
<li>Velocidade e robustez</li>
<li>Velocidade de desenvolvimento</li>
<li>Facilidade de aprendizagem</li>
<li>Estruturado e/ou orientado a objeto</li>
<li>Portabilidade &#8211; independência de plataforma &#8211; escreva uma vez, rode em qualquer lugar</li>
<li>Muito bem difundida</li>
<li>Tipagem fraca</li>
<li>Sintaxe similar a Linguagem C/C++ e o PERL</li>
</ul>
<h1>Referências</h1>
<ul>
<li><a href="http://www.php.net/">http://www.php.net</a></li>
<li><a href="http://pt.wikipedia.org/wiki/PHP">http://pt.wikipedia.org/wiki/PHP</a></li>
</ul>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-iniciando-em-php-parte-3/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Iniciando em PHP &#8211; Parte 3'>Curso de PHP &#8211; Módulo Básico &#8211; Iniciando em PHP &#8211; Parte 3</a> <small>Iniciando em PHP A partir de agora, iremos supor que...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2010/01/23/curso-de-php-modulo-basico-estrutura-de-controle-parte-5/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Controle &#8211; Parte 5'>Curso de PHP &#8211; Módulo Básico &#8211; Estrutura de Controle &#8211; Parte 5</a> <small>Curso de PHP &#8211; Estrutura de controles Durante o desenvolvimento...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-variaveis-e-constantes-parte-4/' rel='bookmark' title='Permanent Link: Curso de PHP &#8211; Módulo Básico &#8211; Variáveis e Constantes &#8211; Parte 4'>Curso de PHP &#8211; Módulo Básico &#8211; Variáveis e Constantes &#8211; Parte 4</a> <small>Variáveis Variáveis são endereços de memória que contém valores que...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2009/12/12/curso-de-php-modulo-basico-parte-1/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Dica rápida &#8211; Postgres SQL &#8211; Funções úteis</title>
		<link>http://www.nivaldoarruda.com.br/2009/12/08/dica-rapida-postgres-sql-funcoes-uteis/</link>
		<comments>http://www.nivaldoarruda.com.br/2009/12/08/dica-rapida-postgres-sql-funcoes-uteis/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 15:25:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[curso]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Treinamento]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.nivaldoarruda.com.br/?p=516</guid>
		<description><![CDATA[Não, o blog não morreu! Só está meio largado para as traças devido a correria de fim de ano. Pretendo começar a testar algumas coisas novas, então em breve postarei alguns lançamentos e meus resultados aqui para vocês. Quem quiser sugerir algo, pode fazer no formulário que contato que tem na página &#8220;Sobre&#8221; Bom, vamos [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2010/01/18/dica-php-5-3-apache-2-postgres-e-zend-framework-no-windows-seven/' rel='bookmark' title='Permanent Link: Dica &#8211; PHP 5.3, Apache 2, Postgres e Zend Framework no Windows Seven'>Dica &#8211; PHP 5.3, Apache 2, Postgres e Zend Framework no Windows Seven</a> <small>Estou com a versão de testes do Windows Seven (Home...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/03/22/dica-rapida-decorators/' rel='bookmark' title='Permanent Link: Dica Rápida: Decorators'>Dica Rápida: Decorators</a> <small>Aceitando a sugestão do XAngel irei providenciar um artigo bem...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/06/15/dica-rapida-rotas/' rel='bookmark' title='Permanent Link: Dica Rápida: Rotas'>Dica Rápida: Rotas</a> <small>Você ja deve ter percebido que o padrão de url...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Não, o blog não morreu! Só está meio largado para as traças devido a correria de fim de ano. Pretendo começar a testar algumas coisas novas, então em breve postarei alguns lançamentos e meus resultados aqui para vocês. Quem quiser sugerir algo, pode fazer no formulário que contato que tem na página  &#8220;<a href="http://www.nivaldoarruda.com.br/about/">Sobre</a>&#8221; <img src='http://www.nivaldoarruda.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Bom, vamos as dicas!</p>
<p><strong>Somar 10 dias a partir da data atual:</strong></p>
<pre class="brush: sql">
SELECT current_date + 10
</pre>
<p><strong>md5 no postgres:</strong><br />
Sim! Postgres tem suporte nativo a md5. Transformar uma string em md5</p>
<pre class="brush: sql">
SELECT md5(&#039;lalalala&#039;)
</pre>
<p>Transformar uma coluna em md5</p>
<pre class="brush: sql">
SELECT md5(nome) from pessoas
</pre>
<p><strong>Como é proncuniado o nome: PostgreSQL?</strong><br />
PostgreSQL é pronunciado Post-Gres-Q-L. <a href="http://www.postgresql.org/files/postgresql.mp3">[Escutar]</a></p>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2010/01/18/dica-php-5-3-apache-2-postgres-e-zend-framework-no-windows-seven/' rel='bookmark' title='Permanent Link: Dica &#8211; PHP 5.3, Apache 2, Postgres e Zend Framework no Windows Seven'>Dica &#8211; PHP 5.3, Apache 2, Postgres e Zend Framework no Windows Seven</a> <small>Estou com a versão de testes do Windows Seven (Home...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/03/22/dica-rapida-decorators/' rel='bookmark' title='Permanent Link: Dica Rápida: Decorators'>Dica Rápida: Decorators</a> <small>Aceitando a sugestão do XAngel irei providenciar um artigo bem...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/06/15/dica-rapida-rotas/' rel='bookmark' title='Permanent Link: Dica Rápida: Rotas'>Dica Rápida: Rotas</a> <small>Você ja deve ter percebido que o padrão de url...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2009/12/08/dica-rapida-postgres-sql-funcoes-uteis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
<enclosure url="http://www.postgresql.org/files/postgresql.mp3" length="5747" type="audio/mpeg" />
		</item>
	</channel>
</rss>
