<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Joomla! - Open Source Content Management" -->
<feed xmlns="http://www.w3.org/2005/Atom"  xml:lang="pt-br">
	<title type="text">PHP - RibaFS Portal</title>
	<subtitle type="text">Servidores linux, Programação web (PHP, Joomla, CakePHP, Laravel), Programação Mobile (Phaser, PhoneGap, Monaca, Unity, etc) entre outros.</subtitle>
	<link rel="alternate" type="text/html" href="http://backup"/>
	<id>http://backup/portal/basicos/php.feed</id>
	<updated>2019-09-07T18:50:06-03:00</updated>
	<author>
		<name>RibaFS Portal</name>
	</author>
	<generator uri="https://www.joomla.org">Joomla! - Open Source Content Management</generator>
	<link rel="self" type="application/atom+xml" href="http://backup/portal/basicos/php.feed?type=atom"/>
	<entry>
		<title>Cuidado com floats em Linguagens</title>
		<link rel="alternate" type="text/html" href="http://backup/portal/basicos/php/cuidado-com-floats-em-linguagens.html"/>
		<published>2019-07-19T12:40:04-03:00</published>
		<updated>2019-07-19T12:40:04-03:00</updated>
		<id>http://backup/portal/basicos/php/cuidado-com-floats-em-linguagens.html</id>
		<author>
			<name>Ribamar FS</name>
		</author>
		<summary type="html">&lt;h3&gt;Cuidado com floats em Linguagens de Programação&lt;/h3&gt;
&lt;p&gt;&lt;br /&gt;Muito Cuidado ao trabalhar com Números em Ponto Flutuante em várias linguagens de programação e em dois SGBDs.&lt;br /&gt;Se estiver trabalhando e precise de extrema precisão use float com muita cautela e melhor ainda é não usar float quando for efetuar operações matemáticas que exijam precisão. Neste caso prefira outros formatos ou um SGBD como MySQL ou PostgreSQL.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Veja os exemplos com detalhes abaixo:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;PHP&lt;br /&gt;Java&lt;br /&gt;JavaScript&lt;br /&gt;Ruby&lt;br /&gt;Python&lt;br /&gt;MySQL&lt;br /&gt;PostgreSQL&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Teste em PHP&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;echo (int) ((0.1 + 0.7 ) * 10);&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Agora teste isso:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;echo (int) ((0.2 + 0.7 ) * 10);&lt;br /&gt;&lt;br /&gt;Não conclua muito apressadamente que é deficiência do PHP, veja abaixo com outras linguagens.&lt;br /&gt;Neste momento devemos ter conhecimento de como se comportam os números, especialmente os floats, que são normalizados pelo IEEE.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Teste em Java&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;nano teste.java&lt;br /&gt;&lt;br /&gt;class teste {&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        System.out.println((int) ((0.1 + 0.7 ) * 10)); //Display the string.&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;javac teste.java&lt;br /&gt;java teste&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Agora veja as recomendações do manual do PHP&lt;/strong&gt;&lt;br /&gt;O tamanho de um float depende também da plataforma e é de 64bits no formato IEEE(*). Nunca compare números em ponto flutuante em igualdades, sob pena de cometer erros.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Agora com JavaScript&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script&amp;gt;&lt;br /&gt;alert((0.1 + 0.7)*10);&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;Resultado razoável: 7.999999999999999&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Com MySQL&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;SELECT (0.1 + 0.7)*10&lt;br /&gt;&lt;br /&gt;Resultado correto: 8.0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Teste com PostgreSQL&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;SELECT CAST((0.1 + 0.7)*10 AS INTEGER);&lt;br /&gt;&lt;br /&gt;Resultado correto: 8&lt;br /&gt;&lt;br /&gt;Os SGBDs retornam o valor esperado.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Java e PHP:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;System.out.println(1.95 - 1.03); &lt;br /&gt;&lt;br /&gt;Retorna 0.9199999999999999&lt;br /&gt;&lt;br /&gt;Em PHP &lt;br /&gt;print (1.95 - 1.03);&lt;br /&gt;&lt;br /&gt;Retorna 0.92.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Em Ruby&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Execute em:&lt;br /&gt;https://repl.it/languages/ruby&lt;br /&gt;&lt;br /&gt;(1.8+0.1)==(1.9)&lt;br /&gt;&lt;br /&gt;Retorna false&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Em Phyton.&lt;/strong&gt;&lt;br /&gt;https://repl.it/languages/python3&lt;br /&gt;&lt;br /&gt;print (1.8+0.1)&lt;br /&gt;&lt;br /&gt;Resultado razoável: 1.9000000000000001&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Conclusão&lt;/strong&gt;&lt;br /&gt;Ou seja, fique atento quando precisar realizar operações matemáticas com floats em linguagens de programação.&lt;br /&gt;O MySQL e o PostgreSQL trabalham bem, pelo menos com os rápidos testes que fiz.&lt;/p&gt;</summary>
		<content type="html">&lt;h3&gt;Cuidado com floats em Linguagens de Programação&lt;/h3&gt;
&lt;p&gt;&lt;br /&gt;Muito Cuidado ao trabalhar com Números em Ponto Flutuante em várias linguagens de programação e em dois SGBDs.&lt;br /&gt;Se estiver trabalhando e precise de extrema precisão use float com muita cautela e melhor ainda é não usar float quando for efetuar operações matemáticas que exijam precisão. Neste caso prefira outros formatos ou um SGBD como MySQL ou PostgreSQL.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Veja os exemplos com detalhes abaixo:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;PHP&lt;br /&gt;Java&lt;br /&gt;JavaScript&lt;br /&gt;Ruby&lt;br /&gt;Python&lt;br /&gt;MySQL&lt;br /&gt;PostgreSQL&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Teste em PHP&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;echo (int) ((0.1 + 0.7 ) * 10);&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Agora teste isso:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;echo (int) ((0.2 + 0.7 ) * 10);&lt;br /&gt;&lt;br /&gt;Não conclua muito apressadamente que é deficiência do PHP, veja abaixo com outras linguagens.&lt;br /&gt;Neste momento devemos ter conhecimento de como se comportam os números, especialmente os floats, que são normalizados pelo IEEE.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Teste em Java&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;nano teste.java&lt;br /&gt;&lt;br /&gt;class teste {&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        System.out.println((int) ((0.1 + 0.7 ) * 10)); //Display the string.&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;javac teste.java&lt;br /&gt;java teste&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Agora veja as recomendações do manual do PHP&lt;/strong&gt;&lt;br /&gt;O tamanho de um float depende também da plataforma e é de 64bits no formato IEEE(*). Nunca compare números em ponto flutuante em igualdades, sob pena de cometer erros.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Agora com JavaScript&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script&amp;gt;&lt;br /&gt;alert((0.1 + 0.7)*10);&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;Resultado razoável: 7.999999999999999&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Com MySQL&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;SELECT (0.1 + 0.7)*10&lt;br /&gt;&lt;br /&gt;Resultado correto: 8.0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Teste com PostgreSQL&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;SELECT CAST((0.1 + 0.7)*10 AS INTEGER);&lt;br /&gt;&lt;br /&gt;Resultado correto: 8&lt;br /&gt;&lt;br /&gt;Os SGBDs retornam o valor esperado.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Java e PHP:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;System.out.println(1.95 - 1.03); &lt;br /&gt;&lt;br /&gt;Retorna 0.9199999999999999&lt;br /&gt;&lt;br /&gt;Em PHP &lt;br /&gt;print (1.95 - 1.03);&lt;br /&gt;&lt;br /&gt;Retorna 0.92.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Em Ruby&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Execute em:&lt;br /&gt;https://repl.it/languages/ruby&lt;br /&gt;&lt;br /&gt;(1.8+0.1)==(1.9)&lt;br /&gt;&lt;br /&gt;Retorna false&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Em Phyton.&lt;/strong&gt;&lt;br /&gt;https://repl.it/languages/python3&lt;br /&gt;&lt;br /&gt;print (1.8+0.1)&lt;br /&gt;&lt;br /&gt;Resultado razoável: 1.9000000000000001&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Conclusão&lt;/strong&gt;&lt;br /&gt;Ou seja, fique atento quando precisar realizar operações matemáticas com floats em linguagens de programação.&lt;br /&gt;O MySQL e o PostgreSQL trabalham bem, pelo menos com os rápidos testes que fiz.&lt;/p&gt;</content>
		<category term="PHP" />
	</entry>
	<entry>
		<title>Usando locales com PHP</title>
		<link rel="alternate" type="text/html" href="http://backup/portal/basicos/php/usando-locales-com-php.html"/>
		<published>2017-08-28T14:52:31-03:00</published>
		<updated>2017-08-28T14:52:31-03:00</updated>
		<id>http://backup/portal/basicos/php/usando-locales-com-php.html</id>
		<author>
			<name>Ribamar FS</name>
		</author>
		<summary type="html">&lt;h4&gt;Usando locales com PHP&lt;/h4&gt;

&lt;p&gt;setlocale(LC_ALL, 'pt_BR', 'pt_BR.utf-8', 'pt_BR.utf-8', 'portuguese');&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;$float = 1500.87;&lt;br /&gt;&lt;br /&gt;setlocale(LC_MONETARY, 'pt_BR.UTF-8');&lt;br /&gt;&lt;br /&gt;echo money_format('%n', $float);   // Imprime: R$ 1.500,87&lt;br /&gt;echo money_format('%i', $float);   // Imprime: BRL 1.500,87&lt;br /&gt;print '&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;';&lt;br /&gt;&lt;br /&gt;$time = mktime(0, 0, 0, 9, 26, 2012);&lt;br /&gt;&lt;br /&gt;setlocale(LC_TIME, 'pt_BR.UTF-8');&lt;br /&gt;echo strftime('%A, %d de %B de %Y', $time);&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Referências&lt;/strong&gt;&lt;br /&gt;&lt;a href=&quot;https://rubsphp.blogspot.com.br/2012/09/trabalhando-com-localidade-em-php-usando-setlocale.html?m=0&quot;&gt;https://rubsphp.blogspot.com.br/2012/09/trabalhando-com-localidade-em-php-usando-setlocale.html?m=0&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</summary>
		<content type="html">&lt;h4&gt;Usando locales com PHP&lt;/h4&gt;

&lt;p&gt;setlocale(LC_ALL, 'pt_BR', 'pt_BR.utf-8', 'pt_BR.utf-8', 'portuguese');&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;$float = 1500.87;&lt;br /&gt;&lt;br /&gt;setlocale(LC_MONETARY, 'pt_BR.UTF-8');&lt;br /&gt;&lt;br /&gt;echo money_format('%n', $float);   // Imprime: R$ 1.500,87&lt;br /&gt;echo money_format('%i', $float);   // Imprime: BRL 1.500,87&lt;br /&gt;print '&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;';&lt;br /&gt;&lt;br /&gt;$time = mktime(0, 0, 0, 9, 26, 2012);&lt;br /&gt;&lt;br /&gt;setlocale(LC_TIME, 'pt_BR.UTF-8');&lt;br /&gt;echo strftime('%A, %d de %B de %Y', $time);&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Referências&lt;/strong&gt;&lt;br /&gt;&lt;a href=&quot;https://rubsphp.blogspot.com.br/2012/09/trabalhando-com-localidade-em-php-usando-setlocale.html?m=0&quot;&gt;https://rubsphp.blogspot.com.br/2012/09/trabalhando-com-localidade-em-php-usando-setlocale.html?m=0&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</content>
		<category term="PHP" />
	</entry>
	<entry>
		<title>Introdução ao PHP</title>
		<link rel="alternate" type="text/html" href="http://backup/portal/basicos/php/introducao-ao-php.html"/>
		<published>2017-06-23T11:07:07-03:00</published>
		<updated>2017-06-23T11:07:07-03:00</updated>
		<id>http://backup/portal/basicos/php/introducao-ao-php.html</id>
		<author>
			<name>Ribamar FS</name>
		</author>
		<summary type="html">&lt;h3 style=&quot;text-align: justify;&quot;&gt;Introdução ao PHP&lt;br /&gt;&lt;br /&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Iniciando na Programação com PHP&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Para poder programar com PHP precisamos de um servidor web. Então instalaremos em nosso computador o programa &lt;a href=&quot;http://xampp.sf.net/&quot;&gt;http://xampp.sf.net&lt;/a&gt; que cria um diretório c:\xampp\htdocs, onde devemos criar nossos programas em PHP.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;É importante saber que atualmente o PHP deve ser a linguagem mais popular para programar para a web. Acredito que a facilidade de programar, os recursos oferecidos por ele, a documentação farta em seu site (&lt;a href=&quot;http://php.net/&quot;&gt;http://php.net&lt;/a&gt;) e a grande aceitação da comunidade foram responsáveis pela sua popularidade.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Veremos que com o PHP temos muitos recursos para criar sites e aplicativos.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Existe uma tradição para quando estamos iniciando a programar em qualquer linguagem, que é a de criar um programa bem simples, que apenas mostre uma frase na tela, no caso “Hello World!”. Veja nosso programa que mostra na tela essa mensagem traduzida:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;code&gt; &lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

    print “Olá Mundo!”;

?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Para ver como isso funciona precisamos criar um arquivo no diretório htdocs, com extensão .php e chamar este arquivo pelo navegador. Nosso diretório web é c:\xampp\htdocs&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Vamos criar &lt;strong&gt;ola.php&lt;/strong&gt; neste diretório, contendo:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

    print &quot;Olá Mundo!&quot;;

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;E chamar pelo navegador assim:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://localhost/ola.php&quot;&gt;http://localhost/ola.php&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Então veremos a nossa frase&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Olá Mundo!&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;br /&gt;Programando para Desktop com PHP&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Nada nos impede de criar aplicativos que serão usados apenas de forma offline usando o nosso PHP. Podemos tranquilamente usar para este fim. Para a criação de aplicativos, após dominar o básico do PHP, eu recomendo que use o Framework CakePHP ou outro da sua escolha.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;PHP com HTML&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Vale lembrar que o PHP sempre fica do lado do servidor. Ele processa informações solicitadas pelo visitante e as devolve. Devolve tudo no formato HTML, juntamente com CSS e JavaScript, que ficam do lado do cliente.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Um código em PHP precisa iniciar com a TAG &amp;lt;?php e terminar com ?&amp;gt;. Qualquer arquivo que contenha código PHP precisa ter a extensão .php. Sendo assim, o interpretador do PHP não olhará para outros tipos de arquivos. E quando verificar arquivos .php somente processará os trechos entre &amp;lt;?php e ?&amp;gt;, o que estiver fora destas TAGs ele não olha.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;O navegador interpreta todo código em HTML antes de mostrar na tela.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Separador de Instruções&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Observe que ao final da linha:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;print &quot;Como vai?&quot;;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Cada instrução do PHP termina com ponto e vírgula.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Instrução – é um comando único que damos ao PHP.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplo: print “Olá”;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;O PHP permite escrever mais de uma instrução por linha, mas devemos evitar, por conta de que fica obscuro o código.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Comentários&lt;/strong&gt;&lt;br /&gt; Em PHP existem três formas de se escrever comentários:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;// - este é comentário oriundo do C++ e para apenas uma linha&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;/*&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Este é o comentário oriundo do C&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;e para&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;múltiplas linhas&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;*/&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;# - Este é o comentário oriundo do shell, para uma única linha e que deve ser evitado, pois está em processo de obsolescência.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Estruturas de Controle&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Vejamos um pequeno trecho de código mais útil e interessante. Suponha que seu colégio tenha suas 4 notas dos 4 bimestres e precise fazer o cálculo para saber se você passou. Ele tem uma fórmula que é somar as 4 notas e dividir tudo por 4 para tirar a média. Veja:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Vamos criar um arquivo notas.php com o conteúdo abaixo ou testar diretamente no php-console, sem as tags inicial e final.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;IF - ELSE&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$aluno = '&amp;lt;b&amp;gt;Elias EF&amp;lt;/b&amp;gt;';

$nota1 = 10;
$nota2 = 9;
$nota3 = 7;
$nota4 = 5;

$resultado = ($nota1 + $nota2 + $nota3 + $nota4) / 4;

if( $resultado &amp;gt;= 7 ){
    print &quot;O aluno $aluno foi aprovado, com nota $resultado&quot;;
}else{
    print 'O aluno não passou!';
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Variáveis&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Como o nome sugere seu valor varia. Vejamos.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Uma variável tem:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;nome - $aluno, que é o nome precedido de $.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;valor - 'Elias EF'&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;tipo – string (acontece que o PHP não declara tipos de variáveis)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Tipos de Dados&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;O tipo de dados de uma variável será reconhecido quando o código for executado:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;string, inteiro, float/double, boleano, array, objeto e resource.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Nome&lt;/strong&gt;&lt;strong&gt;s de&lt;/strong&gt;&lt;strong&gt; Variáveis&lt;/strong&gt;&lt;/p&gt;
&lt;ul style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;
&lt;p&gt;O nome das variáveis precisa começar com uma letra ou pelo símbolo de sublinhado&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;O nome de variáveis pode conter somente caracteres alfa-numéricos e sublinhado: a-z, A-Z, 0-9 e _ .&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Não pode conter espaços. Quando várias palavras podemos usar o sublinhado para separá-las: $minha_variavel.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;As variáveis podem ter seu valor alterado durante a execução do script, daí seu nome.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Atribuição&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Se eu quiser guardar a primeira nota na variável $nota1, então preciso atribuir 10 para $nota1, assim:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;$nota1 = 10;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Veja que usamos o sinal de igual para atribuir e terminamos com ponto e vírgula.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Posso atribuir um valor diretamente para uma variável, mas veja que também posso atribuir uma fórmula bem grande para a variável, assim:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;$resultado = ($nota1 + $nota2 + $nota3 + $nota4) / 4;&lt;br /&gt; Parecido com uma calculadora o PHP fará os cálculos e guardará o valor na variável $resultado.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Na próxima linha ele vai testar o valor do $resultado. (if( $resultado &amp;gt;= 7 ){)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Se for maior ou igual a 7 ele mostrará a primeira mensagem.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Caso contrário então mostrará a segunda mensagem. (}else{)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Vejamos mais um exemplo prático e interessante de uso do PHP&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;IF – ELSE IF – ELSE&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;if (expressao){&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;executado de true e encessa o teste.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;}else if (expressao2){&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;executado se true e encessa o teste.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;}else if (expressao3){&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;executado se true e encessa o teste.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;}else if (expressaoN){&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;executado se true e encessa o teste.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;}else{&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;executado se false&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;}&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Lembrando que somente entra no próximo teste, se o anterior for falso.&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$hora = 14;

if ($hora &amp;lt;= 12) {

    print “Está de manhã”;
 }else if ($hora &amp;gt; 12 &amp;amp;&amp;amp; $hora &amp;lt; 18 ){

    print “Está de tarde”;
 }el se{

    print “Está de noite”;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;if - else&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;O &lt;strong&gt;if&lt;/strong&gt; testa uma expressão&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Caso a expressão seja verdadeira, todo o código após o &lt;strong&gt;if&lt;/strong&gt; será executado.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Caso não seja verdadeira o código após o &lt;strong&gt;else&lt;/strong&gt; será executado.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;i&lt;/strong&gt;&lt;strong&gt;f – eles if – else&lt;/strong&gt;&lt;br /&gt; O &lt;strong&gt;if&lt;/strong&gt; testa uma expressão&lt;br /&gt; Caso a expressão seja verdadeira, todo o código após o &lt;strong&gt;if&lt;/strong&gt; será executado.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Caso a expressão seja falsa então o else if testará uma nova expressão&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Caso a nova expressão seja verdadeira o código após o else if será executado&lt;br /&gt; Caso a nova expressão seja falsa, o código após o else ou o novo else if será&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;executado&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Criando Strings&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Strings pequenas, com apenas uma linha podem ser mostradas com print ou echo, mas textos com várias linhas podem ser armazenados com o recurso chamado Heredoc:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;em&gt;&lt;strong&gt;Armazenando o texto numa variável&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$str = &amp;lt;&amp;lt;&amp;lt;EOD
Exemplo de uma string
distribuída em várias linhas
utilizando a sintaxe heredoc.
EOD;
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;em&gt;&lt;strong&gt;Ou simplesmente mostrando&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
echo &amp;lt;&amp;lt;&amp;lt;show

&amp;lt;a href=&quot;http://backup/portal/index.php&quot;&amp;gt;Início&amp;lt;/a&amp;gt;
&amp;lt;h3&amp;gt;Edite Seus Dados&amp;lt;/h3&amp;gt;
&amp;lt;form action=&quot;update.php&quot; method=&quot;post&quot;&amp;gt;
&amp;lt;table width=&quot;500&quot; border=&quot;1&quot;&amp;gt;
    &amp;lt;tr&amp;gt;
        &amp;lt;th scope=&quot;row&quot;&amp;gt;Nome&amp;lt;/th&amp;gt;
            &amp;lt;td&amp;gt;&amp;lt;input type=&quot;text&quot; name=&quot;nome&quot; value=&quot;$nome&quot;&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;
    &amp;lt;tr&amp;gt;
        &amp;lt;th scope=&quot;row&quot;&amp;gt;Nascimento&amp;lt;/th&amp;gt;
            &amp;lt;td&amp;gt;&amp;lt;input type=&quot;text&quot; name=&quot;data_nasc&quot; value=$data_nasc&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;
    &amp;lt;tr&amp;gt;
        &amp;lt;th scope=&quot;row&quot;&amp;gt;E-mail&amp;lt;/th&amp;gt;
            &amp;lt;td&amp;gt;&amp;lt;input type=&quot;text&quot; name=&quot;email&quot; value=&quot;$email&quot;&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;
&amp;lt;/table&amp;gt;
&amp;lt;/form&amp;gt;

show;
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Mais uma estrutura interessante do PHP - &lt;/strong&gt;&lt;strong&gt;Switch&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;switch – Este testa uma variável contra alguns valores. Parece com um bloco de if else if. Quando encontra o valor correto executa o código seguinte e sai da iteração.&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$opcao = 3;

switch ($opcao) {
    case 1:
        print 1;
        break;
    case 2:
        print 2;
        break;
    case 3:
        print 3;
        break;
    case 4:
        print 4;
        break;
    case 5:
        print 5;
        break;
    default:
        print 'Nenhuma das anteriores';
        break;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Obs.: Caso removamos um dos comandos break o código continua no próximo case.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Laços: for, while, forwach&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Estruturas que resolvem vários problemas com pouco esforço.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;for&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

for ($x = 1; $x &amp;lt;= 10; $x++) {

    print $x;
}

for ($x = 1; $x &amp;lt;= 10; $x++) {

    print $x . '&amp;lt;br&amp;gt;';
}

for ($x = 0; $x &amp;lt; 10; $x++) {

    print $x;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Existem variações de uso do for. No caso abaixo, como não temos teste do valor, o incremento continua indefinidamente:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;for($x=0; ;$x++){&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;print $x;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;}&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Nestes casos precisamos inserir um teste no corpo do for, assim:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

for ($x = 0;; $x++) {

    if ($x &amp;gt; 10) {

        break;
    }

    print $x;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Continue&lt;/strong&gt;&lt;br /&gt; Este comando sai do laço e volta na próxima iteração, ou um certo número de comandos para sair do laço. Veja&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

for ($i = 0; $i &amp;lt; 10; ++$i) {
    if ($i &amp;lt; 5) {
        continue;
    }
    print &quot;$i&amp;lt;br&amp;gt;&quot;;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Break&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Interrompe o laço, entregando o processamento para a linha seguinte ao laço.&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
for ($x = 0; $x &amp;lt; 5; ++$x) {
    if ($x == 2) {
        break;
    }
    print &quot;$x&amp;lt;br&amp;gt;&quot;;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Experimente.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;foreach&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Laço através de um array.&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$arr = array(1, 2, 3, 4);
foreach ($arr as $value) {
    $value = $value * 2;
    print $value;
}
// $arr is now array(2, 4, 6, 8)
unset($value); // Limpar a variável, que armazena o valor
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Colher Chave e Valor&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$arr = array(1, 2, 3, 4);
foreach ($arr as $chave =&amp;gt; $value) {
    $value = $value * 2;
    print 'Chave: ' . $chave . ' - Valor: ' . $value . '&amp;lt;br&amp;gt;';
}
unset($valor); // Limpar a variável, que armazena o valor
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Existe muito mais recursos, mas me parece que já dá para perceber isso com estes exemplos mostrados.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Qualquer dúvida sobre qualquer comando do PHP vá até o site oficial em &lt;a href=&quot;http://php.net/&quot;&gt;http://php.net&lt;/a&gt; e faça uma busca pelo comando, que verá a sintaxe e muitos exemplos de uso.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Atribuição&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Atribuir um valor para uma variável é entregar um valor para ela guardar.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplo&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;$variavel = 5;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Estamos acima dizendo que a variavel guarde o valor 5.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Comparação&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Comparação é o que fazemos em uma expressão geralmente em if.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplo&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;if($x==3)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Estou querendo dizer acima: se $x for igual a 3.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Veja que quando queremos atribuir usamos apenas um sinal de igualdade:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;$x = 3;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Quando queremos comparar usamos dois sinais de igualdade: if($x == 3)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Usando = e == ou ===&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Com = armazenamos um valor em uma variável.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Com == eu testo se uma variável é igual a um valor.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;</summary>
		<content type="html">&lt;h3 style=&quot;text-align: justify;&quot;&gt;Introdução ao PHP&lt;br /&gt;&lt;br /&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Iniciando na Programação com PHP&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Para poder programar com PHP precisamos de um servidor web. Então instalaremos em nosso computador o programa &lt;a href=&quot;http://xampp.sf.net/&quot;&gt;http://xampp.sf.net&lt;/a&gt; que cria um diretório c:\xampp\htdocs, onde devemos criar nossos programas em PHP.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;É importante saber que atualmente o PHP deve ser a linguagem mais popular para programar para a web. Acredito que a facilidade de programar, os recursos oferecidos por ele, a documentação farta em seu site (&lt;a href=&quot;http://php.net/&quot;&gt;http://php.net&lt;/a&gt;) e a grande aceitação da comunidade foram responsáveis pela sua popularidade.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Veremos que com o PHP temos muitos recursos para criar sites e aplicativos.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Existe uma tradição para quando estamos iniciando a programar em qualquer linguagem, que é a de criar um programa bem simples, que apenas mostre uma frase na tela, no caso “Hello World!”. Veja nosso programa que mostra na tela essa mensagem traduzida:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;code&gt; &lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

    print “Olá Mundo!”;

?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Para ver como isso funciona precisamos criar um arquivo no diretório htdocs, com extensão .php e chamar este arquivo pelo navegador. Nosso diretório web é c:\xampp\htdocs&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Vamos criar &lt;strong&gt;ola.php&lt;/strong&gt; neste diretório, contendo:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

    print &quot;Olá Mundo!&quot;;

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;E chamar pelo navegador assim:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://localhost/ola.php&quot;&gt;http://localhost/ola.php&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Então veremos a nossa frase&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Olá Mundo!&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;br /&gt;Programando para Desktop com PHP&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Nada nos impede de criar aplicativos que serão usados apenas de forma offline usando o nosso PHP. Podemos tranquilamente usar para este fim. Para a criação de aplicativos, após dominar o básico do PHP, eu recomendo que use o Framework CakePHP ou outro da sua escolha.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;PHP com HTML&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Vale lembrar que o PHP sempre fica do lado do servidor. Ele processa informações solicitadas pelo visitante e as devolve. Devolve tudo no formato HTML, juntamente com CSS e JavaScript, que ficam do lado do cliente.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Um código em PHP precisa iniciar com a TAG &amp;lt;?php e terminar com ?&amp;gt;. Qualquer arquivo que contenha código PHP precisa ter a extensão .php. Sendo assim, o interpretador do PHP não olhará para outros tipos de arquivos. E quando verificar arquivos .php somente processará os trechos entre &amp;lt;?php e ?&amp;gt;, o que estiver fora destas TAGs ele não olha.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;O navegador interpreta todo código em HTML antes de mostrar na tela.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Separador de Instruções&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Observe que ao final da linha:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;print &quot;Como vai?&quot;;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Cada instrução do PHP termina com ponto e vírgula.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Instrução – é um comando único que damos ao PHP.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplo: print “Olá”;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;O PHP permite escrever mais de uma instrução por linha, mas devemos evitar, por conta de que fica obscuro o código.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Comentários&lt;/strong&gt;&lt;br /&gt; Em PHP existem três formas de se escrever comentários:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;// - este é comentário oriundo do C++ e para apenas uma linha&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;/*&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Este é o comentário oriundo do C&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;e para&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;múltiplas linhas&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;*/&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;# - Este é o comentário oriundo do shell, para uma única linha e que deve ser evitado, pois está em processo de obsolescência.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Estruturas de Controle&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Vejamos um pequeno trecho de código mais útil e interessante. Suponha que seu colégio tenha suas 4 notas dos 4 bimestres e precise fazer o cálculo para saber se você passou. Ele tem uma fórmula que é somar as 4 notas e dividir tudo por 4 para tirar a média. Veja:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Vamos criar um arquivo notas.php com o conteúdo abaixo ou testar diretamente no php-console, sem as tags inicial e final.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;IF - ELSE&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$aluno = '&amp;lt;b&amp;gt;Elias EF&amp;lt;/b&amp;gt;';

$nota1 = 10;
$nota2 = 9;
$nota3 = 7;
$nota4 = 5;

$resultado = ($nota1 + $nota2 + $nota3 + $nota4) / 4;

if( $resultado &amp;gt;= 7 ){
    print &quot;O aluno $aluno foi aprovado, com nota $resultado&quot;;
}else{
    print 'O aluno não passou!';
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Variáveis&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Como o nome sugere seu valor varia. Vejamos.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Uma variável tem:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;nome - $aluno, que é o nome precedido de $.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;valor - 'Elias EF'&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;tipo – string (acontece que o PHP não declara tipos de variáveis)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Tipos de Dados&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;O tipo de dados de uma variável será reconhecido quando o código for executado:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;string, inteiro, float/double, boleano, array, objeto e resource.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Nome&lt;/strong&gt;&lt;strong&gt;s de&lt;/strong&gt;&lt;strong&gt; Variáveis&lt;/strong&gt;&lt;/p&gt;
&lt;ul style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;
&lt;p&gt;O nome das variáveis precisa começar com uma letra ou pelo símbolo de sublinhado&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;O nome de variáveis pode conter somente caracteres alfa-numéricos e sublinhado: a-z, A-Z, 0-9 e _ .&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Não pode conter espaços. Quando várias palavras podemos usar o sublinhado para separá-las: $minha_variavel.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;As variáveis podem ter seu valor alterado durante a execução do script, daí seu nome.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Atribuição&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Se eu quiser guardar a primeira nota na variável $nota1, então preciso atribuir 10 para $nota1, assim:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;$nota1 = 10;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Veja que usamos o sinal de igual para atribuir e terminamos com ponto e vírgula.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Posso atribuir um valor diretamente para uma variável, mas veja que também posso atribuir uma fórmula bem grande para a variável, assim:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;$resultado = ($nota1 + $nota2 + $nota3 + $nota4) / 4;&lt;br /&gt; Parecido com uma calculadora o PHP fará os cálculos e guardará o valor na variável $resultado.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Na próxima linha ele vai testar o valor do $resultado. (if( $resultado &amp;gt;= 7 ){)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Se for maior ou igual a 7 ele mostrará a primeira mensagem.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Caso contrário então mostrará a segunda mensagem. (}else{)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Vejamos mais um exemplo prático e interessante de uso do PHP&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;IF – ELSE IF – ELSE&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;if (expressao){&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;executado de true e encessa o teste.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;}else if (expressao2){&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;executado se true e encessa o teste.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;}else if (expressao3){&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;executado se true e encessa o teste.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;}else if (expressaoN){&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;executado se true e encessa o teste.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;}else{&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;executado se false&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;}&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Lembrando que somente entra no próximo teste, se o anterior for falso.&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$hora = 14;

if ($hora &amp;lt;= 12) {

    print “Está de manhã”;
 }else if ($hora &amp;gt; 12 &amp;amp;&amp;amp; $hora &amp;lt; 18 ){

    print “Está de tarde”;
 }el se{

    print “Está de noite”;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;if - else&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;O &lt;strong&gt;if&lt;/strong&gt; testa uma expressão&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Caso a expressão seja verdadeira, todo o código após o &lt;strong&gt;if&lt;/strong&gt; será executado.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Caso não seja verdadeira o código após o &lt;strong&gt;else&lt;/strong&gt; será executado.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;i&lt;/strong&gt;&lt;strong&gt;f – eles if – else&lt;/strong&gt;&lt;br /&gt; O &lt;strong&gt;if&lt;/strong&gt; testa uma expressão&lt;br /&gt; Caso a expressão seja verdadeira, todo o código após o &lt;strong&gt;if&lt;/strong&gt; será executado.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Caso a expressão seja falsa então o else if testará uma nova expressão&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Caso a nova expressão seja verdadeira o código após o else if será executado&lt;br /&gt; Caso a nova expressão seja falsa, o código após o else ou o novo else if será&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;executado&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Criando Strings&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Strings pequenas, com apenas uma linha podem ser mostradas com print ou echo, mas textos com várias linhas podem ser armazenados com o recurso chamado Heredoc:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;em&gt;&lt;strong&gt;Armazenando o texto numa variável&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$str = &amp;lt;&amp;lt;&amp;lt;EOD
Exemplo de uma string
distribuída em várias linhas
utilizando a sintaxe heredoc.
EOD;
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;em&gt;&lt;strong&gt;Ou simplesmente mostrando&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
echo &amp;lt;&amp;lt;&amp;lt;show

&amp;lt;a href=&quot;http://backup/portal/index.php&quot;&amp;gt;Início&amp;lt;/a&amp;gt;
&amp;lt;h3&amp;gt;Edite Seus Dados&amp;lt;/h3&amp;gt;
&amp;lt;form action=&quot;update.php&quot; method=&quot;post&quot;&amp;gt;
&amp;lt;table width=&quot;500&quot; border=&quot;1&quot;&amp;gt;
    &amp;lt;tr&amp;gt;
        &amp;lt;th scope=&quot;row&quot;&amp;gt;Nome&amp;lt;/th&amp;gt;
            &amp;lt;td&amp;gt;&amp;lt;input type=&quot;text&quot; name=&quot;nome&quot; value=&quot;$nome&quot;&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;
    &amp;lt;tr&amp;gt;
        &amp;lt;th scope=&quot;row&quot;&amp;gt;Nascimento&amp;lt;/th&amp;gt;
            &amp;lt;td&amp;gt;&amp;lt;input type=&quot;text&quot; name=&quot;data_nasc&quot; value=$data_nasc&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;
    &amp;lt;tr&amp;gt;
        &amp;lt;th scope=&quot;row&quot;&amp;gt;E-mail&amp;lt;/th&amp;gt;
            &amp;lt;td&amp;gt;&amp;lt;input type=&quot;text&quot; name=&quot;email&quot; value=&quot;$email&quot;&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;
&amp;lt;/table&amp;gt;
&amp;lt;/form&amp;gt;

show;
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Mais uma estrutura interessante do PHP - &lt;/strong&gt;&lt;strong&gt;Switch&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;switch – Este testa uma variável contra alguns valores. Parece com um bloco de if else if. Quando encontra o valor correto executa o código seguinte e sai da iteração.&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$opcao = 3;

switch ($opcao) {
    case 1:
        print 1;
        break;
    case 2:
        print 2;
        break;
    case 3:
        print 3;
        break;
    case 4:
        print 4;
        break;
    case 5:
        print 5;
        break;
    default:
        print 'Nenhuma das anteriores';
        break;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Obs.: Caso removamos um dos comandos break o código continua no próximo case.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Laços: for, while, forwach&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Estruturas que resolvem vários problemas com pouco esforço.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;for&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

for ($x = 1; $x &amp;lt;= 10; $x++) {

    print $x;
}

for ($x = 1; $x &amp;lt;= 10; $x++) {

    print $x . '&amp;lt;br&amp;gt;';
}

for ($x = 0; $x &amp;lt; 10; $x++) {

    print $x;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Existem variações de uso do for. No caso abaixo, como não temos teste do valor, o incremento continua indefinidamente:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;for($x=0; ;$x++){&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;print $x;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;}&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Nestes casos precisamos inserir um teste no corpo do for, assim:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

for ($x = 0;; $x++) {

    if ($x &amp;gt; 10) {

        break;
    }

    print $x;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Continue&lt;/strong&gt;&lt;br /&gt; Este comando sai do laço e volta na próxima iteração, ou um certo número de comandos para sair do laço. Veja&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

for ($i = 0; $i &amp;lt; 10; ++$i) {
    if ($i &amp;lt; 5) {
        continue;
    }
    print &quot;$i&amp;lt;br&amp;gt;&quot;;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Break&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Interrompe o laço, entregando o processamento para a linha seguinte ao laço.&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
for ($x = 0; $x &amp;lt; 5; ++$x) {
    if ($x == 2) {
        break;
    }
    print &quot;$x&amp;lt;br&amp;gt;&quot;;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Experimente.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;foreach&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Laço através de um array.&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$arr = array(1, 2, 3, 4);
foreach ($arr as $value) {
    $value = $value * 2;
    print $value;
}
// $arr is now array(2, 4, 6, 8)
unset($value); // Limpar a variável, que armazena o valor
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Colher Chave e Valor&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$arr = array(1, 2, 3, 4);
foreach ($arr as $chave =&amp;gt; $value) {
    $value = $value * 2;
    print 'Chave: ' . $chave . ' - Valor: ' . $value . '&amp;lt;br&amp;gt;';
}
unset($valor); // Limpar a variável, que armazena o valor
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Existe muito mais recursos, mas me parece que já dá para perceber isso com estes exemplos mostrados.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Qualquer dúvida sobre qualquer comando do PHP vá até o site oficial em &lt;a href=&quot;http://php.net/&quot;&gt;http://php.net&lt;/a&gt; e faça uma busca pelo comando, que verá a sintaxe e muitos exemplos de uso.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Atribuição&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Atribuir um valor para uma variável é entregar um valor para ela guardar.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplo&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;$variavel = 5;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Estamos acima dizendo que a variavel guarde o valor 5.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Comparação&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Comparação é o que fazemos em uma expressão geralmente em if.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplo&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;if($x==3)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Estou querendo dizer acima: se $x for igual a 3.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Veja que quando queremos atribuir usamos apenas um sinal de igualdade:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;$x = 3;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Quando queremos comparar usamos dois sinais de igualdade: if($x == 3)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Usando = e == ou ===&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Com = armazenamos um valor em uma variável.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Com == eu testo se uma variável é igual a um valor.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;</content>
		<category term="PHP" />
	</entry>
	<entry>
		<title>Arquivos e Diretórios</title>
		<link rel="alternate" type="text/html" href="http://backup/portal/basicos/php/arquivos-e-diretorios.html"/>
		<published>2017-06-23T11:07:07-03:00</published>
		<updated>2017-06-23T11:07:07-03:00</updated>
		<id>http://backup/portal/basicos/php/arquivos-e-diretorios.html</id>
		<author>
			<name>Ribamar FS</name>
		</author>
		<summary type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;TRABALHANDO COM ARQUIVOS E DIRETÓRIOS NO PHP&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Abrir arquivo&lt;/strong&gt;&lt;br /&gt;fopen(filename, mode, [use_include_path]);&lt;br /&gt;&lt;br /&gt;filename: pode ser simplesmente um nome, ou um caminho completo. &lt;br /&gt;Exemplos: &quot;arquivo.txt&quot;, &quot;./arquivo.dat&quot;, &quot;/data/data.txt&quot;.&lt;br /&gt;&lt;br /&gt;mode: especifica o modo de abertura, ou seja, se o arquivo deve ser aberto para leitura, &lt;br /&gt;escrita, etc. Modos de abertura:&lt;br /&gt;&lt;br /&gt;- r: abre o arquivo no modo somente leitura e posiciona o ponteiro no início do arquivo; &lt;br /&gt; o arquivo já deve existir;&lt;br /&gt;- r+: abre o arquivo para leitura/escrita, posiciona o ponteiro no início do arquivo;&lt;br /&gt;- w: abre o arquivo no modo somente escrita; se o arquivo já existir, será sobrescrito; &lt;br /&gt; senão, será criado um novo;&lt;br /&gt;- w+: abre o arquivo para escrita/leitura; se o arquivo já existir, será sobrescrito; &lt;br /&gt; senão, será criado um novo;&lt;br /&gt;- a: abre o arquivo para anexar dados, posiciona o ponteiro no final do arquivo; &lt;br /&gt; se o arquivo não existir, será criado um novo;&lt;br /&gt;- a+: abre o arquivo para anexo/leitura, posiciona o ponteiro no final do arquivo; &lt;br /&gt; se o arquivo não existir, será criado um novo;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

    $fp = fopen(&quot;./arquivo.dat&quot;, &quot;r&quot;); // $fp conterá o handle do arquivo que abrimos

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;strong&gt;Fechar Arquivo&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;fclose(handle_arquivo);&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

fclose($fp);

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Gravando em arquivo:&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$fp = fopen(&quot;./dados.txt&quot;, &quot;w&quot;);

fwrite($fp, &quot;Olá mundo do PHP!&quot;); // grava a string no arquivo. Se não existir será criado

fclose($fp);

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;strong&gt;Lendo arquivo:&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$fp = fopen(&quot;./dados.txt&quot;, &quot;r&quot;);
$texto = fread($fp, 20); // lê 20 bytes do arquivo e armazena em $text
fclose($fp);
echo $texto;
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;fgets(): Esta função é usada na leitura de strings de um arquivo. fgets() lê &quot;length \u2013 1&quot; bytes do arquivo. Se for encontrado o final da linha e o número de bytes especificados não tiver sido atingido, fgets() terminará a leitura no final da linha (ou no final do arquivo, se for o caso). Eis a sua sintaxe:&lt;br /&gt;&lt;br /&gt;fgets(handle, length);&lt;br /&gt;- handle: handle do arquivo de onde os dados serão lidos;&lt;br /&gt;- length: tamanho em bytes do buffer de leitura;&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$fp = fopen(&quot;./dados.txt&quot;, &quot;r&quot;);
$texto = fgets($fp, 3);
fclose($fp);
echo $texto;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;fgetc(): Esta função permite ler caractere por caractere de um arquivo. Seguem a sintaxe e um exemplo de utilização:&lt;br /&gt;&lt;br /&gt;fgetc(handle);&lt;br /&gt;- handle: handle do arquivo de onde os dados serão lidos;&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$fp = fopen(&quot;./dados.txt&quot;, &quot;r&quot;);
while (!feof($fp)){
    $char .= fgetc($fp);
}
fclose($fp);
echo $char.&quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;file(): Esta função lê um arquivo completo, e armazena cada linha do arquivo como um elemento de um array. Depois de ler todo o conteúdo do arquivo, file() o fecha automaticamente, não sendo necessária uma chamada a fclose(); Vejamos a sintaxe:&lt;br /&gt;&lt;br /&gt;file(filename);&lt;br /&gt;- filename: nome ou caminho completo de um arquivo.&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
// file() lê todo o arquivo
$file_lines = file(&quot;./dados.txt&quot;);
echo &quot;Primeira linha: &quot; . $file_lines[0].&quot;&amp;lt;br&amp;gt;&quot;;
echo &quot;Segunda linha: &quot; . $file_lines[1].&quot;&amp;lt;br&amp;gt;&quot;;
echo &quot;Terceira linha: &quot; . $file_lines[2];
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;Além dessas funções para leitura e escrita, existe ainda uma função bastante útil, que testa se o final do arquivo foi atingido. É a função feof(), que tem a seguinte sintaxe:&lt;br /&gt;&lt;br /&gt;feof(handle);&lt;br /&gt;- handle: handle do arquivo;&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$fp = fopen(&quot;./dados.txt&quot;, &quot;r&quot;);
while(!feof($fp)) {
    $char .= fgetc($fp);
}
fclose($fp);
echo $char;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Contando o Número de Linhas de um arquivo&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
// Contar o número de linhas de um arquivo, iniciando com 1
$fp = &quot;./dados.txt&quot;;
$line_count = count (file ($fp));
echo $line_count;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Contar palavras de um arquivo&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
// Contar palavras repetidas em um arquivo
$fn = &quot;./dados.txt&quot;;
$f_contents = preg_split (&quot;/[\s+/&quot;, implode (&quot;&quot;, file ($fn)));
foreach ($f_content as $palavra) {
    $ar[$palavra]++;
}
print &quot;A seguinte palavra tem duplicatas&amp;lt;br&amp;gt;&quot;;
foreach ($ar as $palavra =&amp;gt; $conta_palavra) {
    if (conta_palavra &amp;gt; 1) {
        print &quot;Palavra: $palavra&amp;lt;br&amp;gt;Número de ocorrências: $conta_palavra&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;
    }
}
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ler de forma inversa um arquivo, linha a linha&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$fn = &quot;./dados.txt&quot;;
$f_contents = array_reverse (file ($fn));
foreach ($f_contents as $linha_inversa) {
    print $linha_inversa;
}
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ler aleatoriamente linha de arquivo&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$fn = &quot;./pensamentos.txt&quot;;
$f_contents = file ($fn);
srand ((double)microtime()*1000000);
$linha_aleatoria = $f_contents[ rand (0, (count ($f_contents) - 1)) ];
print $linha_aleatoria;
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;strong&gt;Ler linha específica de arquivo&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$fn = &quot;./dados.txt&quot;;
$nr_linha = 38;
$f_contents = file ($fn);
$sua_linha = $f_contents [$nr_linha];
print $sua_linha;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;OPERAÇÕES COM DIRETÓRIOS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Mostrando conteúdo de diretório&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$dn = opendir (&quot;/home/1www/&quot;);
while ($file = readdir ($dn)) {
    print &quot;$file&amp;lt;br&amp;gt;&quot;;
}
closedir($dn);
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Excluindo arquivos do SO&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$fn = &quot;./dados0.txt&quot;;
// Excluindo arquivo
$ret = unlink ($fn);
if ($ret){
     die (&quot;Arquivo excluído!&quot;);
}else{
    die (&quot;Erro ao excluir arquivo&quot;);
}
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Copiando arquivos&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$fn = &quot;./dados.txt&quot;;

if (copy ($fn, &quot;dados0.txt&quot;)){
     die (&quot;Arquivo '$fn' copiado para dados0.txt &quot;);
}else{
    die (&quot;Erro ao copiar arquivo&quot;);
}
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Processando todos os arquivos de um diretório&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$dh = dir (&quot;/home/1www/&quot;);
while ($entrada = $dh-&amp;gt;read()) {
    print $entrada . &quot;&amp;lt;br&amp;gt;&quot;;
}
$dh-&amp;gt;close();
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;strong&gt;Referência:&lt;/strong&gt;&lt;br /&gt;&lt;a href=&quot;http://phpbrasil.com/articles/print.php/id/310&quot;&gt;http://phpbrasil.com/articles/print.php/id/310&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;TESTE SE ARQUIVO QUE PODE LIDO (READABLE)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
if (is_readable('http://127.0.0.1/index.html')) {
   header('Location: http://127.0.0.1/index.html');
}else{
    echo &quot;Este arquivo não pode ser lido!&quot;;
}

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;</summary>
		<content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;TRABALHANDO COM ARQUIVOS E DIRETÓRIOS NO PHP&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Abrir arquivo&lt;/strong&gt;&lt;br /&gt;fopen(filename, mode, [use_include_path]);&lt;br /&gt;&lt;br /&gt;filename: pode ser simplesmente um nome, ou um caminho completo. &lt;br /&gt;Exemplos: &quot;arquivo.txt&quot;, &quot;./arquivo.dat&quot;, &quot;/data/data.txt&quot;.&lt;br /&gt;&lt;br /&gt;mode: especifica o modo de abertura, ou seja, se o arquivo deve ser aberto para leitura, &lt;br /&gt;escrita, etc. Modos de abertura:&lt;br /&gt;&lt;br /&gt;- r: abre o arquivo no modo somente leitura e posiciona o ponteiro no início do arquivo; &lt;br /&gt; o arquivo já deve existir;&lt;br /&gt;- r+: abre o arquivo para leitura/escrita, posiciona o ponteiro no início do arquivo;&lt;br /&gt;- w: abre o arquivo no modo somente escrita; se o arquivo já existir, será sobrescrito; &lt;br /&gt; senão, será criado um novo;&lt;br /&gt;- w+: abre o arquivo para escrita/leitura; se o arquivo já existir, será sobrescrito; &lt;br /&gt; senão, será criado um novo;&lt;br /&gt;- a: abre o arquivo para anexar dados, posiciona o ponteiro no final do arquivo; &lt;br /&gt; se o arquivo não existir, será criado um novo;&lt;br /&gt;- a+: abre o arquivo para anexo/leitura, posiciona o ponteiro no final do arquivo; &lt;br /&gt; se o arquivo não existir, será criado um novo;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

    $fp = fopen(&quot;./arquivo.dat&quot;, &quot;r&quot;); // $fp conterá o handle do arquivo que abrimos

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;strong&gt;Fechar Arquivo&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;fclose(handle_arquivo);&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

fclose($fp);

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Gravando em arquivo:&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$fp = fopen(&quot;./dados.txt&quot;, &quot;w&quot;);

fwrite($fp, &quot;Olá mundo do PHP!&quot;); // grava a string no arquivo. Se não existir será criado

fclose($fp);

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;strong&gt;Lendo arquivo:&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$fp = fopen(&quot;./dados.txt&quot;, &quot;r&quot;);
$texto = fread($fp, 20); // lê 20 bytes do arquivo e armazena em $text
fclose($fp);
echo $texto;
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;fgets(): Esta função é usada na leitura de strings de um arquivo. fgets() lê &quot;length \u2013 1&quot; bytes do arquivo. Se for encontrado o final da linha e o número de bytes especificados não tiver sido atingido, fgets() terminará a leitura no final da linha (ou no final do arquivo, se for o caso). Eis a sua sintaxe:&lt;br /&gt;&lt;br /&gt;fgets(handle, length);&lt;br /&gt;- handle: handle do arquivo de onde os dados serão lidos;&lt;br /&gt;- length: tamanho em bytes do buffer de leitura;&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$fp = fopen(&quot;./dados.txt&quot;, &quot;r&quot;);
$texto = fgets($fp, 3);
fclose($fp);
echo $texto;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;fgetc(): Esta função permite ler caractere por caractere de um arquivo. Seguem a sintaxe e um exemplo de utilização:&lt;br /&gt;&lt;br /&gt;fgetc(handle);&lt;br /&gt;- handle: handle do arquivo de onde os dados serão lidos;&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$fp = fopen(&quot;./dados.txt&quot;, &quot;r&quot;);
while (!feof($fp)){
    $char .= fgetc($fp);
}
fclose($fp);
echo $char.&quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;file(): Esta função lê um arquivo completo, e armazena cada linha do arquivo como um elemento de um array. Depois de ler todo o conteúdo do arquivo, file() o fecha automaticamente, não sendo necessária uma chamada a fclose(); Vejamos a sintaxe:&lt;br /&gt;&lt;br /&gt;file(filename);&lt;br /&gt;- filename: nome ou caminho completo de um arquivo.&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
// file() lê todo o arquivo
$file_lines = file(&quot;./dados.txt&quot;);
echo &quot;Primeira linha: &quot; . $file_lines[0].&quot;&amp;lt;br&amp;gt;&quot;;
echo &quot;Segunda linha: &quot; . $file_lines[1].&quot;&amp;lt;br&amp;gt;&quot;;
echo &quot;Terceira linha: &quot; . $file_lines[2];
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;Além dessas funções para leitura e escrita, existe ainda uma função bastante útil, que testa se o final do arquivo foi atingido. É a função feof(), que tem a seguinte sintaxe:&lt;br /&gt;&lt;br /&gt;feof(handle);&lt;br /&gt;- handle: handle do arquivo;&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$fp = fopen(&quot;./dados.txt&quot;, &quot;r&quot;);
while(!feof($fp)) {
    $char .= fgetc($fp);
}
fclose($fp);
echo $char;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Contando o Número de Linhas de um arquivo&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
// Contar o número de linhas de um arquivo, iniciando com 1
$fp = &quot;./dados.txt&quot;;
$line_count = count (file ($fp));
echo $line_count;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Contar palavras de um arquivo&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
// Contar palavras repetidas em um arquivo
$fn = &quot;./dados.txt&quot;;
$f_contents = preg_split (&quot;/[\s+/&quot;, implode (&quot;&quot;, file ($fn)));
foreach ($f_content as $palavra) {
    $ar[$palavra]++;
}
print &quot;A seguinte palavra tem duplicatas&amp;lt;br&amp;gt;&quot;;
foreach ($ar as $palavra =&amp;gt; $conta_palavra) {
    if (conta_palavra &amp;gt; 1) {
        print &quot;Palavra: $palavra&amp;lt;br&amp;gt;Número de ocorrências: $conta_palavra&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;
    }
}
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ler de forma inversa um arquivo, linha a linha&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$fn = &quot;./dados.txt&quot;;
$f_contents = array_reverse (file ($fn));
foreach ($f_contents as $linha_inversa) {
    print $linha_inversa;
}
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ler aleatoriamente linha de arquivo&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$fn = &quot;./pensamentos.txt&quot;;
$f_contents = file ($fn);
srand ((double)microtime()*1000000);
$linha_aleatoria = $f_contents[ rand (0, (count ($f_contents) - 1)) ];
print $linha_aleatoria;
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;strong&gt;Ler linha específica de arquivo&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$fn = &quot;./dados.txt&quot;;
$nr_linha = 38;
$f_contents = file ($fn);
$sua_linha = $f_contents [$nr_linha];
print $sua_linha;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;OPERAÇÕES COM DIRETÓRIOS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Mostrando conteúdo de diretório&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$dn = opendir (&quot;/home/1www/&quot;);
while ($file = readdir ($dn)) {
    print &quot;$file&amp;lt;br&amp;gt;&quot;;
}
closedir($dn);
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Excluindo arquivos do SO&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$fn = &quot;./dados0.txt&quot;;
// Excluindo arquivo
$ret = unlink ($fn);
if ($ret){
     die (&quot;Arquivo excluído!&quot;);
}else{
    die (&quot;Erro ao excluir arquivo&quot;);
}
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Copiando arquivos&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$fn = &quot;./dados.txt&quot;;

if (copy ($fn, &quot;dados0.txt&quot;)){
     die (&quot;Arquivo '$fn' copiado para dados0.txt &quot;);
}else{
    die (&quot;Erro ao copiar arquivo&quot;);
}
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Processando todos os arquivos de um diretório&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$dh = dir (&quot;/home/1www/&quot;);
while ($entrada = $dh-&amp;gt;read()) {
    print $entrada . &quot;&amp;lt;br&amp;gt;&quot;;
}
$dh-&amp;gt;close();
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;strong&gt;Referência:&lt;/strong&gt;&lt;br /&gt;&lt;a href=&quot;http://phpbrasil.com/articles/print.php/id/310&quot;&gt;http://phpbrasil.com/articles/print.php/id/310&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;TESTE SE ARQUIVO QUE PODE LIDO (READABLE)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
if (is_readable('http://127.0.0.1/index.html')) {
   header('Location: http://127.0.0.1/index.html');
}else{
    echo &quot;Este arquivo não pode ser lido!&quot;;
}

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;</content>
		<category term="PHP" />
	</entry>
	<entry>
		<title>Trabalhando com Forms</title>
		<link rel="alternate" type="text/html" href="http://backup/portal/basicos/php/trabalhando-com-forms.html"/>
		<published>2017-06-23T11:07:07-03:00</published>
		<updated>2017-06-23T11:07:07-03:00</updated>
		<id>http://backup/portal/basicos/php/trabalhando-com-forms.html</id>
		<author>
			<name>Ribamar FS</name>
		</author>
		<summary type="html">&lt;p&gt;&lt;strong&gt;Exemplo de uso de formulário com PHP&lt;br /&gt;Arquivo de form html chamando outro script php&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;body onLoad=&quot;document.form1.nome.focus()&quot;&amp;gt;
&amp;lt;form name=&quot;form1&quot; method=&quot;POST&quot; action=&quot;forms0.php&quot;&amp;gt;
Nome.&amp;lt;input type=&quot;text&quot; name=&quot;nome&quot;&amp;gt;&amp;lt;br&amp;gt;
E-mail&amp;lt;input type=&quot;text&quot; name=&quot;email&quot;&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;input type=&quot;hidden&quot; name=&quot;oculto&quot; value=&quot;OK&quot;&amp;gt;
Senha&amp;lt;input type=&quot;password&quot; name=&quot;senha&quot;&amp;gt;&amp;lt;br&amp;gt;
SenhaCript&amp;lt;input type=&quot;password&quot; name=&quot;senhacript&quot;&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;input type=&quot;submit&quot; value=&quot;Enviar&quot;&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;/form&amp;gt;
 
&amp;lt;?php
//$nome=$_POST[&quot;nome&quot;];
//$email=$_POST[&quot;email&quot;];
if (isset($nome)){
    echo &quot;O nome digitado foi &quot; . $nome . &quot;&amp;lt;br&amp;gt;&quot;;
    echo &quot;O e-mail digitado foi &quot; . $email . &quot;&amp;lt;br&amp;gt;&quot;;
    echo &quot;O campo oculto contém &quot; . $oculto . &quot;&amp;lt;br&amp;gt;&quot;;
    echo &quot;A senha digitada foi &quot; . $senha . &quot;&amp;lt;br&amp;gt;&quot;;
    echo &quot;A senha md5 digitada foi &quot; . md5($senhacript) . &quot;&amp;lt;br&amp;gt;&quot;;
}
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt; &lt;br /&gt;&lt;strong&gt;Exemplo de uso de formulário com PHP chamando o mesmo script&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;body onLoad=&quot;document.form1.nome.focus()&quot;&amp;gt;
&amp;lt;form name=&quot;form1&quot; method=&quot;POST&quot; action=&quot;&amp;lt;?php $_PHPSELF ?&amp;gt;&quot;&amp;gt;
Nome.&amp;lt;input type=&quot;text&quot; name=&quot;nome&quot;&amp;gt;&amp;lt;br&amp;gt;
E-mail&amp;lt;input type=&quot;text&quot; name=&quot;email&quot;&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;input type=&quot;submit&quot; value=&quot;Enviar&quot;&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;/form&amp;gt;
 
&amp;lt;?php
$nome = $_POST[&quot;nome&quot;];
$email = $_POST[&quot;email&quot;];
 
if(isset($nome)){
    echo &quot;O nome digitado foi &quot; . $nome . &quot;&amp;lt;br&amp;gt;&quot;;
    echo &quot;O e-mail digitado foi &quot; . $email . &quot;&amp;lt;br&amp;gt;&quot;;
}
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt; &lt;br /&gt;&lt;strong&gt;As informações digitadas em um formulário podem ser capturadas por um script PHP. Veja como:&lt;/strong&gt; &lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;form.html
&amp;lt;form action=&quot;recebe.php&quot; method=&quot;POST&quot;&amp;gt;
Nome &amp;lt;input type=&quot;text&quot; name=&quot;nome&quot;&amp;gt;&amp;lt;br&amp;gt;
Idade &amp;lt;input type=&quot;text&quot; name=&quot;idade&quot;&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;input type=&quot;submit&quot; value=&quot;Enviar&quot;&amp;gt;
&amp;lt;/form&amp;gt;
 
 
recebe.php
 
&amp;lt;?php
echo $_POST[&quot;nome&quot;];
echo &quot;&amp;lt;br&amp;gt;&quot;;
echo $_POST[&quot;idade&quot;];
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;Recebendo dados via URL&lt;/strong&gt; &lt;br /&gt; &lt;br /&gt;Se temos a seguinte situação: &lt;br /&gt; &lt;br /&gt;Temos um arquivo c:\www\teste.php, com o seguinte código: &lt;br /&gt; &lt;br /&gt;&amp;lt;?php &lt;br /&gt; echo $_GET['codigo']; &lt;br /&gt;?&amp;gt; &lt;br /&gt; &lt;br /&gt;&lt;strong&gt;Queremos passar uma variável codigo com valor 5, fazemos:&lt;/strong&gt; &lt;br /&gt; &lt;br /&gt;http://127.0.0.1/teste.php?codigo=5 &lt;br /&gt; &lt;br /&gt;&lt;strong&gt;Para receber mais de uma variável ou campo usar:&lt;/strong&gt; &lt;br /&gt; &lt;br /&gt;http://127.0.0.1/teste.php?codigo=5&amp;amp;nome=&quot;Antônio&quot;&amp;amp;email=&quot;ribafs@yahoo.com&quot; &lt;br /&gt; &lt;br /&gt;echo &quot;Código = &quot;.$_GET['codigo'].&quot; Nome = &quot;.$_GET['nome'].&quot; E-mail = &quot;.$_GET['email']; &lt;br /&gt; &lt;br /&gt;Também podemos passar variáveis pela URL, assim&lt;/p&gt;
&lt;p&gt;teste.php?codigo=$cod &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;CSS EM TAGs HTML &lt;br /&gt; Deixe aqui seu Comentário&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;textarea wrap=off name=command cols=80 rows=20 style=&quot;background-color:black; color:yellow; font-family:corrier new,courier; font-weight:normal;           font-size:12px;&quot;&amp;gt;&amp;lt;?php echo $_POST[&quot;comentario&quot;]; ?&amp;gt;&amp;lt;/textarea&amp;gt;
&lt;/code&gt;&lt;/pre&gt;</summary>
		<content type="html">&lt;p&gt;&lt;strong&gt;Exemplo de uso de formulário com PHP&lt;br /&gt;Arquivo de form html chamando outro script php&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;body onLoad=&quot;document.form1.nome.focus()&quot;&amp;gt;
&amp;lt;form name=&quot;form1&quot; method=&quot;POST&quot; action=&quot;forms0.php&quot;&amp;gt;
Nome.&amp;lt;input type=&quot;text&quot; name=&quot;nome&quot;&amp;gt;&amp;lt;br&amp;gt;
E-mail&amp;lt;input type=&quot;text&quot; name=&quot;email&quot;&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;input type=&quot;hidden&quot; name=&quot;oculto&quot; value=&quot;OK&quot;&amp;gt;
Senha&amp;lt;input type=&quot;password&quot; name=&quot;senha&quot;&amp;gt;&amp;lt;br&amp;gt;
SenhaCript&amp;lt;input type=&quot;password&quot; name=&quot;senhacript&quot;&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;input type=&quot;submit&quot; value=&quot;Enviar&quot;&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;/form&amp;gt;
 
&amp;lt;?php
//$nome=$_POST[&quot;nome&quot;];
//$email=$_POST[&quot;email&quot;];
if (isset($nome)){
    echo &quot;O nome digitado foi &quot; . $nome . &quot;&amp;lt;br&amp;gt;&quot;;
    echo &quot;O e-mail digitado foi &quot; . $email . &quot;&amp;lt;br&amp;gt;&quot;;
    echo &quot;O campo oculto contém &quot; . $oculto . &quot;&amp;lt;br&amp;gt;&quot;;
    echo &quot;A senha digitada foi &quot; . $senha . &quot;&amp;lt;br&amp;gt;&quot;;
    echo &quot;A senha md5 digitada foi &quot; . md5($senhacript) . &quot;&amp;lt;br&amp;gt;&quot;;
}
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt; &lt;br /&gt;&lt;strong&gt;Exemplo de uso de formulário com PHP chamando o mesmo script&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;body onLoad=&quot;document.form1.nome.focus()&quot;&amp;gt;
&amp;lt;form name=&quot;form1&quot; method=&quot;POST&quot; action=&quot;&amp;lt;?php $_PHPSELF ?&amp;gt;&quot;&amp;gt;
Nome.&amp;lt;input type=&quot;text&quot; name=&quot;nome&quot;&amp;gt;&amp;lt;br&amp;gt;
E-mail&amp;lt;input type=&quot;text&quot; name=&quot;email&quot;&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;input type=&quot;submit&quot; value=&quot;Enviar&quot;&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;/form&amp;gt;
 
&amp;lt;?php
$nome = $_POST[&quot;nome&quot;];
$email = $_POST[&quot;email&quot;];
 
if(isset($nome)){
    echo &quot;O nome digitado foi &quot; . $nome . &quot;&amp;lt;br&amp;gt;&quot;;
    echo &quot;O e-mail digitado foi &quot; . $email . &quot;&amp;lt;br&amp;gt;&quot;;
}
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt; &lt;br /&gt;&lt;strong&gt;As informações digitadas em um formulário podem ser capturadas por um script PHP. Veja como:&lt;/strong&gt; &lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;form.html
&amp;lt;form action=&quot;recebe.php&quot; method=&quot;POST&quot;&amp;gt;
Nome &amp;lt;input type=&quot;text&quot; name=&quot;nome&quot;&amp;gt;&amp;lt;br&amp;gt;
Idade &amp;lt;input type=&quot;text&quot; name=&quot;idade&quot;&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;input type=&quot;submit&quot; value=&quot;Enviar&quot;&amp;gt;
&amp;lt;/form&amp;gt;
 
 
recebe.php
 
&amp;lt;?php
echo $_POST[&quot;nome&quot;];
echo &quot;&amp;lt;br&amp;gt;&quot;;
echo $_POST[&quot;idade&quot;];
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;Recebendo dados via URL&lt;/strong&gt; &lt;br /&gt; &lt;br /&gt;Se temos a seguinte situação: &lt;br /&gt; &lt;br /&gt;Temos um arquivo c:\www\teste.php, com o seguinte código: &lt;br /&gt; &lt;br /&gt;&amp;lt;?php &lt;br /&gt; echo $_GET['codigo']; &lt;br /&gt;?&amp;gt; &lt;br /&gt; &lt;br /&gt;&lt;strong&gt;Queremos passar uma variável codigo com valor 5, fazemos:&lt;/strong&gt; &lt;br /&gt; &lt;br /&gt;http://127.0.0.1/teste.php?codigo=5 &lt;br /&gt; &lt;br /&gt;&lt;strong&gt;Para receber mais de uma variável ou campo usar:&lt;/strong&gt; &lt;br /&gt; &lt;br /&gt;http://127.0.0.1/teste.php?codigo=5&amp;amp;nome=&quot;Antônio&quot;&amp;amp;email=&quot;ribafs@yahoo.com&quot; &lt;br /&gt; &lt;br /&gt;echo &quot;Código = &quot;.$_GET['codigo'].&quot; Nome = &quot;.$_GET['nome'].&quot; E-mail = &quot;.$_GET['email']; &lt;br /&gt; &lt;br /&gt;Também podemos passar variáveis pela URL, assim&lt;/p&gt;
&lt;p&gt;teste.php?codigo=$cod &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;CSS EM TAGs HTML &lt;br /&gt; Deixe aqui seu Comentário&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;textarea wrap=off name=command cols=80 rows=20 style=&quot;background-color:black; color:yellow; font-family:corrier new,courier; font-weight:normal;           font-size:12px;&quot;&amp;gt;&amp;lt;?php echo $_POST[&quot;comentario&quot;]; ?&amp;gt;&amp;lt;/textarea&amp;gt;
&lt;/code&gt;&lt;/pre&gt;</content>
		<category term="PHP" />
	</entry>
	<entry>
		<title>Trabalhando com Funções</title>
		<link rel="alternate" type="text/html" href="http://backup/portal/basicos/php/trabalhando-com-funcoes.html"/>
		<published>2017-06-23T11:07:07-03:00</published>
		<updated>2017-06-23T11:07:07-03:00</updated>
		<id>http://backup/portal/basicos/php/trabalhando-com-funcoes.html</id>
		<author>
			<name>Ribamar FS</name>
		</author>
		<summary type="html">&lt;p&gt;&lt;strong&gt;Trabalhando com Funções em PHP&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

echo &quot;&amp;lt;pre&amp;gt;
Funções são blocos de código, conjuntos de instruções, que ficam quietos,
sem vida, até que sejam chamadas em algum lugar do código.
Funções reduzem o trabalho de digitação, o tamanho dos scripts em geral,
os erros, reaproveitando código, facilitando e organizando o trabalho de
desenvolvimento.
&amp;lt;/pre&amp;gt;&quot;;

echo &quot;Exemplos de funções definidas pelo usuário&amp;lt;br&amp;gt;.&quot;;
function quadrado($numero)
{
    print $numero * $numero;
}

//Executando:
quadrado(6); // Saída: 36

echo &quot; Variáveis globais&amp;lt;br&amp;gt;&quot;;
$var1 = 5;

function testeGlobal1()
{
    $var1 = 1;
    print &quot;&amp;lt;br&amp;gt;Valor de \$var1: $var1&quot;;
}

echo testeGlobal1();
echo &quot;Variável externa acessível na função&amp;lt;br&amp;gt;&quot;;

$var2 = 10;
function testeGlobal2()
{
    global $var2;
    print &quot;&amp;lt;br&amp;gt;Valor de \$var2 $var2&quot;;
}

echo testeGlobal2();

$var5 = 15;

function testeGlobal5()
{
    $var5 = 5;
    print &quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;A variável global vale $GLOBALS[var5], &quot;;
    print &quot;Já a variável local vale $var5&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;
}

testeGlobal5();

function cliente($codigo, $idade = 18)
{
    print &quot;Código = $codigo, Idade = $idade&quot;;
}

cliente(1);  //Exibirá: Código = 1, Idade = 18

function cubo($num)
{
    return ($num * $num * $num);
}

$var1 = 2 * cubo(5);
echo &quot;&amp;lt;br&amp;gt;&quot; . $var1;

echo &quot;Variáveis estáticas&amp;lt;br&amp;gt;&quot;;

function contador()
{
    static $x = 0;
    return $x++;
}

echo &quot;&amp;lt;br&amp;gt;&quot;;
echo contador();
echo contador();
echo contador();
//A saída será: 012

function contador2()
{
    $x = 0;
    return $x++;
}

echo &quot;&amp;lt;br&amp;gt;&quot;;
echo contador2();
echo contador2();
echo contador2();

//A saída será: 000.

function staticfunction()
{
    static $count = 0;
    $count++;
    if ($count == 1) {
        echo &quot;A Função foi executada $count vez&amp;lt;br&amp;gt;&quot;;
    } else {
        echo &quot;A Função foi executada $count vezes&amp;lt;br&amp;gt;&quot;;
    }
}


for ($i = 0; $i &amp;lt; 5; $i++) {
    staticfunction();
}

function Teste1()
{
    static $a = 0;
    echo $a;
    $a++;
}

for ($x = 0; $x &amp;lt;= 10; $x++) {
    echo Teste1() . &quot; &quot;;
}

echo &quot;&amp;lt;br&amp;gt;&quot;;

echo &quot;Recursiva&amp;lt;br&amp;gt;&quot;;

function Teste()
{
    static $count = 0;

    $count++;
    echo $count . &quot; &quot;;
    if ($count &amp;lt; 10) {
        Teste();
    }
    $count--;
}

Teste();

echo &quot;Declarando variáveis static&amp;lt;br&amp;gt;&quot;;
function foo()
{
    static $int = 0;          // correro
    // static $int = 1+2;        // errado (é uma expressão)
    // static $int = sqrt(121);  // errado  (é uma expressão também)

    $int++;
    echo $int;
}


function aumentoSalario($sal, $perc = 5)
{
    $salario = $sal * $perc / 100;
    echo $salario;
}
echo &quot;&amp;lt;br&amp;gt;Aumento: &quot; . aumentoSalario(1956);

function redirecionar($url)
{
    header(&quot;Location: $url&quot;);
}
echo &quot;&amp;lt;br&amp;gt;&quot;;
redirecionar(&quot;http://ribafs.phpnet.us/&quot;);
echo &quot;&amp;lt;br&amp;gt;&quot;;

echo &quot;Retornar mais de um valor de uma função: usa-se arrays e list()
array() retorna e list() exibe &amp;lt;br&amp;gt;&quot;;

//Exemplo:

function recebe_hoje()
{
    $data_abreviada = date(&quot;d/m/Y&quot;);
    $data_extensa = date(&quot;l, d F \d\e Y&quot;);

    return array($data_abreviada, $data_extensa);
}

list($data_abreviada, $data_extensa) = recebe_hoje();
print $data_extensa;
echo &quot;&amp;lt;br&amp;gt;&quot;;
print $data_abreviada;


echo &quot;Declaração dinâmica de função:&amp;lt;br&amp;gt;&quot;;

if ($f == 1) {
    function f1()
    {
        echo &quot;funcao1&quot;;
    }
} else {
    function f2()
    {
        echo &quot;funcao2&quot;;
    }
}

echo &quot;Retornando o número de argumentos de uma função:&amp;lt;br&amp;gt;&quot;;

function ret_args_funcao()
{
    $numargs = func_num_args();
    echo &quot;Número de argumentos: $numargs&amp;lt;br&amp;gt;\n&quot;;
    if ($numargs &amp;gt;= 2) {
        echo &quot;Segundo argumento vale : &quot; . func_get_arg(1) . &quot;&amp;lt;br&amp;gt;\n&quot;;
    }
    $arg_list = func_get_args();
    for ($i = 0; $i &amp;lt; $numargs; $i++) {
        echo &quot;Argumento $i vale: &quot; . $arg_list[$i] . &quot;&amp;lt;br&amp;gt;\n&quot;;
    }
}

ret_args_funcao(1, 2, 3);

echo &quot;&amp;lt;pre&amp;gt;
Passando Argumentos através de Funções

O default é 'por valor', que passa uma cópia do valor da variável.

Também podemos passar 'por referência', onde se passa o endereço da própria variável. Quando atribuímos uma variável a utra passando como referência, não fazemos cópia alguma, mas sim passamos o endereço da variável original, portanto ualquer alteração nesta referência refletirá na variável original.

ByRef é mais eficiente em termos de memória ao lidar com variáveis e arrays grandes e também permite alterar o valor da variável original, o que não acontece com o ByVal, mas a vantagem de desempnho somente é percebida em grandes arrays em grandes loops.

Para maior segurança setar:

allow_call_time_pass_reference no php.ini

Impede a passagem de valores por referência nas chamadas, mas permite somente na definição das funções.

$var1 = &amp;amp; $var2;
Agora ambas apontam para o mesmo endereço e valor.

Reter valor de variáveis entre chamadas (static)
(Guarda o valor da última chamada até o final da execução do script, tantas vezes quantas a função for chamada).
&amp;lt;/pre&amp;gt;&quot;;


//Exemplo:

$valor = 4;
$ref = &amp;amp;$valor;

$ref = 3;

$valor = 4;
$ref = &amp;amp;$valor; // Aqui tornamos ambas as variáveis com o mesmo endereço
// O que alterarmos em $ref alteramos em $valor

$ref = 3;       // Com isso também alteramos $valor para 3, veja abaixo.
echo $valor . &quot;&amp;lt;br&amp;gt;&quot;;

$valor = 0;       // Com isso também alteramos $ref para 0, veja abaixo.

echo $ref;


echo &quot;Por Valor&amp;lt;br&amp;gt;&quot;;
function val_subtracao($num1, $num2)
{
    if ($num1 &amp;lt; $num2) {
        die(&quot;Números negativos&quot;);
    } else {
        $return_result = 0;
        while ($num1 &amp;gt; $num2) {
            $num1 = $num1 - 1;
            $return_result = $return_result + 1;
        }
    }
    return ($return_result);
}

$primeiro_op = 493;
$segundo_op = 355;
$resultado1 = val_subtracao($primeiro_op, $segundo_op);
print(&quot;Resultado1 é $resultado1&amp;lt;br&amp;gt;&quot;);
$resultado2 = val_subtracao($primeiro_op, $segundo_op);
print(&quot;Resultado2 é $resultado2&amp;lt;br&amp;gt;&quot;);

echo &quot;Por Referência&amp;lt;br&amp;gt;&quot;;
function subtracao_ref(&amp;amp;$num1, &amp;amp;$num2)
{
    if ($num1 &amp;lt; $num2) {
        die(&quot;Números negativos&quot;);
    } else {
        $return_result = 0;
        while ($num1 &amp;gt; $num2) {
            $num1 = $num1 - 1;
            $return_result = $return_result + 1;
        }
    }
    return ($return_result);
}

$primeiro_op = 493;
$segundo_op = 355;
$resultado1 = subtracao_ref($primeiro_op, $segundo_op);
print(&quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Resultado1 é $resultado1&amp;lt;br&amp;gt;&quot;);
$resultado2 = subtracao_ref($primeiro_op, $segundo_op);
print(&quot;Resultado2 é $resultado2&amp;lt;br&amp;gt;&quot;);

echo &quot;Agora, se se nós executarmos exatamente a mesma chamada da subtração como fizemos a primeira vez, receberemos a aída: resultado1 é 138 e resultado2 é 0&quot;;


/*
Sugestão de chamada de função:

if (nome_funcao($argumento){
	....
	....
}else{
	....
}

*/
?&amp;gt;

&amp;lt;?php
// Retorna o tipo e o valor de variável
function ss_as_string(&amp;amp;$thing, $column = 0)
{
    if (is_object($thing)) {
        return ss_object_as_string($thing, $column);
    } elseif (is_array($thing)) {
        return ss_array_as_string($thing, $column);
    } elseif (is_double($thing)) {
        return &quot;Double(&quot; . $thing . &quot;)&quot;;
    } elseif (is_long($thing)) {
        return &quot;Long(&quot; . $thing . &quot;)&quot;;
    } elseif (is_string($thing)) {
        return &quot;String(&quot; . $thing . &quot;)&quot;;
    } else {
        return &quot;Unknown(&quot; . $thing . &quot;)&quot;;
    }
}

// Retorna o tipo e o valor de array
function ss_array_as_string(&amp;amp;$array, $column = 0)
{
    $str = &quot;Array(&amp;lt;BR&amp;gt;\n&quot;;
    while (list($var, $val) = each($array)) {
        for ($i = 0; $i &amp;lt; $column + 1; $i++) {
            $str .= &quot;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&quot;;
        }
        $str .= $var . ' ==&amp;gt; ';
        $str .= ss_as_string($val, $column + 1) . &quot;&amp;lt;BR&amp;gt;\n&quot;;
    }
    for ($i = 0; $i &amp;lt; $column; $i++) {
        $str .= &quot;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&quot;;
    }
    return $str . ')';
}

// Retorna o tipo e o valor de objeto
function ss_object_as_string(&amp;amp;$object, $column = 0)
{
    if (empty($object-&amp;gt;classname)) {
        return &quot;$object&quot;;
    } else {
        $str = $object-&amp;gt;classname . &quot;(&amp;lt;BR&amp;gt;\n&quot;;
        while (list(, $var) = each($object-&amp;gt;persistent_slots)) {
            for ($i = 0; $i &amp;lt; $column; $i++) {
                $str .= &quot;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&quot;;
            }
            global $$var;
            $str .= $var . ' ==&amp;gt; ';
            $str .= ss_as_string($$var, column + 1) . &quot;&amp;lt;BR&amp;gt;\n&quot;;
        }
        for ($i = 0; $i &amp;lt; $column; $i++) {
            $str .= &quot;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&quot;;
        }
        return $str . ')';
    }
}

$var = &quot;Riba&quot;;
echo ss_as_string($var);
//echo ss_as_string($GLOBALS);


// Otimização do tempo de execução

function ss_timing_start($name = 'default')
{
    global $ss_timing_start_times;
    $ss_timing_start_times[$name] = explode(' ', microtime());
}

function ss_timing_stop($name = 'default')
{
    global $ss_timing_stop_times;
    $ss_timing_stop_times[$name] = explode(' ', microtime());
}

function ss_timing_current($name = 'default')
{
    global $ss_timing_start_times, $ss_timing_stop_times;
    if (!isset($ss_timing_start_times[$name])) {
        return 0;
    }
    if (!isset($ss_timing_stop_times[$name])) {
        $stop_time = explode(' ', microtime());
    } else {
        $stop_time = $ss_timing_stop_times[$name];
    }
    // do the big numbers first so the small ones aren't lost
    $current = $stop_time[1] - $ss_timing_start_times[$name][1];
    $current += $stop_time[0] - $ss_timing_start_times[$name][0];
    return $current;
}

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;</summary>
		<content type="html">&lt;p&gt;&lt;strong&gt;Trabalhando com Funções em PHP&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

echo &quot;&amp;lt;pre&amp;gt;
Funções são blocos de código, conjuntos de instruções, que ficam quietos,
sem vida, até que sejam chamadas em algum lugar do código.
Funções reduzem o trabalho de digitação, o tamanho dos scripts em geral,
os erros, reaproveitando código, facilitando e organizando o trabalho de
desenvolvimento.
&amp;lt;/pre&amp;gt;&quot;;

echo &quot;Exemplos de funções definidas pelo usuário&amp;lt;br&amp;gt;.&quot;;
function quadrado($numero)
{
    print $numero * $numero;
}

//Executando:
quadrado(6); // Saída: 36

echo &quot; Variáveis globais&amp;lt;br&amp;gt;&quot;;
$var1 = 5;

function testeGlobal1()
{
    $var1 = 1;
    print &quot;&amp;lt;br&amp;gt;Valor de \$var1: $var1&quot;;
}

echo testeGlobal1();
echo &quot;Variável externa acessível na função&amp;lt;br&amp;gt;&quot;;

$var2 = 10;
function testeGlobal2()
{
    global $var2;
    print &quot;&amp;lt;br&amp;gt;Valor de \$var2 $var2&quot;;
}

echo testeGlobal2();

$var5 = 15;

function testeGlobal5()
{
    $var5 = 5;
    print &quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;A variável global vale $GLOBALS[var5], &quot;;
    print &quot;Já a variável local vale $var5&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;
}

testeGlobal5();

function cliente($codigo, $idade = 18)
{
    print &quot;Código = $codigo, Idade = $idade&quot;;
}

cliente(1);  //Exibirá: Código = 1, Idade = 18

function cubo($num)
{
    return ($num * $num * $num);
}

$var1 = 2 * cubo(5);
echo &quot;&amp;lt;br&amp;gt;&quot; . $var1;

echo &quot;Variáveis estáticas&amp;lt;br&amp;gt;&quot;;

function contador()
{
    static $x = 0;
    return $x++;
}

echo &quot;&amp;lt;br&amp;gt;&quot;;
echo contador();
echo contador();
echo contador();
//A saída será: 012

function contador2()
{
    $x = 0;
    return $x++;
}

echo &quot;&amp;lt;br&amp;gt;&quot;;
echo contador2();
echo contador2();
echo contador2();

//A saída será: 000.

function staticfunction()
{
    static $count = 0;
    $count++;
    if ($count == 1) {
        echo &quot;A Função foi executada $count vez&amp;lt;br&amp;gt;&quot;;
    } else {
        echo &quot;A Função foi executada $count vezes&amp;lt;br&amp;gt;&quot;;
    }
}


for ($i = 0; $i &amp;lt; 5; $i++) {
    staticfunction();
}

function Teste1()
{
    static $a = 0;
    echo $a;
    $a++;
}

for ($x = 0; $x &amp;lt;= 10; $x++) {
    echo Teste1() . &quot; &quot;;
}

echo &quot;&amp;lt;br&amp;gt;&quot;;

echo &quot;Recursiva&amp;lt;br&amp;gt;&quot;;

function Teste()
{
    static $count = 0;

    $count++;
    echo $count . &quot; &quot;;
    if ($count &amp;lt; 10) {
        Teste();
    }
    $count--;
}

Teste();

echo &quot;Declarando variáveis static&amp;lt;br&amp;gt;&quot;;
function foo()
{
    static $int = 0;          // correro
    // static $int = 1+2;        // errado (é uma expressão)
    // static $int = sqrt(121);  // errado  (é uma expressão também)

    $int++;
    echo $int;
}


function aumentoSalario($sal, $perc = 5)
{
    $salario = $sal * $perc / 100;
    echo $salario;
}
echo &quot;&amp;lt;br&amp;gt;Aumento: &quot; . aumentoSalario(1956);

function redirecionar($url)
{
    header(&quot;Location: $url&quot;);
}
echo &quot;&amp;lt;br&amp;gt;&quot;;
redirecionar(&quot;http://ribafs.phpnet.us/&quot;);
echo &quot;&amp;lt;br&amp;gt;&quot;;

echo &quot;Retornar mais de um valor de uma função: usa-se arrays e list()
array() retorna e list() exibe &amp;lt;br&amp;gt;&quot;;

//Exemplo:

function recebe_hoje()
{
    $data_abreviada = date(&quot;d/m/Y&quot;);
    $data_extensa = date(&quot;l, d F \d\e Y&quot;);

    return array($data_abreviada, $data_extensa);
}

list($data_abreviada, $data_extensa) = recebe_hoje();
print $data_extensa;
echo &quot;&amp;lt;br&amp;gt;&quot;;
print $data_abreviada;


echo &quot;Declaração dinâmica de função:&amp;lt;br&amp;gt;&quot;;

if ($f == 1) {
    function f1()
    {
        echo &quot;funcao1&quot;;
    }
} else {
    function f2()
    {
        echo &quot;funcao2&quot;;
    }
}

echo &quot;Retornando o número de argumentos de uma função:&amp;lt;br&amp;gt;&quot;;

function ret_args_funcao()
{
    $numargs = func_num_args();
    echo &quot;Número de argumentos: $numargs&amp;lt;br&amp;gt;\n&quot;;
    if ($numargs &amp;gt;= 2) {
        echo &quot;Segundo argumento vale : &quot; . func_get_arg(1) . &quot;&amp;lt;br&amp;gt;\n&quot;;
    }
    $arg_list = func_get_args();
    for ($i = 0; $i &amp;lt; $numargs; $i++) {
        echo &quot;Argumento $i vale: &quot; . $arg_list[$i] . &quot;&amp;lt;br&amp;gt;\n&quot;;
    }
}

ret_args_funcao(1, 2, 3);

echo &quot;&amp;lt;pre&amp;gt;
Passando Argumentos através de Funções

O default é 'por valor', que passa uma cópia do valor da variável.

Também podemos passar 'por referência', onde se passa o endereço da própria variável. Quando atribuímos uma variável a utra passando como referência, não fazemos cópia alguma, mas sim passamos o endereço da variável original, portanto ualquer alteração nesta referência refletirá na variável original.

ByRef é mais eficiente em termos de memória ao lidar com variáveis e arrays grandes e também permite alterar o valor da variável original, o que não acontece com o ByVal, mas a vantagem de desempnho somente é percebida em grandes arrays em grandes loops.

Para maior segurança setar:

allow_call_time_pass_reference no php.ini

Impede a passagem de valores por referência nas chamadas, mas permite somente na definição das funções.

$var1 = &amp;amp; $var2;
Agora ambas apontam para o mesmo endereço e valor.

Reter valor de variáveis entre chamadas (static)
(Guarda o valor da última chamada até o final da execução do script, tantas vezes quantas a função for chamada).
&amp;lt;/pre&amp;gt;&quot;;


//Exemplo:

$valor = 4;
$ref = &amp;amp;$valor;

$ref = 3;

$valor = 4;
$ref = &amp;amp;$valor; // Aqui tornamos ambas as variáveis com o mesmo endereço
// O que alterarmos em $ref alteramos em $valor

$ref = 3;       // Com isso também alteramos $valor para 3, veja abaixo.
echo $valor . &quot;&amp;lt;br&amp;gt;&quot;;

$valor = 0;       // Com isso também alteramos $ref para 0, veja abaixo.

echo $ref;


echo &quot;Por Valor&amp;lt;br&amp;gt;&quot;;
function val_subtracao($num1, $num2)
{
    if ($num1 &amp;lt; $num2) {
        die(&quot;Números negativos&quot;);
    } else {
        $return_result = 0;
        while ($num1 &amp;gt; $num2) {
            $num1 = $num1 - 1;
            $return_result = $return_result + 1;
        }
    }
    return ($return_result);
}

$primeiro_op = 493;
$segundo_op = 355;
$resultado1 = val_subtracao($primeiro_op, $segundo_op);
print(&quot;Resultado1 é $resultado1&amp;lt;br&amp;gt;&quot;);
$resultado2 = val_subtracao($primeiro_op, $segundo_op);
print(&quot;Resultado2 é $resultado2&amp;lt;br&amp;gt;&quot;);

echo &quot;Por Referência&amp;lt;br&amp;gt;&quot;;
function subtracao_ref(&amp;amp;$num1, &amp;amp;$num2)
{
    if ($num1 &amp;lt; $num2) {
        die(&quot;Números negativos&quot;);
    } else {
        $return_result = 0;
        while ($num1 &amp;gt; $num2) {
            $num1 = $num1 - 1;
            $return_result = $return_result + 1;
        }
    }
    return ($return_result);
}

$primeiro_op = 493;
$segundo_op = 355;
$resultado1 = subtracao_ref($primeiro_op, $segundo_op);
print(&quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Resultado1 é $resultado1&amp;lt;br&amp;gt;&quot;);
$resultado2 = subtracao_ref($primeiro_op, $segundo_op);
print(&quot;Resultado2 é $resultado2&amp;lt;br&amp;gt;&quot;);

echo &quot;Agora, se se nós executarmos exatamente a mesma chamada da subtração como fizemos a primeira vez, receberemos a aída: resultado1 é 138 e resultado2 é 0&quot;;


/*
Sugestão de chamada de função:

if (nome_funcao($argumento){
	....
	....
}else{
	....
}

*/
?&amp;gt;

&amp;lt;?php
// Retorna o tipo e o valor de variável
function ss_as_string(&amp;amp;$thing, $column = 0)
{
    if (is_object($thing)) {
        return ss_object_as_string($thing, $column);
    } elseif (is_array($thing)) {
        return ss_array_as_string($thing, $column);
    } elseif (is_double($thing)) {
        return &quot;Double(&quot; . $thing . &quot;)&quot;;
    } elseif (is_long($thing)) {
        return &quot;Long(&quot; . $thing . &quot;)&quot;;
    } elseif (is_string($thing)) {
        return &quot;String(&quot; . $thing . &quot;)&quot;;
    } else {
        return &quot;Unknown(&quot; . $thing . &quot;)&quot;;
    }
}

// Retorna o tipo e o valor de array
function ss_array_as_string(&amp;amp;$array, $column = 0)
{
    $str = &quot;Array(&amp;lt;BR&amp;gt;\n&quot;;
    while (list($var, $val) = each($array)) {
        for ($i = 0; $i &amp;lt; $column + 1; $i++) {
            $str .= &quot;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&quot;;
        }
        $str .= $var . ' ==&amp;gt; ';
        $str .= ss_as_string($val, $column + 1) . &quot;&amp;lt;BR&amp;gt;\n&quot;;
    }
    for ($i = 0; $i &amp;lt; $column; $i++) {
        $str .= &quot;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&quot;;
    }
    return $str . ')';
}

// Retorna o tipo e o valor de objeto
function ss_object_as_string(&amp;amp;$object, $column = 0)
{
    if (empty($object-&amp;gt;classname)) {
        return &quot;$object&quot;;
    } else {
        $str = $object-&amp;gt;classname . &quot;(&amp;lt;BR&amp;gt;\n&quot;;
        while (list(, $var) = each($object-&amp;gt;persistent_slots)) {
            for ($i = 0; $i &amp;lt; $column; $i++) {
                $str .= &quot;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&quot;;
            }
            global $$var;
            $str .= $var . ' ==&amp;gt; ';
            $str .= ss_as_string($$var, column + 1) . &quot;&amp;lt;BR&amp;gt;\n&quot;;
        }
        for ($i = 0; $i &amp;lt; $column; $i++) {
            $str .= &quot;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&quot;;
        }
        return $str . ')';
    }
}

$var = &quot;Riba&quot;;
echo ss_as_string($var);
//echo ss_as_string($GLOBALS);


// Otimização do tempo de execução

function ss_timing_start($name = 'default')
{
    global $ss_timing_start_times;
    $ss_timing_start_times[$name] = explode(' ', microtime());
}

function ss_timing_stop($name = 'default')
{
    global $ss_timing_stop_times;
    $ss_timing_stop_times[$name] = explode(' ', microtime());
}

function ss_timing_current($name = 'default')
{
    global $ss_timing_start_times, $ss_timing_stop_times;
    if (!isset($ss_timing_start_times[$name])) {
        return 0;
    }
    if (!isset($ss_timing_stop_times[$name])) {
        $stop_time = explode(' ', microtime());
    } else {
        $stop_time = $ss_timing_stop_times[$name];
    }
    // do the big numbers first so the small ones aren't lost
    $current = $stop_time[1] - $ss_timing_start_times[$name][1];
    $current += $stop_time[0] - $ss_timing_start_times[$name][0];
    return $current;
}

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;</content>
		<category term="PHP" />
	</entry>
	<entry>
		<title>Trabalhando com Includes</title>
		<link rel="alternate" type="text/html" href="http://backup/portal/basicos/php/trabalhando-com-includes.html"/>
		<published>2017-06-23T11:07:07-03:00</published>
		<updated>2017-06-23T11:07:07-03:00</updated>
		<id>http://backup/portal/basicos/php/trabalhando-com-includes.html</id>
		<author>
			<name>Ribamar FS</name>
		</author>
		<summary type="html">&lt;p&gt;&lt;strong&gt;TRABALHANDO COM INCLUDES E REQUIRES NO PHP&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;INCLUDE&lt;/strong&gt; - inclue e avalia o conteúdo do arquivo.&lt;br /&gt;&lt;strong&gt;REQUIRE&lt;/strong&gt; - também inclue e avalia o conteúdo do arquivo incluído.&lt;br /&gt;A diferença entre ambos é que o include ao encontrar um erro, lança um warning apenas, &lt;br /&gt;enquanto que o require lança um Fatal Error, que pára o processamento.&lt;br /&gt;&lt;br /&gt;Uso do require: para códigos que requerem maior segurança.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;INCLUDE_ONCE e REQUIRE_ONCE&lt;/strong&gt; - são semelhantes ao include e require, sendo que estes incluem um arquivo somente uma única vez.&lt;br /&gt;&lt;br /&gt;Mostrando uso do require_once:&lt;br /&gt;&lt;br /&gt;echo.php&lt;br /&gt;&amp;lt;?php&lt;br /&gt;echo &quot;Hello&quot;;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;teste.php&lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;br /&gt;require('echo.php');&lt;br /&gt;require_once('echo.php');&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;Executar teste.php &lt;/p&gt;
&lt;p&gt;saída: &quot;Hello&quot;.&lt;br /&gt;&lt;br /&gt;Agora teste2.php:&lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;br /&gt;require('echo.php');&lt;br /&gt;require('echo.php');&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;Executar teste2.php &lt;/p&gt;
&lt;p&gt;saída: &quot;HelloHello&quot;.&lt;br /&gt;&lt;br /&gt;Agora teste3.php:&lt;br /&gt;&amp;lt;?php&lt;br /&gt;require_once('echo.php');&lt;br /&gt;require('echo.php');&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;Executar teste3.php &lt;br /&gt;saída: &quot;HelloHello&quot;.&lt;br /&gt;&lt;br /&gt;Ou seja, ao encontrar require_once, ele verifica se o arquivo já foi incluído, e somente o incluirá novamente se ele ainda não tiver sido incluído.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
// Isto está errado e não funcionará como desejado
if ($condition)
    include $arquivo;
else
    include $outro;


// E este está correto
if ($condition) {
    include $arquivo;
} else {
    include $outro;
}

?&amp;gt;

&amp;lt;?php
$path = &quot;/full/path/to/script/&quot;;
if (getdomain($path) == 'yourdomain') {
    include($path . 'somefile.php');
}
?&amp;gt;

&quot;variables.php&quot;
&amp;lt;?php
$includer = basename($_SERVER['SCRIPT_NAME']);

switch ($includer) {
    case 'a.php':
        $this_variable = 'included by script a.php';
        break;

    case 'b.php':
        $this_variable = 'included by script b.php';
        break;

    default:
        $this_variable = 'included by unkown script';
}
echo $this_variable;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;Test with 3 different files &quot;a.php&quot;, &quot;b.php&quot;, &quot;c.php&quot;, all with the same content:&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;include 'variables.php';&lt;br /&gt;?&amp;gt;&lt;/p&gt;</summary>
		<content type="html">&lt;p&gt;&lt;strong&gt;TRABALHANDO COM INCLUDES E REQUIRES NO PHP&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;INCLUDE&lt;/strong&gt; - inclue e avalia o conteúdo do arquivo.&lt;br /&gt;&lt;strong&gt;REQUIRE&lt;/strong&gt; - também inclue e avalia o conteúdo do arquivo incluído.&lt;br /&gt;A diferença entre ambos é que o include ao encontrar um erro, lança um warning apenas, &lt;br /&gt;enquanto que o require lança um Fatal Error, que pára o processamento.&lt;br /&gt;&lt;br /&gt;Uso do require: para códigos que requerem maior segurança.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;INCLUDE_ONCE e REQUIRE_ONCE&lt;/strong&gt; - são semelhantes ao include e require, sendo que estes incluem um arquivo somente uma única vez.&lt;br /&gt;&lt;br /&gt;Mostrando uso do require_once:&lt;br /&gt;&lt;br /&gt;echo.php&lt;br /&gt;&amp;lt;?php&lt;br /&gt;echo &quot;Hello&quot;;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;teste.php&lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;br /&gt;require('echo.php');&lt;br /&gt;require_once('echo.php');&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;Executar teste.php &lt;/p&gt;
&lt;p&gt;saída: &quot;Hello&quot;.&lt;br /&gt;&lt;br /&gt;Agora teste2.php:&lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;br /&gt;require('echo.php');&lt;br /&gt;require('echo.php');&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;Executar teste2.php &lt;/p&gt;
&lt;p&gt;saída: &quot;HelloHello&quot;.&lt;br /&gt;&lt;br /&gt;Agora teste3.php:&lt;br /&gt;&amp;lt;?php&lt;br /&gt;require_once('echo.php');&lt;br /&gt;require('echo.php');&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;Executar teste3.php &lt;br /&gt;saída: &quot;HelloHello&quot;.&lt;br /&gt;&lt;br /&gt;Ou seja, ao encontrar require_once, ele verifica se o arquivo já foi incluído, e somente o incluirá novamente se ele ainda não tiver sido incluído.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
// Isto está errado e não funcionará como desejado
if ($condition)
    include $arquivo;
else
    include $outro;


// E este está correto
if ($condition) {
    include $arquivo;
} else {
    include $outro;
}

?&amp;gt;

&amp;lt;?php
$path = &quot;/full/path/to/script/&quot;;
if (getdomain($path) == 'yourdomain') {
    include($path . 'somefile.php');
}
?&amp;gt;

&quot;variables.php&quot;
&amp;lt;?php
$includer = basename($_SERVER['SCRIPT_NAME']);

switch ($includer) {
    case 'a.php':
        $this_variable = 'included by script a.php';
        break;

    case 'b.php':
        $this_variable = 'included by script b.php';
        break;

    default:
        $this_variable = 'included by unkown script';
}
echo $this_variable;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;Test with 3 different files &quot;a.php&quot;, &quot;b.php&quot;, &quot;c.php&quot;, all with the same content:&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;include 'variables.php';&lt;br /&gt;?&amp;gt;&lt;/p&gt;</content>
		<category term="PHP" />
	</entry>
	<entry>
		<title>Trabalhando com Strings</title>
		<link rel="alternate" type="text/html" href="http://backup/portal/basicos/php/trabalhando-com-strings.html"/>
		<published>2017-06-23T11:07:07-03:00</published>
		<updated>2017-06-23T11:07:07-03:00</updated>
		<id>http://backup/portal/basicos/php/trabalhando-com-strings.html</id>
		<author>
			<name>Ribamar FS</name>
		</author>
		<summary type="html">&lt;p&gt;&lt;strong&gt;TRABALHANDO COM STRINGS E SUBSTRINGS NO PHP&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;substr&lt;/strong&gt; -- Retorna uma parte de uma string&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;string substr&lt;/strong&gt; ( string string, int start [, int length] )&lt;br /&gt;&lt;br /&gt;Exemplo 1. Uso basico de &lt;strong&gt;substr()&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$rest = substr(&quot;abcdef&quot;, 1); // retorna &quot;bcdef&quot;
$rest = substr(&quot;abcdef&quot;, 1, 3); // retorna &quot;bcd&quot;
$rest = substr(&quot;abcdef&quot;, 0, 4); // retorna &quot;abcd&quot;
$rest = substr(&quot;abcdef&quot;, 0, 8); // retorna &quot;abcdef&quot;

// Outra opção é acessar atravéz de chaves
$string = 'abcdef';
echo $string{0}; // retorna a
echo $string{3}; // retorna d
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;Se start for negativo, a string retornada irá começar no caractere start a partir do fim de string.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Exemplo 2. Usando um inicio negativo&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$rest = substr(&quot;abcdef&quot;, -1); // retorna &quot;f&quot;
$rest = substr(&quot;abcdef&quot;, -2); // retorna &quot;ef&quot;
$rest = substr(&quot;abcdef&quot;, -3, 1); // retorna &quot;d&quot;
?&amp;gt;

Exemplo 3. Usando um length negativo
&amp;lt;?php
$rest = substr(&quot;abcdef&quot;, 0, -1); // retorna &quot;abcde&quot;
$rest = substr(&quot;abcdef&quot;, 2, -1); // retorna &quot;cde&quot;
$rest = substr(&quot;abcdef&quot;, 4, -4); // retorna &quot;&quot;
$rest = substr(&quot;abcdef&quot;, -3, -1); // retorna &quot;de&quot;
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;SOBRESCREVENDO STRINGS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;str_replace&lt;br /&gt;str_replace -- Substitui todas as ocorrências da string de procura com a string de substituição &lt;br /&gt;mixed str_replace ( mixed pesquisa, mixed substitui, mixed assunto [, int &amp;amp;count] )&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
// Fornece: &amp;lt;body text='black'&amp;gt;
$bodytag = str_replace(&quot;%body%&quot;, &quot;black&quot;, &quot;&amp;lt;body text='%body%'&amp;gt;&quot;);

// Fornece: Hll Wrld f PHP
$vowels = array(&quot;a&quot;, &quot;e&quot;, &quot;i&quot;, &quot;o&quot;, &quot;u&quot;, &quot;A&quot;, &quot;E&quot;, &quot;I&quot;, &quot;O&quot;, &quot;U&quot;);
$onlyconsonants = str_replace($vowels, &quot;&quot;, &quot;Hello World of PHP&quot;);

// Fornece: você comeria pizza, cerveja e sorvete todos os dias
$frase = &quot;você comeria frutas, vegetais, e fibra todos os dias.&quot;;
$saldavel = array(&quot;frutas&quot;, &quot;vegetais&quot;, &quot;fibra&quot;);
$saboroso = array(&quot;pizza&quot;, &quot;cerveja&quot;, &quot;sorvete&quot;);

$novafrase = str_replace($saudavel, $saboroso, $frase);

// Uso do parâmetro count está disponível no PHP 5.0.0
$str = str_replace(&quot;ll&quot;, &quot;&quot;, &quot;good golly miss molly!&quot;, $count);
echo $count; // 2
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;substr_replace&lt;/strong&gt;&lt;br /&gt;substr_replace -- Substitui o texto dentro de uma parte de uma string&lt;br /&gt;string substr_replace ( string string, string replacement, int start [, int length] )&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$var = 'ABCDEFGH:/MNRPQR/';
echo &quot;Original: $var&amp;lt;hr&amp;gt;\n&quot;;

/* Estes dois exemplos substituem tudo de $var com 'bob'. */
echo substr_replace($var, 'bob', 0) . &quot;&amp;lt;br&amp;gt;\n&quot;;
echo substr_replace($var, 'bob', 0, strlen($var)) . &quot;&amp;lt;br&amp;gt;\n&quot;;

/* Insere 'bob' direto no começo de $var. */
echo substr_replace($var, 'bob', 0, 0) . &quot;&amp;lt;br&amp;gt;\n&quot;;

/* Estes dois exemplos substituem 'MNRPQR' em $var com 'bob'. */
echo substr_replace($var, 'bob', 10, -1) . &quot;&amp;lt;br&amp;gt;\n&quot;;
echo substr_replace($var, 'bob', -7, -1) . &quot;&amp;lt;br&amp;gt;\n&quot;;

/* Deleta 'MNRPQR' de $var. */
echo substr_replace($var, '', 10, -1) . &quot;&amp;lt;br&amp;gt;\n&quot;;
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ENCONTRAR POSIÇÃO DE STRING&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;strpos&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;strpos -- Encontra a posição da primeira ocorrência de uma string&lt;br /&gt;&lt;br /&gt;int strpos ( string str, string procurar [, int offset] )&lt;br /&gt;&lt;br /&gt;Exemplos strpos()&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
//$str = 'abc';
$str = 'cba';
$procurar = 'a';
$posicao = strpos($str, $procurar);

// Note o uso de ===. Simples == não funcionaria como esperado
// por causa da posição de 'a' é 0 (primeiro) caractere.
if ($pos === false) {
echo &quot;A string '$procurar' não foi encontrada na string '$str'&quot;;
} else {
echo &quot;A string '$procurar' foi encontrada na string '$str'&quot;;
echo &quot; e está na posição $posicao&quot;;
}

?&amp;gt;

&amp;lt;?php

//$email = 'ribafs@gmail.com.br';
$email = 'ribafs@gmail.com';
$usuario = substr ($email, 0, strpos ($email, '@'));
// Lembrando: substr ( string string, int start [, int length] )
$dominio = substr ($email, strpos ($email, '@')+1);
echo &quot;Usuário '$usuario' e Domínio '$dominio'&quot;; // o comprimento default é até o final
?&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;CONTANDO AS OCORRÊNCIAS DE SUBSTING EM STRING&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;substr_count&lt;/strong&gt; -- Conta o número de ocorrências de uma substring&lt;br /&gt;&lt;br /&gt;int substr_count ( string str, string conte_me )&lt;br /&gt;&lt;br /&gt;substr_count() retorna o número de vezes que a substring conte_me ocorre na string str. &lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$str = &quot;Olá mundo do PHP&quot;;

if (substr_count($str, &quot;do&quot;) == 0)
echo &quot;nenhum&quot;;

// same as:

if (strpos($str, &quot;do&quot;) === false)
echo &quot;nenhum&quot;;
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Exemplo 1. Exemplo substr_count()&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;br /&gt;print substr_count(&quot;This is a test&quot;, &quot;is&quot;); // mostra 2&lt;br /&gt;?&amp;gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;TROCANDO PONTO POR VÍRGULA E VICE-VERSA&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Se temos campos tipo moeda, devemos exibir com vírgula e gravar no banco com ponto.&lt;br /&gt;Para isso uma boa saída é usar a dupla de funções implode e explode.&lt;br /&gt;&lt;br /&gt;Antes de exibir na tela (em consultas):&lt;br /&gt;$f_custo_produtivo=explode(&quot;.&quot;,$f_custo_produtivo);&lt;br /&gt;$f_custo_produtivo=implode(&quot;,&quot;,$f_custo_produtivo); &lt;br /&gt;&lt;br /&gt;Antes de gravar no banco (inclusão e atualização):&lt;br /&gt;$f_custo_produtivo=explode(&quot;,&quot;,$f_custo_produtivo);&lt;br /&gt;$f_custo_produtivo=implode(&quot;.&quot;,$f_custo_produtivo);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;CONVERSÃO DE STRINGS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;$foo = 1 + &quot;10.5&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (11.5)&lt;br /&gt;$foo = 1 + &quot;-1.3e3&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (-1299)&lt;br /&gt;$foo = 1 + &quot;bob-1.3e3&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é integer (1)&lt;br /&gt;$foo = 1 + &quot;bob3&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é integer (1)&lt;br /&gt;$foo = 1 + &quot;10 Small Pigs&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é integer (11)&lt;br /&gt;$foo = 4 + &quot;10.2 Little Piggies&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (14.2)&lt;br /&gt;$foo = &quot;10.0 pigs &quot; + 1;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (11)&lt;br /&gt;$foo = &quot;10.0 pigs &quot; + 1.0;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (11)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;TRABALHANDO COM CARACTERES DE STRINGS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;// Pega o primeiro caracter da string&lt;br /&gt;$str = 'Isto é um teste.';&lt;br /&gt;$first = $str{0};&lt;br /&gt;echo $first.&quot;&amp;lt;br&amp;gt;&quot;;&lt;br /&gt;// Pega o terceiro caracter da string&lt;br /&gt;$third = $str{2};&lt;br /&gt;echo $third.&quot;&amp;lt;br&amp;gt;&quot;;&lt;br /&gt;// Pega o último caracter da string&lt;br /&gt;$str = 'Isto ainda é um teste.';&lt;br /&gt;$last = $str{strlen($str)-1};&lt;br /&gt;echo $last.&quot;&amp;lt;br&amp;gt;&quot;;&lt;br /&gt;// Modifica o ultimo caracter da string&lt;br /&gt;$str = 'Olhe o mal';&lt;br /&gt;echo $str{strlen($str)-1} = 'r';&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;VALIDAÇÃO DE CARACTERES&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;ctype_alnum&lt;br /&gt;ctype_alpha&lt;br /&gt;ctype_cntrl&lt;br /&gt;ctype_digit&lt;br /&gt;ctype_graph&lt;br /&gt;ctype_lower&lt;br /&gt;ctype_print&lt;br /&gt;ctype_punct&lt;br /&gt;ctype_space&lt;br /&gt;ctype_upper&lt;br /&gt;ctype_xdigit&lt;br /&gt;&lt;br /&gt;ctype_alnum - Checa por caracteres alfanuméricos&lt;br /&gt;&lt;br /&gt;$strings = array('AbCd1zyZ9', 'foo!#$bar');&lt;br /&gt;foreach ($strings as $testcase) {&lt;br /&gt; if (ctype_alnum($testcase)) {&lt;br /&gt; echo &quot;The string $testcase consists of all letters or digits.\n&quot;;&lt;br /&gt; } else {&lt;br /&gt; echo &quot;The string $testcase does not consist of all letters or digits.\n&quot;;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ctype_alpha - Checa por caracteres alfabéticos&lt;br /&gt;&lt;br /&gt;$strings = array('KjgWZC', 'arf12');&lt;br /&gt;foreach ($strings as $testcase) {&lt;br /&gt; if (ctype_alpha($testcase)) {&lt;br /&gt; echo &quot;The string $testcase consists of all letters.\n&quot;;&lt;br /&gt; } else {&lt;br /&gt; echo &quot;The string $testcase does not consist of all letters.\n&quot;;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;ctype_digit - Checa por caracteres numéricos&lt;br /&gt;&lt;br /&gt;$strings = array('1820.20', '10002', 'wsl!12');&lt;br /&gt;foreach ($strings as $testcase) {&lt;br /&gt; if (ctype_digit($testcase)) {&lt;br /&gt; echo &quot;The string $testcase consists of all digits.\n&quot;;&lt;br /&gt; } else {&lt;br /&gt; echo &quot;The string $testcase does not consist of all digits.\n&quot;;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;// Alerta: Ao executar veja que somente é válido quando todos são dígitos&lt;br /&gt;// Não é indicado para testar valores decimais, com ponto ou vírgula&lt;br /&gt;&lt;br /&gt;ctype_lower - Checa por caracteres minúsculos&lt;br /&gt;&lt;br /&gt;$strings = array('aac123', 'qiutoas', 'QASsdks');&lt;br /&gt;foreach ($strings as $testcase) {&lt;br /&gt; if (ctype_lower($testcase)) {&lt;br /&gt; echo &quot;The string $testcase consists of all lowercase letters.\n&quot;;&lt;br /&gt; } else {&lt;br /&gt; echo &quot;The string $testcase does not consist of all lowercase letters.\n&quot;;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ctype_punct - Checa por Caracteres que não sejam espaço em branco nem alfanuméricos&lt;br /&gt;&lt;br /&gt;$strings = array('ABasdk!@!$#', '!@ # $', '*&amp;amp;$()');&lt;br /&gt;foreach ($strings as $testcase) {&lt;br /&gt; if (ctype_punct($testcase)) {&lt;br /&gt; echo &quot;The string $testcase consists of all punctuation.\n&quot;;&lt;br /&gt; } else {&lt;br /&gt; echo &quot;The string $testcase does not consist of all punctuation.\n&quot;;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;ctype_space - Checa por espaços em branco&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Validação de Tipos&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt; intval&lt;br /&gt; is_array&lt;br /&gt; is_bool&lt;br /&gt; is_callable&lt;br /&gt; is_double&lt;br /&gt; is_float&lt;br /&gt; is_int&lt;br /&gt; is_integer&lt;br /&gt; is_long&lt;br /&gt; is_null&lt;br /&gt; is_numeric&lt;br /&gt; is_object&lt;br /&gt; is_real&lt;br /&gt; is_resource&lt;br /&gt; is_scalar&lt;br /&gt; is_string&lt;br /&gt; isset&lt;br /&gt; print_r&lt;br /&gt; serialize&lt;br /&gt; settype&lt;br /&gt; strval&lt;br /&gt; unserialize&lt;br /&gt; unset&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;CASES&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;strtoupper($str) - tudo maiúsculo&lt;br /&gt;strtolower($str) - tudo minúsculo&lt;br /&gt;ucfirst($str) - Converte para maiúscula o primeiro caractere de uma STRING&lt;br /&gt;ucwords($STR) - Converte para maiúsculas o primeiro caractere de cada PALAVRA&lt;/p&gt;</summary>
		<content type="html">&lt;p&gt;&lt;strong&gt;TRABALHANDO COM STRINGS E SUBSTRINGS NO PHP&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;substr&lt;/strong&gt; -- Retorna uma parte de uma string&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;string substr&lt;/strong&gt; ( string string, int start [, int length] )&lt;br /&gt;&lt;br /&gt;Exemplo 1. Uso basico de &lt;strong&gt;substr()&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$rest = substr(&quot;abcdef&quot;, 1); // retorna &quot;bcdef&quot;
$rest = substr(&quot;abcdef&quot;, 1, 3); // retorna &quot;bcd&quot;
$rest = substr(&quot;abcdef&quot;, 0, 4); // retorna &quot;abcd&quot;
$rest = substr(&quot;abcdef&quot;, 0, 8); // retorna &quot;abcdef&quot;

// Outra opção é acessar atravéz de chaves
$string = 'abcdef';
echo $string{0}; // retorna a
echo $string{3}; // retorna d
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;Se start for negativo, a string retornada irá começar no caractere start a partir do fim de string.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Exemplo 2. Usando um inicio negativo&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$rest = substr(&quot;abcdef&quot;, -1); // retorna &quot;f&quot;
$rest = substr(&quot;abcdef&quot;, -2); // retorna &quot;ef&quot;
$rest = substr(&quot;abcdef&quot;, -3, 1); // retorna &quot;d&quot;
?&amp;gt;

Exemplo 3. Usando um length negativo
&amp;lt;?php
$rest = substr(&quot;abcdef&quot;, 0, -1); // retorna &quot;abcde&quot;
$rest = substr(&quot;abcdef&quot;, 2, -1); // retorna &quot;cde&quot;
$rest = substr(&quot;abcdef&quot;, 4, -4); // retorna &quot;&quot;
$rest = substr(&quot;abcdef&quot;, -3, -1); // retorna &quot;de&quot;
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;SOBRESCREVENDO STRINGS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;str_replace&lt;br /&gt;str_replace -- Substitui todas as ocorrências da string de procura com a string de substituição &lt;br /&gt;mixed str_replace ( mixed pesquisa, mixed substitui, mixed assunto [, int &amp;amp;count] )&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
// Fornece: &amp;lt;body text='black'&amp;gt;
$bodytag = str_replace(&quot;%body%&quot;, &quot;black&quot;, &quot;&amp;lt;body text='%body%'&amp;gt;&quot;);

// Fornece: Hll Wrld f PHP
$vowels = array(&quot;a&quot;, &quot;e&quot;, &quot;i&quot;, &quot;o&quot;, &quot;u&quot;, &quot;A&quot;, &quot;E&quot;, &quot;I&quot;, &quot;O&quot;, &quot;U&quot;);
$onlyconsonants = str_replace($vowels, &quot;&quot;, &quot;Hello World of PHP&quot;);

// Fornece: você comeria pizza, cerveja e sorvete todos os dias
$frase = &quot;você comeria frutas, vegetais, e fibra todos os dias.&quot;;
$saldavel = array(&quot;frutas&quot;, &quot;vegetais&quot;, &quot;fibra&quot;);
$saboroso = array(&quot;pizza&quot;, &quot;cerveja&quot;, &quot;sorvete&quot;);

$novafrase = str_replace($saudavel, $saboroso, $frase);

// Uso do parâmetro count está disponível no PHP 5.0.0
$str = str_replace(&quot;ll&quot;, &quot;&quot;, &quot;good golly miss molly!&quot;, $count);
echo $count; // 2
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;substr_replace&lt;/strong&gt;&lt;br /&gt;substr_replace -- Substitui o texto dentro de uma parte de uma string&lt;br /&gt;string substr_replace ( string string, string replacement, int start [, int length] )&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$var = 'ABCDEFGH:/MNRPQR/';
echo &quot;Original: $var&amp;lt;hr&amp;gt;\n&quot;;

/* Estes dois exemplos substituem tudo de $var com 'bob'. */
echo substr_replace($var, 'bob', 0) . &quot;&amp;lt;br&amp;gt;\n&quot;;
echo substr_replace($var, 'bob', 0, strlen($var)) . &quot;&amp;lt;br&amp;gt;\n&quot;;

/* Insere 'bob' direto no começo de $var. */
echo substr_replace($var, 'bob', 0, 0) . &quot;&amp;lt;br&amp;gt;\n&quot;;

/* Estes dois exemplos substituem 'MNRPQR' em $var com 'bob'. */
echo substr_replace($var, 'bob', 10, -1) . &quot;&amp;lt;br&amp;gt;\n&quot;;
echo substr_replace($var, 'bob', -7, -1) . &quot;&amp;lt;br&amp;gt;\n&quot;;

/* Deleta 'MNRPQR' de $var. */
echo substr_replace($var, '', 10, -1) . &quot;&amp;lt;br&amp;gt;\n&quot;;
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ENCONTRAR POSIÇÃO DE STRING&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;strpos&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;strpos -- Encontra a posição da primeira ocorrência de uma string&lt;br /&gt;&lt;br /&gt;int strpos ( string str, string procurar [, int offset] )&lt;br /&gt;&lt;br /&gt;Exemplos strpos()&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
//$str = 'abc';
$str = 'cba';
$procurar = 'a';
$posicao = strpos($str, $procurar);

// Note o uso de ===. Simples == não funcionaria como esperado
// por causa da posição de 'a' é 0 (primeiro) caractere.
if ($pos === false) {
echo &quot;A string '$procurar' não foi encontrada na string '$str'&quot;;
} else {
echo &quot;A string '$procurar' foi encontrada na string '$str'&quot;;
echo &quot; e está na posição $posicao&quot;;
}

?&amp;gt;

&amp;lt;?php

//$email = 'ribafs@gmail.com.br';
$email = 'ribafs@gmail.com';
$usuario = substr ($email, 0, strpos ($email, '@'));
// Lembrando: substr ( string string, int start [, int length] )
$dominio = substr ($email, strpos ($email, '@')+1);
echo &quot;Usuário '$usuario' e Domínio '$dominio'&quot;; // o comprimento default é até o final
?&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;CONTANDO AS OCORRÊNCIAS DE SUBSTING EM STRING&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;substr_count&lt;/strong&gt; -- Conta o número de ocorrências de uma substring&lt;br /&gt;&lt;br /&gt;int substr_count ( string str, string conte_me )&lt;br /&gt;&lt;br /&gt;substr_count() retorna o número de vezes que a substring conte_me ocorre na string str. &lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$str = &quot;Olá mundo do PHP&quot;;

if (substr_count($str, &quot;do&quot;) == 0)
echo &quot;nenhum&quot;;

// same as:

if (strpos($str, &quot;do&quot;) === false)
echo &quot;nenhum&quot;;
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Exemplo 1. Exemplo substr_count()&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;br /&gt;print substr_count(&quot;This is a test&quot;, &quot;is&quot;); // mostra 2&lt;br /&gt;?&amp;gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;TROCANDO PONTO POR VÍRGULA E VICE-VERSA&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Se temos campos tipo moeda, devemos exibir com vírgula e gravar no banco com ponto.&lt;br /&gt;Para isso uma boa saída é usar a dupla de funções implode e explode.&lt;br /&gt;&lt;br /&gt;Antes de exibir na tela (em consultas):&lt;br /&gt;$f_custo_produtivo=explode(&quot;.&quot;,$f_custo_produtivo);&lt;br /&gt;$f_custo_produtivo=implode(&quot;,&quot;,$f_custo_produtivo); &lt;br /&gt;&lt;br /&gt;Antes de gravar no banco (inclusão e atualização):&lt;br /&gt;$f_custo_produtivo=explode(&quot;,&quot;,$f_custo_produtivo);&lt;br /&gt;$f_custo_produtivo=implode(&quot;.&quot;,$f_custo_produtivo);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;CONVERSÃO DE STRINGS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;$foo = 1 + &quot;10.5&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (11.5)&lt;br /&gt;$foo = 1 + &quot;-1.3e3&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (-1299)&lt;br /&gt;$foo = 1 + &quot;bob-1.3e3&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é integer (1)&lt;br /&gt;$foo = 1 + &quot;bob3&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é integer (1)&lt;br /&gt;$foo = 1 + &quot;10 Small Pigs&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é integer (11)&lt;br /&gt;$foo = 4 + &quot;10.2 Little Piggies&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (14.2)&lt;br /&gt;$foo = &quot;10.0 pigs &quot; + 1;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (11)&lt;br /&gt;$foo = &quot;10.0 pigs &quot; + 1.0;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (11)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;TRABALHANDO COM CARACTERES DE STRINGS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;// Pega o primeiro caracter da string&lt;br /&gt;$str = 'Isto é um teste.';&lt;br /&gt;$first = $str{0};&lt;br /&gt;echo $first.&quot;&amp;lt;br&amp;gt;&quot;;&lt;br /&gt;// Pega o terceiro caracter da string&lt;br /&gt;$third = $str{2};&lt;br /&gt;echo $third.&quot;&amp;lt;br&amp;gt;&quot;;&lt;br /&gt;// Pega o último caracter da string&lt;br /&gt;$str = 'Isto ainda é um teste.';&lt;br /&gt;$last = $str{strlen($str)-1};&lt;br /&gt;echo $last.&quot;&amp;lt;br&amp;gt;&quot;;&lt;br /&gt;// Modifica o ultimo caracter da string&lt;br /&gt;$str = 'Olhe o mal';&lt;br /&gt;echo $str{strlen($str)-1} = 'r';&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;VALIDAÇÃO DE CARACTERES&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;ctype_alnum&lt;br /&gt;ctype_alpha&lt;br /&gt;ctype_cntrl&lt;br /&gt;ctype_digit&lt;br /&gt;ctype_graph&lt;br /&gt;ctype_lower&lt;br /&gt;ctype_print&lt;br /&gt;ctype_punct&lt;br /&gt;ctype_space&lt;br /&gt;ctype_upper&lt;br /&gt;ctype_xdigit&lt;br /&gt;&lt;br /&gt;ctype_alnum - Checa por caracteres alfanuméricos&lt;br /&gt;&lt;br /&gt;$strings = array('AbCd1zyZ9', 'foo!#$bar');&lt;br /&gt;foreach ($strings as $testcase) {&lt;br /&gt; if (ctype_alnum($testcase)) {&lt;br /&gt; echo &quot;The string $testcase consists of all letters or digits.\n&quot;;&lt;br /&gt; } else {&lt;br /&gt; echo &quot;The string $testcase does not consist of all letters or digits.\n&quot;;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ctype_alpha - Checa por caracteres alfabéticos&lt;br /&gt;&lt;br /&gt;$strings = array('KjgWZC', 'arf12');&lt;br /&gt;foreach ($strings as $testcase) {&lt;br /&gt; if (ctype_alpha($testcase)) {&lt;br /&gt; echo &quot;The string $testcase consists of all letters.\n&quot;;&lt;br /&gt; } else {&lt;br /&gt; echo &quot;The string $testcase does not consist of all letters.\n&quot;;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;ctype_digit - Checa por caracteres numéricos&lt;br /&gt;&lt;br /&gt;$strings = array('1820.20', '10002', 'wsl!12');&lt;br /&gt;foreach ($strings as $testcase) {&lt;br /&gt; if (ctype_digit($testcase)) {&lt;br /&gt; echo &quot;The string $testcase consists of all digits.\n&quot;;&lt;br /&gt; } else {&lt;br /&gt; echo &quot;The string $testcase does not consist of all digits.\n&quot;;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;// Alerta: Ao executar veja que somente é válido quando todos são dígitos&lt;br /&gt;// Não é indicado para testar valores decimais, com ponto ou vírgula&lt;br /&gt;&lt;br /&gt;ctype_lower - Checa por caracteres minúsculos&lt;br /&gt;&lt;br /&gt;$strings = array('aac123', 'qiutoas', 'QASsdks');&lt;br /&gt;foreach ($strings as $testcase) {&lt;br /&gt; if (ctype_lower($testcase)) {&lt;br /&gt; echo &quot;The string $testcase consists of all lowercase letters.\n&quot;;&lt;br /&gt; } else {&lt;br /&gt; echo &quot;The string $testcase does not consist of all lowercase letters.\n&quot;;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ctype_punct - Checa por Caracteres que não sejam espaço em branco nem alfanuméricos&lt;br /&gt;&lt;br /&gt;$strings = array('ABasdk!@!$#', '!@ # $', '*&amp;amp;$()');&lt;br /&gt;foreach ($strings as $testcase) {&lt;br /&gt; if (ctype_punct($testcase)) {&lt;br /&gt; echo &quot;The string $testcase consists of all punctuation.\n&quot;;&lt;br /&gt; } else {&lt;br /&gt; echo &quot;The string $testcase does not consist of all punctuation.\n&quot;;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;ctype_space - Checa por espaços em branco&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Validação de Tipos&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt; intval&lt;br /&gt; is_array&lt;br /&gt; is_bool&lt;br /&gt; is_callable&lt;br /&gt; is_double&lt;br /&gt; is_float&lt;br /&gt; is_int&lt;br /&gt; is_integer&lt;br /&gt; is_long&lt;br /&gt; is_null&lt;br /&gt; is_numeric&lt;br /&gt; is_object&lt;br /&gt; is_real&lt;br /&gt; is_resource&lt;br /&gt; is_scalar&lt;br /&gt; is_string&lt;br /&gt; isset&lt;br /&gt; print_r&lt;br /&gt; serialize&lt;br /&gt; settype&lt;br /&gt; strval&lt;br /&gt; unserialize&lt;br /&gt; unset&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;CASES&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;strtoupper($str) - tudo maiúsculo&lt;br /&gt;strtolower($str) - tudo minúsculo&lt;br /&gt;ucfirst($str) - Converte para maiúscula o primeiro caractere de uma STRING&lt;br /&gt;ucwords($STR) - Converte para maiúsculas o primeiro caractere de cada PALAVRA&lt;/p&gt;</content>
		<category term="PHP" />
	</entry>
	<entry>
		<title>Dicas de PHP</title>
		<link rel="alternate" type="text/html" href="http://backup/portal/basicos/php/dicas-de-php.html"/>
		<published>2017-06-23T11:07:07-03:00</published>
		<updated>2017-06-23T11:07:07-03:00</updated>
		<id>http://backup/portal/basicos/php/dicas-de-php.html</id>
		<author>
			<name>Ribamar FS</name>
		</author>
		<summary type="html">&lt;p&gt;&lt;strong&gt;Listar Arquivos e Diretórios com PHP&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;https://github.com/halgatewood/file-directory-list&quot;&gt;https://github.com/halgatewood/file-directory-list&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;br /&gt;&lt;strong&gt;Manipulando forms com PHP&lt;/strong&gt;&lt;br /&gt;&lt;a href=&quot;http://phpbrasil.com/artigo/UONRvMiYUJl4/1/manipulando-dados-de-formularios-com-php-parte-1&quot;&gt;http://phpbrasil.com/artigo/UONRvMiYUJl4/1/manipulando-dados-de-formularios-com-php-parte-1&lt;/a&gt; &lt;br /&gt;&lt;a href=&quot;http://phpbrasil.com/artigo/bOZXY_2zRlcO/manipulando-dados-de-formularios-com-php-parte-2-upload-de-arquivos&quot;&gt;http://phpbrasil.com/artigo/bOZXY_2zRlcO/manipulando-dados-de-formularios-com-php-parte-2-upload-de-arquivos&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Gerando Imagens Dinamicamente&lt;/strong&gt;&lt;br /&gt;&lt;a href=&quot;http://www.phpbrasil.com/artigo/bfBQNhBOsxhl/gerando-imagens-dinamicamente&quot;&gt;http://www.phpbrasil.com/artigo/bfBQNhBOsxhl/gerando-imagens-dinamicamente&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;PDO&lt;/strong&gt;&lt;br /&gt;&lt;a href=&quot;http://php.net/manual/en/book.pdo.php&quot;&gt;http://php.net/manual/en/book.pdo.php&lt;/a&gt; &lt;br /&gt;&lt;a href=&quot;https://github.com/ribafs/pdolib&quot;&gt;https://github.com/ribafs/pdolib&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;PHP do Jeito Certo&lt;/strong&gt;&lt;br /&gt;&lt;a href=&quot;http://br.phptherightway.com/&quot;&gt;http://br.phptherightway.com/&lt;/a&gt;&lt;/p&gt;


&lt;p&gt; &lt;/p&gt;</summary>
		<content type="html">&lt;p&gt;&lt;strong&gt;Listar Arquivos e Diretórios com PHP&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;https://github.com/halgatewood/file-directory-list&quot;&gt;https://github.com/halgatewood/file-directory-list&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;br /&gt;&lt;strong&gt;Manipulando forms com PHP&lt;/strong&gt;&lt;br /&gt;&lt;a href=&quot;http://phpbrasil.com/artigo/UONRvMiYUJl4/1/manipulando-dados-de-formularios-com-php-parte-1&quot;&gt;http://phpbrasil.com/artigo/UONRvMiYUJl4/1/manipulando-dados-de-formularios-com-php-parte-1&lt;/a&gt; &lt;br /&gt;&lt;a href=&quot;http://phpbrasil.com/artigo/bOZXY_2zRlcO/manipulando-dados-de-formularios-com-php-parte-2-upload-de-arquivos&quot;&gt;http://phpbrasil.com/artigo/bOZXY_2zRlcO/manipulando-dados-de-formularios-com-php-parte-2-upload-de-arquivos&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Gerando Imagens Dinamicamente&lt;/strong&gt;&lt;br /&gt;&lt;a href=&quot;http://www.phpbrasil.com/artigo/bfBQNhBOsxhl/gerando-imagens-dinamicamente&quot;&gt;http://www.phpbrasil.com/artigo/bfBQNhBOsxhl/gerando-imagens-dinamicamente&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;PDO&lt;/strong&gt;&lt;br /&gt;&lt;a href=&quot;http://php.net/manual/en/book.pdo.php&quot;&gt;http://php.net/manual/en/book.pdo.php&lt;/a&gt; &lt;br /&gt;&lt;a href=&quot;https://github.com/ribafs/pdolib&quot;&gt;https://github.com/ribafs/pdolib&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;PHP do Jeito Certo&lt;/strong&gt;&lt;br /&gt;&lt;a href=&quot;http://br.phptherightway.com/&quot;&gt;http://br.phptherightway.com/&lt;/a&gt;&lt;/p&gt;


&lt;p&gt; &lt;/p&gt;</content>
		<category term="PHP" />
	</entry>
	<entry>
		<title>Tutorial de PHP</title>
		<link rel="alternate" type="text/html" href="http://backup/portal/basicos/php/tutorial-de-php.html"/>
		<published>2017-06-23T11:07:07-03:00</published>
		<updated>2017-06-23T11:07:07-03:00</updated>
		<id>http://backup/portal/basicos/php/tutorial-de-php.html</id>
		<author>
			<name>Ribamar FS</name>
		</author>
		<summary type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;TUTORIAL DE PHP ESTRUTURADO&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Este tutorial teve como principal fonte de informações o manual oficial do PHP.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;1 - INTRODUÇÃO&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;O Que é PHP?&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;É uma linguagem de script, Open Source, de uso geral, no lado do servidor, embutível no HTML e especialmente voltada para o desenvolvimento Web. Originalmente chamou-se PHP (Personal Home Page) mas depois teve seu nome alterado pela comunidade para PHP: Hypertext Processor, um acrônimo recursivo.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Um pequeno script em PHP&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;lt;?php&lt;br /&gt; echo &quot;Script em PHP!&quot;;&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Em março/2006 ele já está presente em mais de 20 milhões de domínios ao redor do planeta (&lt;a href=&quot;http://www.php.net/usage.php&quot;&gt;http://www.php.net/usage.php&lt;/a&gt;).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;strong&gt; Estatísticas sobre o PHP:&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://www.nexen.net/chiffres_cles/phpversion/php_statistics_for_april_2006.php&quot;&gt;http://www.nexen.net/chiffres_cles/phpversion/php_statistics_for_april_2006.php&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;História do PHP&lt;/strong&gt;&lt;br /&gt; - Criado em 1995 por Rasmus Lerdorf, na forma de scripts Perl para coletar estatísticas online de seu currículo. Com um interpretador em C e comunicação com SGBDs.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Versão 2 aparece em novembro de 1997, quando recebe seu nome inicial e é enriquecido com um interpretador de formulários (FI) - PHP/FI. Teve seu código fonte disponibilizado para a comunidade. Contava com 50.000 domínios que o utilizavam (em torno de 1% dos existentes na época).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Versão 3 sai em seguida, logo em julho de 1998. Similar ao PHP atual, esta versão foi totalmente reescrita por Andi Gutmans e Zeev Suraski, programadores israelenses. Inicia o suporte à orientação a objetos e a sua extensibilidade, que atraiu muitos programadores. Rebatizado de PHP: Hypertext Processor. Já estava presente em 10% dos servidores web da Internet.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Versão 4 sai em maio de 2000. Melhora de performance, suporte a muitos servidores web, a session, entre outros. Já está presente em 20% dos domínios da Internet.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Versão 5 sai em julho de 2004. Seu foco principal é a orientação a objetos, que corrije deficiências e traz novos e amplos recursos para a orientação a objetos.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Delimitadores do PHP&lt;/strong&gt;&lt;br /&gt; Para que o interpretador reconheça quando tem que interpretar o script em PHP e quando não, usa-se delimitadores para que quando os encontre ele interprete corretamente. Quando ele encontra o delimitador &amp;lt;?php ele começa a processar como PHP e quando encontra ?&amp;gt; ele pára de processar e tudo o mais envia para o browser como está. Existem outros tipos de delimitadores do PHP mas estes &amp;lt;?php ... ?&amp;gt; são os recomendados, por serem os mais abrangentes e terem suporte inclusive a XML.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Forças do PHP&lt;/strong&gt;&lt;br /&gt; - Sua simplicitade é muito importante para o programador que se inicia no PHP.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Seus recursos atendem ao programador experiente.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Sua documentação rica em conteúdo e exemplos facilita a solução de problemas, além da busca online.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- O suporte de maneira simples à maioria dos SGBDs do mercado atende às necessidades de sites dinâmicos com acesso a bancos de dados.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;O Que é Possível Realizar em PHP?&lt;/strong&gt;&lt;br /&gt; - Em sendo uma linguagem de uso geral, podemos realizar praticamente qualquer atividade realizada com outra linguagem. Ele roda no lado servidor, como aplicação Web e também roda no lado cliente, com o PHP-GTK.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Existem edições para os principais sistemas operacionais (Linux, BSDs, Windows, Mac OS X, etc).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Suportado pela maioria dos servidores Web, especialmente pelo Apache.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Bom suporte à orientação a objetos, em especial com a chegada da versão 5.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Comunicação com Java.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Suporte aos principais SGBDs do mercado (MySQL, PostgreSQL, Oracle, SQL Server, etc), atualmente são mais de vinte os suportados.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Suporte a LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (em Windows somente), a IRC, compressão (gzip, bz2, rar), PDF, GD, Flash, XML, etc..&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;2 - TUTORIAL SIMPLES&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Para continuar você deve ter um servidor web instalado e com suporte a PHP e, caso queira usar bancos de dados, instale um SGBD.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Os arquivos em PHP somente funcionam corretamente no navegador, se estivem no diretório reconhecido pelo servidor web, que é o DocumentRoot. Considerando que o PHP e Apache tenham sido instalados com o Xampp e que o diretório web seja o default, este fica em:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;C:\Arquivos de Programas\Xampp\htdocs&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Além disso qualquer script que contenha algo em PHP deve ter a extensão .php para que seja corretamente processado pelo Apache.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Criar um arquivo chamado olamundo.php na pasta C:\Arquivos de Programas\Xampp\htdocs, com o conteúdo:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;lt;?php&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;echo &quot;Olá PHP!&quot;;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;?&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Startar o Apache e abrir no browser assim:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;http://127.0.0.1/olamundo.php&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Visualizar resultado de script PHP no Browser&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Após ter executado o olamundo.php no Browser solicite a visualização do código fonte da página exibida.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Veja que nada chega de PHP. O PHP é processado no servidor e envia apenas o resultado em HTML para o browser.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Alerta sobre Editores e Processadores de Texto com PHP &lt;br /&gt; Para criar scripts PHP evite o uso de processadores de texto e de editores como o Bloco de Notas, pois deixam sujeira no código e dificultam o salvamento do arquivo.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Preferentemente use uma IDE especializada em PHP, que inclusive tem outros recursos úteis, a exemplo do PHPEclipse ou um editor de texto como o freeware Win32pad.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;strong&gt; Informações sobre o PHP&lt;/strong&gt; &lt;br /&gt; Para obter diversas informações úteis sobre o PHP instalado no seu servidor, execute um script com a função:&lt;br /&gt; &lt;br /&gt; &amp;lt;?php&lt;br /&gt; phpinfo();&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Checar navegador em uso&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;if (strstr($_SERVER[&quot;HTTP_USER_AGENT&quot;], &quot;MSIE&quot;)) {&lt;br /&gt; echo &quot;Seu navegador é o Internet Explorer!&quot;;&lt;br /&gt; } else {&lt;br /&gt; echo &quot;Seu navegador não é o IE!&quot;;&lt;br /&gt; }&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;strstr - procura substrings.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Teste com echo e print:&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;lt;?php&lt;br /&gt; // Teste de echo e print&lt;br /&gt; //print &quot;primeiro, &quot;, &quot;segundo&quot;; // Gera erro de parser&lt;br /&gt; echo &quot;primeiro, &quot;, &quot;segundo, &quot;, &quot;terceiro&quot;; //Funciona&lt;br /&gt; // Ou seja, print pode trabalhar apenas com uma string de cada vez e echo com várias&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;print retorna valor enquanto que echo não retorna.&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt; &amp;lt;?php&lt;br /&gt; $print = print &quot;&quot;;&lt;br /&gt; echo &quot;Retorno do print: &quot; . $print;&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Agora teste esse:&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;lt;?php&lt;br /&gt; $echo = echo &quot;&quot;;&lt;br /&gt; echo &quot;Retorno do echo: &quot; . $echo;&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Irá receber um erro fatal (do parser).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;3 - CONFIGURAÇÕES&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;php.ini&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;register_globals = off (por questões de segurança)&lt;br /&gt; No Xampp o php.ini traz register_globals ativo por default.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;GD, pgsql, mysql e outras extensões que queira usar deverá descomentar no php.ini, seção Extensions.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;httpd.conf&lt;br /&gt; Para poder alterar o diretório web default deverá mudar dois parâmetros no arquivo httpd.conf do Apache:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;DocumentRoot “/opt/lampp/htdocs”&lt;br /&gt; &amp;lt;Directory &quot;/opt/lampp/htdocs&quot;&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Os diretórios acima são para a edição for Linux do Xampp. Para o Windows observe que o Apache utiliza, não barras, que são utilizadas neste SO, mas sim contra-barras e as vezes contra-barras duplas.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;No caso queremos mudar o diretório default para /home/www, então alteramos o httpd.conf para que fique assim:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;DocumentRoot “/home/www”&lt;br /&gt; &amp;lt;Directory &quot;/home/www&quot;&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;No Windows fica assim:&lt;br /&gt; DocumentRoot &quot;c:/Arquivos de Programas/Xampp/htdocs&quot;&lt;br /&gt; &amp;lt;Directory &quot;&amp;lt;c:/Arquivos de Programas/Xampp/htdocs&quot;&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Que devem ficar assim:&lt;br /&gt; DocumentRoot &quot;c:/1www&quot;&lt;br /&gt; &amp;lt;Directory &quot;&amp;lt;c:/1www&quot;&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Configuração das extensões suportadas. Altere a linha: &lt;br /&gt; DirectoryIndex index.html index.html.var index.php index.php3 index.php4&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Veja que acima configurou-se para perceber inclusive arquivos com as extensões .php3 e .php4.&lt;br /&gt; Caso não fossem incluídas, arquivos com extensão .php3 e .php4 não poderiam ser abertos neste servidor.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;4 - REFERÊNCIA DA LINGUAGEM&lt;/strong&gt;&lt;br /&gt; Separador de Instruções&lt;br /&gt; O ponto e vírgula ; é o separador de instruções em PHP (como em Perl e em C).&lt;br /&gt; Sempre que uma instrução terminar devemos digitar um ponto e vírgula (echo &quot;ola&quot;; ).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Comentários&lt;/strong&gt;&lt;br /&gt; Em PHP podemos usar 3 tipos de comentários (/* ... */, // e #) mas devemos utilizar somente os dois primeiros e o primeiro é o mais eficiente, que é o /* ... */, que veio do C, já que # está em processo de obsolescência. Ou seja, devemos usar // ou /* ... */, de preferência este último.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;5 - TIPOS DE DADOS &lt;/strong&gt;&lt;br /&gt; O PHP suporta os oito tipos primitivos:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- boolean, integer, float e string (básicos)&lt;br /&gt; - array e object (compostos)&lt;br /&gt; - resource e NULL (especiais)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;float é sinônimo de double em PHP.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Tipo de Variável &lt;/strong&gt;&lt;br /&gt; O tipo de uma variável em PHP não é controlado pelo programador, depende do valor da variável e é avaliado em tempo de execução. Não é permitido ao programador declarar o tipo de variáveis.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Funções que Retornal o Tipo&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;gettype&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;todas as is_type&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Casting&lt;br /&gt; (tipo) variavel;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Boleanos&lt;br /&gt; Pode ser TRUE ou FALSE (case-insensitive)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
echo gettype((bool) &quot;&quot;).&quot;&amp;lt;br&amp;gt;&quot;; // bool(false)
echo gettype((bool) 1).&quot;&amp;lt;br&amp;gt;&quot;; // bool(true)
echo gettype((bool) -2).&quot;&amp;lt;br&amp;gt;&quot;; // bool(true)
echo gettype((bool) &quot;foo&quot;).&quot;&amp;lt;br&amp;gt;&quot;; // bool(true)
echo gettype((bool) 2.3e5).&quot;&amp;lt;br&amp;gt;&quot;; // bool(true)
echo gettype((bool) array(12)).&quot;&amp;lt;br&amp;gt;&quot;; // bool(true)
echo gettype((bool) array()).&quot;&amp;lt;br&amp;gt;&quot;; // bool(false)
?&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong style=&quot;text-align: justify;&quot;&gt;Convertendo Explicitamente para Boleano &lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Usa-se o modificador (bool) ou (boolean).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Valores que são considerados FALSE&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;FALSE, 0, 0.0, &quot;0&quot;, &quot;&quot;, array vazio, objeto sem membros e NULL (e variáveis indefinidas).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Os demais são TRUE&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Inteiros&lt;br /&gt; Em PHP, inteiro é um número do conjunto matemático dos Inteiros (Z), que contem os negativos, o zero e os positivos.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Em PHP os inteiros podem ser decimais, octais ou hexadecimais.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;octal - precedido por 0.&lt;br /&gt; hexadecimal - precedido por 0x.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$a =1234;
echo $a.&quot;&amp;lt;br&amp;gt;&quot;; // número decimal
$a =-123;
echo $a.&quot;&amp;lt;br&amp;gt;&quot;; // um número negativo
$a =0123;
echo $a.&quot;&amp;lt;br&amp;gt;&quot;; // número octal (equivalente a 83 em decimal)
$a =0x1A;
echo $a.&quot;&amp;lt;br&amp;gt;&quot;; // número hexadecimal (equivalente a 26 em decimal)
?&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;O tamanho dos inteiros depende da plataforma e é de 32 bits com sinal. O PHP não suporta inteiros sem sinal.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Overflow - caso seja especificado um número inteiro além dos limites, será interpretado como flutuante.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Convertendo Explicitamente para Inteiro&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Usar o modificador (int) ou (integer).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ou com a função intval().&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;De boleanos - FALSE será retornado como 0 e TRUE como 1.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;De flutuantes - ao converter para inteiros serão truncados&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;De strings - A string será avaliada como um ponto flutuante se contiver qualquer um dos caracteres '.', 'e', ou 'E'. Em outros casos, ela será avaliada como um inteiro.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;De outros tipos - não têm precisão, exatidão, portanto é melhor evitar.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Alerta: &lt;br /&gt; echo (int) ((0.1 + 0.7 ) * 10); // Exibirá 7 ao invés do esperado 8&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Ponto Flutuante&lt;/strong&gt;&lt;br /&gt; É o float, double ou real.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplos:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;1.234 ou 1.2e3 ou 7E-10&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$a = 1.234;
echo $a.&quot;&amp;lt;br&amp;gt;&quot;;
$b = 1.2e3;
echo $b.&quot;&amp;lt;br&amp;gt;&quot;;
$c = 7E-4;
echo $c;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong style=&quot;text-align: justify;&quot;&gt;O tamanho de um float depende também da plataforma e é de 64bits no formato IEEE(*).&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Nunca compare números em ponto flutuante em igualdades, sob pena de cometer erros.&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;* - (Wikipedia - &lt;a href=&quot;http://pt.wikipedia.org&quot;&gt;http://pt.wikipedia.org&lt;/a&gt; )O Instituto de Engenheiros Eletricistas e Eletrônicos ou IEEE (pronuncia-se I-3-E ) é uma organização profissional sem fins lucrativos, fundada nos &lt;a title=&quot;Estados Unidos da América&quot; href=&quot;http://pt.wikipedia.org/wiki/Estados_Unidos_da_Am%C3%A9rica&quot;&gt;Estados Unidos&lt;/a&gt;. É a maior (em número de sócios) organização profissional do mundo. O IEEE foi formado em &lt;a title=&quot;1963&quot; href=&quot;http://pt.wikipedia.org/wiki/1963&quot;&gt;1963&lt;/a&gt; pela fusão do &lt;a title=&quot;Instituto de Engenheiros de Rádio&quot; href=&quot;http://pt.wikipedia.org/w/index.php?title=Instituto_de_Engenheiros_de_R%C3%A1dio&amp;amp;action=edit&quot;&gt;Instituto de Engenheiros de Rádio&lt;/a&gt; (IRA) com o &lt;a title=&quot;Instituto Americano de Engenheiros Elétricistas&quot; href=&quot;http://pt.wikipedia.org/w/index.php?title=Instituto_Americano_de_Engenheiros_El%C3%A9tricistas&amp;amp;action=edit&quot;&gt;Instituto Americano de Engenheiros Elétricistas&lt;/a&gt; (AIEE). O IEEE tem filiais em muitas partes do mundo, sendo seus sócios engenheiros eletricistas, engenheiros da computação, cientistas da computação, profissionais de telecomunicações etc. Sua meta é promover conhecimento no campo da &lt;a title=&quot;Engenharia eléctrica&quot; href=&quot;http://pt.wikipedia.org/wiki/Engenharia_el%C3%A9ctrica&quot;&gt;engenharia elétrica&lt;/a&gt;, &lt;a title=&quot;Engenharia eletrônica&quot; href=&quot;http://pt.wikipedia.org/wiki/Engenharia_eletr%C3%B4nica&quot;&gt;eletrônica&lt;/a&gt; e &lt;a title=&quot;Ciência da computação&quot; href=&quot;http://pt.wikipedia.org/wiki/Ci%C3%AAncia_da_computa%C3%A7%C3%A3o&quot;&gt;computação&lt;/a&gt;. Um de seus papéis mais importantes é o estabelecimento de padrões para formatos de &lt;a title=&quot;Computadores&quot; href=&quot;http://pt.wikipedia.org/wiki/Computadores&quot;&gt;computadores&lt;/a&gt; e &lt;a title=&quot;Dispositivo&quot; href=&quot;http://pt.wikipedia.org/w/index.php?title=Dispositivo&amp;amp;action=edit&quot;&gt;dispositivos&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Strings&lt;/strong&gt;&lt;br /&gt; Em PHP um caractere ocupa um byte. Até a versão 5 o PHP não tem suporte a UNICODE, mas está previsto este suporte para a próxima versão (Fonte: Wikipedia - http://www.wikipedia.org).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Não há limite para o tamanho de uma string em PHP.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Especificando Strings:&lt;br /&gt; - apóstrofos (chamados de aspas simples ' )&lt;br /&gt; - aspas (chamadas de aspas duplas &quot; )&lt;br /&gt; - heredoc (&amp;lt;&amp;lt;&amp;lt;)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
echo 'isto é uma string comum';
echo 'Você pode incluir novas linhas em strings,
dessa maneira que estará
tudo bem';

// Imprime: Arnold disse uma vez: &quot;I\'ll be back&quot;
echo 'Arnold once said: &quot;I\'ll be back&quot;';

// Imprime: Você tem certeza em apagar C:\*.*?
echo 'Você tem certeza em apagar C:\\*.*?';

// Imprime: Você tem certeza em apagar C:\*.*?
echo 'Você tem certeza em apagar C:\*.*?';

// Imprime: Isto não será substituido: \n uma nova linha
echo 'Isto não será substituido: \n uma nova linha';

// Imprime: Variaveis $também não $expandem
echo 'Variaveis $também não $expandem';

echo '&amp;lt;br&amp;gt;------------&amp;lt;br&amp;gt;';

$str = &amp;lt;&amp;lt;&amp;lt;EOD
Exemplo de uma string
distribuída em várias linhas
utilizando a sintaxe heredoc.
EOD;

/* Exemplo mais complexo, com variáveis */
class foo
{
var $foo;
var $bar;

function foo()
{
$this-&amp;gt;foo = 'Foo';
$this-&amp;gt;bar = array('Bar1', 'Bar2', 'Bar3');
}
}

$foo = new foo();
$name = 'Meu nome';

echo &amp;lt;&amp;lt;&amp;lt;EOT
Meu nome é &quot;$name&quot;. Eu estou imprimindo $foo-&amp;gt;foo.
Agora, eu estou imprimindo {$foo-&amp;gt;bar[1]}.
Isto deve imprimir um 'A' maiúsculo: \x41
EOT;
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;6 - VARIÁVEIS &lt;/strong&gt;&lt;br /&gt; Em PHP as variáveis são iniciadas por um sinal de dólar $.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Variáveis Predefinidas&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;São as que já vêm definidas no próprio PHP. A função phpinfo() mostra também estas variáveis.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Com o PHP 4.2 o valor default da diretiva register_globals passou a ser off. Com isso as variáveis passaram a ser acessadas de forma diferente e muitos scripts deixaram de funcionar quanto tiveram o PHP atualizado e outros novos scripts não funcionaram devido esperar uma semelhante a anteerior.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On Off&lt;br /&gt; =======================================================&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;$DOCUMENT_ROOT $_SERVER['DOCUMENT_ROOT'];&lt;br /&gt; $HOME $_ENV['HOME'];&lt;br /&gt; $GLOBALS&lt;br /&gt; $_SERVER&lt;br /&gt; $_GET&lt;br /&gt; $_POST&lt;br /&gt; $_REQUEST&lt;br /&gt; $_SESSION&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Obs.: Agora, como o default do PHP é register_globals = Off, faz-se necessário usar $_POST['nomecampo'], para receber o valor de um campo de form em script PHP.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Escopo de Variáveis &lt;/strong&gt;&lt;br /&gt; O escopo de uma variável é o contexto onde ela foi definida e geralmente o escopo é local.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;$a = 1;&lt;br /&gt; include (&quot;teste.php&quot;);&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;// $a estará disponível, será vista por teste.php, pois foi definida antes.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;include (&quot;teste.php&quot;);&lt;br /&gt; $a = 1;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;// Aqui, como $a foi definida após a inclusão, não será visto pelo teste.php&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Escopo de variáveis em funções &lt;/strong&gt;&lt;br /&gt; A palavra-chave global pode preceder uma variável para tornar seu escopo global, como também $GLOBALS[].&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplos:&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&amp;lt;?php&lt;br /&gt; $a = 1; /* escopo global */&lt;br /&gt; &lt;br /&gt; function Teste(){&lt;br /&gt; echo $a; /* referencia uma variável do escopo local (não definida) */&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; Teste();&lt;br /&gt; ?&amp;gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt; &amp;lt;?php&lt;br /&gt; $a = 1; /* escopo global */&lt;br /&gt; &lt;br /&gt; function Teste(){&lt;br /&gt; global $a;&lt;br /&gt; echo $a; /* referencia a variável do escopo global */&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; Teste();&lt;br /&gt; ?&amp;gt;&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Usando $GLOBALS no lugar de global&lt;/strong&gt;&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&amp;lt;?php&lt;br /&gt; $a = 1;&lt;br /&gt; $b = 2;&lt;br /&gt; &lt;br /&gt; function Soma(){&lt;br /&gt; $GLOBALS[&quot;b&quot;] = $GLOBALS[&quot;a&quot;] + $GLOBALS[&quot;b&quot;];&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; Soma();&lt;br /&gt; echo $b;&lt;br /&gt; ?&amp;gt;&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Utilizando Variáveis Estáticas&lt;/strong&gt;&lt;br /&gt; Variáveis estáticas guardam o valor de variáveis entre execuções de funções.&lt;br /&gt; Ao fechar o programa, ao fechar ou atualizar o browser, o valor da variável se perde.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt; Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
function Teste (){
$a = 0;
echo $a;
$a++;
}

for ($x=1;$x&amp;lt;10;$x++){
Teste();
}
echo &quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;

function Teste2(){
static $a = 0;
echo $a;
$a++;
}

for ($x=1;$x&amp;lt;10;$x++){
Teste2();
}

echo &quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;

// Função recursiva
function Teste3()
{
static $count = 0;

$count++;
echo $count;
if ($count &amp;lt; 10) {
Teste3 ();
}
$count--;
}

for ($x=1;$x&amp;lt;5;$x++){
Teste3();
if ($x &amp;lt; 4) echo &quot; - &quot;;

}

echo &quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;
//Declarando variáveis static

function foo(){
static $int = 0; // correro
//static $int = 1+2; // errado (é uma expressão)
//static $int = sqrt(121); // wrong (é uma expressão também)

$int++;
echo $int;
}

foo();

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Variáveis Variáveis&lt;/strong&gt;&lt;br /&gt; São variáveis cujos nomes podem ser criados dinamicamente.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Variável comun -&amp;gt; $variavel;&lt;br /&gt; Variável variável -&amp;gt; $$variavelvariavel;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ela torna o valor de uma variável e o trata como se fosse o nome de uma variável. &lt;br /&gt; Obs.: variáveis variáveis não podem ser utilizadas com os arrays superglobais.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Determiando o Tipo das Variáveis &lt;/strong&gt;&lt;br /&gt; gettype&lt;br /&gt; is_array, is_float, is_int, is_object, is_string, is_numeric&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;7 - CONSTANTES&lt;/strong&gt;&lt;br /&gt; O valor de uma constante não pode ser alterado durante a execução do script.&lt;br /&gt; Convenciona-se usar o nome de constantes com todas as letras em maiúsculas.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;define (&quot;NOME&quot;, &quot;valor&quot;);&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplos:&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
// Nomes de constantes válidos
define(&quot;FOO&quot;, &quot;alguma coisa&quot;);
define(&quot;FOO2&quot;, &quot;alguma outra coisa&quot;);
define(&quot;FOO_BAR&quot;, &quot;mais alguma outra coisa&quot;)

// Nomes de constantes inválidas
define(&quot;2FOO&quot;, &quot;alguma coisa&quot;);

// Isto é válido, mas deve ser evitado:
// O PHP pode vir a fornercer uma constante mágica
// que danificará seu script
define(&quot;__FOO__&quot;, &quot;alguma coisa&quot;);

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Obs.: Somente dados escalares (bolean, integer, float, e string) podem ser armazanados nos valores de constantes.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;A função constant() retorna o valor de uma constante.&lt;br /&gt; A função get_defined_constantes() retorna todas as constantes definidas.&lt;br /&gt; Enquanto que defined() checa se uma constante foi definida.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;define (NOME, valor);&lt;br /&gt; define (&quot;PESO&quot;, 70);&lt;br /&gt; print &quot;O peso vale &quot; . PESO . &quot; KG&quot;;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
switch (PHP_OS){
case &quot;WIN32&quot;:
echo &quot;Sistema Windows&quot;;
break;
case &quot;Linux&quot;:
echo &quot;Sistema Linux&quot;;
break;
case &quot;OS/2&quot;:
echo &quot;Sistema OS/2&quot;;
break;
default:
echo &quot;Sistema não é Windows, Linux nem OS/2&quot;;
break;
}
?&amp;gt;

&amp;lt;?php
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
echo 'Este é um servidor usando Windows!';
} else {
echo 'Este é um servidor que não usa Windows!';
}
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Constantes Mágicas&lt;/strong&gt;&lt;br /&gt; Essas são as cinco constantes &quot;mágicas&quot;, que mudam dependendo de onde elas são utilizadas. Por exemplo, o valor de &lt;tt&gt;__LINE__&lt;/tt&gt; depende do número da linha em que é utilizada em seu script. Essas constantes especiais são insensíveis ao caso:&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;p&gt;Algumas constantes &quot;mágicas&quot; do PHP&lt;/p&gt;
&lt;table border=&quot;1&quot;&gt;&lt;colgroup&gt;&lt;col /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Nome&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;tt&gt;__LINE__&lt;/tt&gt;&lt;/td&gt;
&lt;td&gt;A linha atual do script.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;tt&gt;__FILE__&lt;/tt&gt;&lt;/td&gt;
&lt;td&gt;O caminho completo e nome do arquivo. Se utilizado dentro de um include, o nome do arquivo incluído será retornado.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;tt&gt;__FUNCTION__&lt;/tt&gt;&lt;/td&gt;
&lt;td&gt;O nome da função (Acrescentado no PHP 4.3.0). A partir do PHP 5 esta constante retorna o nome da função como ela foi declarada (sensível a maiúsculas e minúsculas). No PHP 4 sempre retorna o nome em minúsculas.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;tt&gt;__CLASS__&lt;/tt&gt;&lt;/td&gt;
&lt;td&gt;O nome da classe (Acrescentado no PHP 4.3.0). A partir do PHP 5 esta constante retorna o nome da função como ela foi declarada (sensível a maiúsculas e minúsculas). No PHP 4 sempre retorna o nome em minúsculas.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;tt&gt;__METHOD__&lt;/tt&gt;&lt;/td&gt;
&lt;td&gt;O nome do método de classe. (Acrescentado no PHP 5.0.0). O nome do método é retornado como foi declarado (sensível a maiúsculas e minúsculas).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Veja também &lt;a href=&quot;http://www.php.net/manual/pt_BR/function.get-class.php&quot;&gt;get_class()&lt;/a&gt;, &lt;a href=&quot;http://www.php.net/manual/pt_BR/function.get-object-vars.php&quot;&gt;get_object_vars()&lt;/a&gt;, &lt;a href=&quot;http://www.php.net/manual/pt_BR/function.file-exists.php&quot;&gt;file_exists()&lt;/a&gt;, e &lt;a href=&quot;http://www.php.net/manual/pt_BR/function.function-exists.php&quot;&gt;function_exists()&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;br /&gt;8 - EXPRESSÕES &lt;/strong&gt;&lt;br /&gt; Uma expressão é qualquer coisa que tem um valor, normalmente na forma de constantes ou variáveis.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;$a = 5;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Temos acima uma equação formada por duas expressões, a da esquerda composta por uma variável e a da direita composta por uma constante.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Funções são expressões cujo valor é igual ao seu valor de retorno. &lt;br /&gt; O PHP é uma linguagem orientada as expressões. &lt;br /&gt; Atribuições são analisadas da direita para a esquerda.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;$b = $a = 5; // $a recebe 5 e então $b recebe 5&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplo:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
function dobro($i){
return $i*2;
}
$b = $a = 5;echo $b.&quot;&amp;lt;br&amp;gt;&quot;; /* atribui o valor cinco às variáveis $a e $b */
$c = $a++;echo $c.&quot;&amp;lt;br&amp;gt;&quot;; /* pós-incremento, atribui o valor original de $a
(5) para $c */
$e = $d = ++$b;echo $e.&quot;&amp;lt;br&amp;gt;&quot;; /* pré-incremento, atribui o valor incrementado de
$b (6) a $d e $e */

/* neste ponto, tanto $d quanto $e são iguais a 6 */

$f = dobro($d++);echo $f.&quot;&amp;lt;br&amp;gt;&quot;; /* atribui o dobro do valor de $d antes
do incremento, 2*6 = 12 a $f */
$g = dobro(++$e);echo $g.&quot;&amp;lt;br&amp;gt;&quot;; /* atribui o dobro do valor de $e depois
do incremento, 2*7 = 14 a $g */
$h = $g += 10;echo $h.&quot;&amp;lt;br&amp;gt;&quot;; /* primeiro, $g é incrementado de 10 e termina com o
valor 24. o valor da atribuição (24) é
então atribuído a $h, e $h termina com o valor
24 também. */
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;9 - OPERADORES &lt;/strong&gt;&lt;br /&gt; Um operador é algo que alimentado com um ou mais valores devolve outro valor. Assim as funções e outros construtores que retornam valor são operadores.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Tipos de Operadores&lt;/strong&gt;&lt;br /&gt; - unários - operam apenas em um valor (!, ++, ...)&lt;br /&gt; - binários - operam em dois valores (+, - , ...)&lt;br /&gt; - ternário - selecionar entre 2 valores, dependendo de um terceiro. Emglobá-los entre parênteses facilita o entendimento.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Precedência de Operadores &lt;/strong&gt;&lt;br /&gt; A precedência de um operador em relação a outro diz que um operador deve ser executado antes do outro.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplo:&lt;br /&gt; 1 + 5 * 3&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Dependendo da precedência dos operadores + ou * teremos resultados diferentes.&lt;br /&gt; Se o operador + tiver precedência superior ao * então resolveremos assim:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Somamos 1 + 5 e somente depois multiplicamos por 3 -&amp;gt; (1+5)*3 = 6*3 = 18&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Este resultado está incorreto, pois o operador * tem precedência superior ao + e deveria ser assim: &lt;br /&gt; 1+(5*3) = 1+15=16&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Para facilitar a percepção das precedências usa-se parêntesis:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;1 + (5 * 3) = Sempre devemos resolver antes o que estiver entre parêntesis.&lt;br /&gt; 1 + 15 = 16 (Neste caso fica mais claro).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Veja a tabela contendo a precedência de dos operadores do PHP, da maior precedência para a menor:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;* e / têm precedência sobre + e -.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Obs.: Para uma relação completa das precedências veja o manual oficial no site do PHP.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;strong&gt; Operadores Aritméticos&lt;/strong&gt;&lt;br /&gt; São os operadores correspondentes às quatro operações comuns da matemática adicionados ao operador módulo:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;• soma (+)&lt;br /&gt; • subtração (-)&lt;br /&gt; • multiplicação (*)&lt;br /&gt; • divisão (/)&lt;br /&gt; • módulo (%)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;O módulo é o resto de um número dividido por outro.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplos de operadores aritméticos:&lt;/p&gt;
&lt;pre&gt;$a = 9;&lt;br /&gt;$b = 4;&lt;br /&gt;echo &quot;\$a + \$b = &quot;.($a + $b); // 13&lt;br /&gt;echo &quot;\$a + \$b = &quot;.$a + $b; // Retorna 4, pois após o ponto é considerado strings&lt;br /&gt;echo &quot;\$a - \$b = &quot;.($a - $b); // 5&lt;br /&gt;echo &quot;\$a * \$b = &quot;.$a * $b; // 36&lt;br /&gt;echo &quot;\$a / \$b = &quot;.$a / $b; // 2.25 - Divisão Quociente de $a por $b.&lt;br /&gt;echo &quot;\$a % \$b = &quot;.$a % $b; // 1 - Resto de $a por $b&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Operadores de Atribuição&lt;/strong&gt;&lt;br /&gt; O operador básico de atribuição é o sinal de igualdade =.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplo:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;$x = $y + 3; // O que representa: 3 será adicionado a $y e o resultado será atribuído a $x&lt;br /&gt; $a = 3;&lt;br /&gt; $a += 5; // Que é semelhante a $a = $a + 5;&lt;br /&gt; $b = &quot;Bom &quot;;&lt;br /&gt; $b .= &quot;Dia!&quot;; // Similar a $b = $b . &quot;Dia!&quot;;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$a = 3;
$a += 5; // $a recebe 5 e soma com seus 3, tipo: $a = $a + 5;
echo &quot;\$a vale &quot; . $a;

$b = &quot;Bom &quot;;
$b .= &quot;Dia!&quot;; // $b fica com &quot;Bom Dia!&quot;, como em $b = $b . &quot;Dia!&quot;;
echo &quot;\$b vale &quot; . $b;

$c=2;
$a -= $c; //$a = $a - $c Subtração
echo &quot;\$a -= \$c vale &quot; . $a;
$a *= $c; //$a = $a * $c Multiplicação
echo &quot;\$a *= \$c vale &quot; . $a;
$a /= $c; //$a = $a / $c Divisão
echo &quot;\$a /= \$c vale &quot; . $a;
$resto = $a % $c; //$a = $a % $c Módulo (resto)
echo &quot;Resto de $a % $c vale: &quot; . $resto;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;strong&gt; Operadores de Controle de Erro&lt;/strong&gt;&lt;br /&gt; Representado pelo símbolo de arroba @. Quando precede uma expressão ele abafa as mensagens de erro.&lt;br /&gt; Observação - Somente funciona em expressões, ou seja, em qualquer construção que retorne algo.&lt;br /&gt; &lt;br /&gt; Recomendação - Deixar todas as mensagens de erro originais do PHP livres em ambientes de desenvolvimento (de testes). Somente utilizar @ em ambiente de produção, após executar os testes.&lt;br /&gt; &lt;br /&gt; Exemplos:&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
/* Erro intencional */
$a = 6;
$b = 0;

echo &quot;Camuflando erro de divisão por zero&quot;;
$c = @($a / $b);
?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;div&gt; &lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;strong&gt; Operadores de Execução&lt;/strong&gt;&lt;br /&gt; Existem algumas funções de execução de programas (shell_exec e outras) como também existe um operador, que é formado por dois sinais de crase` `.&lt;br /&gt; &lt;br /&gt; Nota: Caso safe_mode esteja desativado no php.ini como também shell_exec() então o operador de execução também fica dasativado.&lt;br /&gt; &lt;br /&gt; Exemplo:&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

// Em PHP a crase ` é um operador de execução de arquivos do SO

// Como em scripts bash

// Exibir todos os arquivos do diretório atual, inclusive os ocultos

if (PHP_OS == &quot;WINNT&quot;){

$output = `dir/o/p`;

echo &quot;&amp;lt;pre&amp;gt;$output&amp;lt;/pre&amp;gt;&quot;;

} elseif (PHP_OS == &quot;Linux){

$output = `ls -la`;

echo &quot;&amp;lt;pre&amp;gt;$output&amp;lt;/pre&amp;gt;&quot;;

}else{

echo &quot;Você está usando um SO diferente de Linux e de Windows!&quot;

}

?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt; Operadores de Incremento e de Decremento&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Os operadores de pré e pós-incremento/decremento são suportados pelo PHP.&lt;/p&gt;
&lt;p&gt;++$a (pré-incremento) - Primeiro incrementa $a de 1, depois retorna $a incrementado&lt;/p&gt;
&lt;p&gt;$a++ (pós-incremento) - Primeiro retorna $a, depois incrementa $a de 1&lt;/p&gt;
&lt;p&gt;--$a (pré-decremento) - Primeiro decrementa $a de 1, depois retorna $a decrementado&lt;/p&gt;
&lt;p&gt;$a-- (pós-decremento) - Primeiro retorna $a, depois decrementa $a de 1&lt;/p&gt;
&lt;p&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

echo &quot;&amp;lt;h3&amp;gt;Pós-incremento&amp;lt;/h3&amp;gt;&quot;;

$a = 5;

echo &quot;\$a = &quot;.$a.&quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;

echo &quot;\$a++ deve ser: &quot; . $a++ . &quot;&amp;lt;br /&amp;gt;\n&quot;;

echo &quot;\$a deve ser: &quot; . $a . &quot;&amp;lt;br /&amp;gt;\n&quot;;

echo &quot;&amp;lt;h3&amp;gt;Pré-incremento&amp;lt;/h3&amp;gt;&quot;;

$a = 5;

echo &quot;++\$a deve ser: &quot; . ++$a . &quot;&amp;lt;br /&amp;gt;\n&quot;;

echo &quot;\$a deve ser: &quot; . $a . &quot;&amp;lt;br /&amp;gt;\n&quot;;

echo &quot;&amp;lt;h3&amp;gt;Pós-decremento&amp;lt;/h3&amp;gt;&quot;;

$a = 5;

echo &quot;\$a-- deve ser: &quot; . $a-- . &quot;&amp;lt;br /&amp;gt;\n&quot;;

echo &quot;\$a deve ser: &quot; . $a . &quot;&amp;lt;br /&amp;gt;\n&quot;;

echo &quot;&amp;lt;h3&amp;gt;Pré-decremento&amp;lt;/h3&amp;gt;&quot;;

$a = 5;

echo &quot;--\$a deve ser: &quot; . --$a . &quot;&amp;lt;br /&amp;gt;\n&quot;;

echo &quot;\$a deve ser: &quot; . $a . &quot;&amp;lt;br /&amp;gt;\n&quot;;

?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt; Operadores Lógicos&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Utilizados para comparar duas expressões e o resultado será TRUE ou FALSE.&lt;/p&gt;
&lt;p&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$a = true; $b = FALSE; // true e false são insensitivos

echo ($a and $b)? &quot;T&amp;lt;br&amp;gt;&quot;:&quot;F&amp;lt;br&amp;gt;&quot;; //E Verdadeiro (TRUE) se tanto $a quanto $b são verdadeiros.

echo ($a or $b)? &quot;T&amp;lt;br&amp;gt;&quot;:&quot;F&amp;lt;br&amp;gt;&quot;; //OU Verdadeiro se $a ou $b são verdadeiros.

echo ($a xor $b)? &quot;T&amp;lt;br&amp;gt;&quot;:&quot;F&amp;lt;br&amp;gt;&quot;; //XOR Verdadeiro se $a ou $b são verdadeiros, mas não ambos.

echo (! $a)? &quot;T&amp;lt;br&amp;gt;&quot;:&quot;F&amp;lt;br&amp;gt;&quot;; //NÃO Verdadeiro se $a não é verdadeiro.

echo ($a &amp;amp;&amp;amp; $b)? &quot;T&amp;lt;br&amp;gt;&quot;:&quot;F&amp;lt;br&amp;gt;&quot;; //E Verdadeiro se tanto $a quanto $b são verdadeiros.

echo ($a || $b)? &quot;T&amp;lt;br&amp;gt;&quot;:&quot;F&amp;lt;br&amp;gt;&quot;; //OU Verdadeiro se $a ou $b são verdadeiros.

?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt; Operadores de String&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Strings em PHP são concatenadas com o operador ponto final &quot;.&quot;.&lt;/p&gt;
&lt;p&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$a = &quot;Olá &quot;;

$b = $a . &quot;mundo do PHP!&quot;;

echo $b;

$a = &quot;Olá &quot;;

$a .= &quot;meu mundo!&quot;;

echo &quot;&amp;lt;br&amp;gt;&quot; . $a;

?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt; Convertendo strings em números&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-markup&quot;&gt;&lt;code&gt;&amp;lt;?php

$foo = 1 + &quot;10.5&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (11.5)

$foo = 1 + &quot;-1.3e3&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (-1299)

$foo = 1 + &quot;bob-1.3e3&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é integer (1)

$foo = 1 + &quot;bob3&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é integer (1)

$foo = 1 + &quot;10 Small Pigs&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é integer (11)

$foo = 4 + &quot;10.2 Little Piggies&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (14.2)

$foo = &quot;10.0 pigs &quot; + 1;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (11)

$foo = &quot;10.0 pigs &quot; + 1.0;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (11)

?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt; Operações com Strings&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

// Pega o primeiro caracter da string

$str = 'Isto é um teste.';

$first = $str{0};

echo $first.&quot;&amp;lt;br&amp;gt;&quot;;

// Pega o terceiro caracter da string

$third = $str{2};

echo $third.&quot;&amp;lt;br&amp;gt;&quot;;

// Pega o último caracter da string

$str = 'Isto ainda é um teste.';

$last = $str{strlen($str)-1};

echo $last.&quot;&amp;lt;br&amp;gt;&quot;;

// Modifica o ultimo caracter da string

$str = 'Olhe o mal';

echo $str{strlen($str)-1} = 'r';

?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt; Operadores com Arrays&lt;/strong&gt;&lt;/p&gt;
&lt;table border=&quot;1&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;p&gt;Exemplo&lt;/p&gt;
&lt;/th&gt;
&lt;th&gt;
&lt;p&gt;Nome&lt;/p&gt;
&lt;/th&gt;
&lt;th&gt;
&lt;p&gt;Resultado&lt;/p&gt;
&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;$a + $b&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;União&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;União de $a e $b.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;$a == $b&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Igualdade&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;tt&gt;TRUE&lt;/tt&gt; se $a e $b tem os mesmos elementos.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;$a === $b&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Identidade&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;tt&gt;TRUE&lt;/tt&gt; se $a e $b tem os mesmos elementos na mesma ordem.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;$a != $b&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Desigualdade&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;tt&gt;TRUE&lt;/tt&gt; se $a não é igual a $b.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;$a &amp;lt;&amp;gt; $b&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Desigualdade&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;tt&gt;TRUE&lt;/tt&gt; se $a não é igual a $b.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;$a !== $b&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Não identidade&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;tt&gt;TRUE&lt;/tt&gt; se $a não é identico a $b.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;O operador + acrescenta o array da direita no array da esquerda, contudo, chaves duplicadas NÃO são sobrescritas.&lt;/p&gt;
&lt;p&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$a = array(&quot;a&quot; =&amp;gt; &quot;maçã&quot;, &quot;b&quot; =&amp;gt; &quot;banana&quot;);
$b = array(&quot;a&quot; =&amp;gt;&quot;pêra&quot;, &quot;b&quot; =&amp;gt; &quot;framboesa&quot;, &quot;c&quot; =&amp;gt; &quot;morango&quot;);

$c = $a + $b; // Uniao de $a e $b
echo &quot;União de \$a e \$b: \n&quot;;
var_dump($c);

$c = $b + $a; // União de $b e $a
echo &quot;União de \$b e \$a: \n&quot;;
var_dump($c);
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Observar que na união de $a+$b o valor de &quot;b&quot; é banana em $a, ele não foi sobrescrito por framboesa de $b.&lt;/p&gt;
&lt;p&gt;Assim como framboesa &quot;b&quot; em $b não foi substituído por banana de $a na união de $b+$a.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; 10 - ESTRUTURAS DE CONTROLE&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As principais estruturas para controlar o fluxo dos scripts PHP.&lt;/p&gt;
&lt;p&gt;if, else, elseif, while, do... while, for, break, consinue e switch.&lt;/p&gt;
&lt;p&gt;Um script PHP é formado por instruções (cada instrução termina com ;).&lt;/p&gt;
&lt;p&gt;Uma instrução pode ser:&lt;/p&gt;
&lt;p&gt;- uma atribuição&lt;/p&gt;
&lt;p&gt;- uma chamada de função&lt;/p&gt;
&lt;p&gt;- um laço (loop)&lt;/p&gt;
&lt;p&gt;- uma instrução condicional&lt;/p&gt;
&lt;p&gt;- até uma instrução nula (;;).&lt;/p&gt;
&lt;p&gt;As instruções podem ser agrupadas com chaves, formando blocos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; if - uma construção muito importante e versátil. Permite a execução condicional de fragmentos de código.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sintaxe:&lt;/p&gt;
&lt;p&gt;if (expressao) {&lt;/p&gt;
&lt;p&gt;instrucoes;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;expressao - é avaliada como TRUE ou FALSE&lt;/p&gt;
&lt;p&gt;- Se TRUE as instrucoes serão executadas&lt;/p&gt;
&lt;p&gt;- Se FALSE as instrucoes serão ignoradas&lt;/p&gt;
&lt;p&gt;Exemplos:&lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;br /&gt; $a = 5;&lt;br /&gt; $b = 3;&lt;br /&gt; if ($a &amp;gt; $b){&lt;br /&gt; echo &quot;a é maior que b&quot;;&lt;br /&gt; }&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; else - executa instrucoes2 caso expressao seja FALSE.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sintaxe:&lt;/p&gt;
&lt;p&gt;if (expressao) {&lt;/p&gt;
&lt;p&gt;instrucoes;&lt;/p&gt;
&lt;p&gt;} else {&lt;/p&gt;
&lt;p&gt;instrucoes2;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;Exemplos:&lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;/p&gt;
&lt;p&gt;$a = 3;&lt;/p&gt;
&lt;p&gt;$b = 5;&lt;/p&gt;
&lt;p&gt;if ($a &amp;gt; $b){&lt;/p&gt;
&lt;p&gt;echo &quot;a é maior que b&quot;;&lt;/p&gt;
&lt;p&gt;} else {&lt;/p&gt;
&lt;p&gt;echo &quot;a NÃO é maior que b&quot;;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;?&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; elseif - é uma combinação de if com else. Caso a expressao do if seja FALSE então o elseif testa a expresao2, se esta for TRUE instrucoes2 serão executadas, caso contrário instrucoes3 serão executadas.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sintaxe:&lt;/p&gt;
&lt;p&gt;if (expressao) {&lt;/p&gt;
&lt;p&gt;instrucoes;&lt;/p&gt;
&lt;p&gt;} elseif (expressao2) {&lt;/p&gt;
&lt;p&gt;instrucoes2;&lt;/p&gt;
&lt;p&gt;} else {&lt;/p&gt;
&lt;p&gt;instrucoes3;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;/p&gt;
&lt;p&gt;$a = 3;&lt;/p&gt;
&lt;p&gt;$b = 3;&lt;/p&gt;
&lt;p&gt;if ($a &amp;gt; $b){&lt;/p&gt;
&lt;p&gt;echo &quot;a é maior que b&quot;;&lt;/p&gt;
&lt;p&gt;} elseif ($a==$b){&lt;/p&gt;
&lt;p&gt;echo &quot;a é igual a b&quot;;&lt;/p&gt;
&lt;p&gt;} else {&lt;/p&gt;
&lt;p&gt;echo &quot;a NÃO é maior que b nem igual a b&quot;;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;?&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; while - executa instruções várias vezez, enquanto uma expressão for verdadeira (TRUE).&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sintaxe:&lt;/p&gt;
&lt;p&gt;while (expressao) {&lt;/p&gt;
&lt;p&gt;instrucoes;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;Em cada iteração expressao é avaliada, se TRUE instrucoes serão executadas, se FALSE, serão ignoradas.&lt;/p&gt;
&lt;p&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$i = 1;

while ($i &amp;lt;= 10) {

echo $i++; /* o valor impresso será

$i depois do acréscimo

(post-increment) */

}

?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt; do ... while - Semelhante ao while, diferindo no fato da expressão condicional ficar ao final das iterações.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No do ... while a primeira iteração sempre executará as instruções incondicionalmente.&lt;/p&gt;
&lt;p&gt;Sintaxe:&lt;/p&gt;
&lt;p&gt;do {&lt;/p&gt;
&lt;p&gt;instrucoes;&lt;/p&gt;
&lt;p&gt;} while (expressoes); // Atentar para o ponto e vírgula ao final&lt;/p&gt;
&lt;p&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

// Executa pelo menos uma vez incondicionalmente

$i = 6; $fator = 2; $minimo = 10;

do {

if ($i &amp;lt; 5) {

echo &quot;\$i não é grande o suficiente&quot;;

break;

}

$i *= $fator;

if ($i &amp;lt; $minimo) {

break;

}

echo &quot;\$i está Ok e vale &quot; . $i;

} while (0);

/* Exemplo simples

$i = 0;

do {

echo $i;

} while ($i &amp;gt; 0);

*/

?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt; for - laço composto por 3 instruções. A primeira é a de inicialização da variável, a segunda será avaliada a cada iteração e a terceira é a de incremento. As 3 separadas por ponto e vírgula. Todas as 3 são opcionais e caso a segunda seja nula o loop será infinito.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sintaxe:&lt;/p&gt;
&lt;p&gt;for (expr1; expr2; expr3) {&lt;/p&gt;
&lt;p&gt;instrucoes;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;- expr1 será avaliada uma única vez incondicionalmente;&lt;/p&gt;
&lt;p&gt;- expr2 será avaliada no início de cada iteração:&lt;/p&gt;
&lt;p&gt;- Se TRUE o laço continua e as instruções serão executadas&lt;/p&gt;
&lt;p&gt;- Se FALSE o laço termina.&lt;/p&gt;
&lt;p&gt;- expr3 é avaliada ao final de cada iteração, no caso incrementa a variável&lt;/p&gt;
&lt;p&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

/* exemplo 1 - Controla o fluso no for*/

echo &quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;1- &quot;;

for ($i = 1; $i &amp;lt;= 10; $i++) {

echo $i;

}

echo &quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;2- &quot;;

/* exemplo 2 - Controle o fluxo no if interno*/

for ($i = 1; ; $i++) {

if ($i &amp;gt; 10) {

break;

}

echo $i;

}

echo &quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;3- &quot;;

/* exemplo 3 - Controle o fluxo no if interno*/

$i = 1;

for (; ; ) {

if ($i &amp;gt; 10) {

break;

}

echo $i;

$i++;

}

echo &quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;4- &quot;;

/* exemplo 4 */

for ($i = 1; $i &amp;lt;= 10;$i++);

echo $i;

?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt; foreach - laço para varrer os elementos de uma matriz (array).&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Atentar para o fato de que o foreach não requer reset() antes, pois quando é executado o ponteiro interno do array já é zerado automaticamente.&lt;/p&gt;
&lt;p&gt;Sintaxe:&lt;/p&gt;
&lt;p&gt;foreach (expressao_array as $valor){&lt;br /&gt; instrucoes;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;foreach (expressao_array as $chave =&amp;gt; $valor) {&lt;br /&gt; instrucoes;&lt;br /&gt;}&lt;/p&gt;
&lt;br /&gt; Exemplos:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
//Você pode ter notado que os seguintes itens são funcionalmente idênticos:
$arr = array(&quot;um&quot;, &quot;dois&quot;, &quot;três&quot;);
reset ($arr); // Aponta para o primeiro elemento
while (list(, $value) = each ($arr)) {
echo &quot;Valor: $value&amp;lt;br /&amp;gt;&quot;;
}
foreach ($arr as $value) {
echo &quot;Valor: $value&amp;lt;br /&amp;gt;&quot;;
}

//Os seguintes também são funcionalmente idênticos:
$arr = array(&quot;one&quot;, &quot;two&quot;, &quot;three&quot;);
reset($arr);
while (list($key, $value) = each ($arr)) {
echo &quot;Chave: $key; Valor: $value&amp;lt;br /&amp;gt;&quot;;
}
foreach ($arr as $key =&amp;gt; $value) {
echo &quot;Chave: $key; Valor: $value&amp;lt;br /&amp;gt;&quot;;
}

/* exemplo foreach 1: somente valores */
$a = array(1, 2, 3, 17);
foreach ($a as $v) {
echo &quot;Valor atual de \$a: $v.&amp;lt;br&amp;gt;&quot;;
}

/* exemplo foreach 2: valores (com as chaves impressas para ilustração) */
$a = array(1, 2, 3, 17);
$i = 0; /* para exemplo somente */
foreach ($a as $v) {
echo &quot;\$a[$i] =&amp;gt; $v.&amp;lt;br&amp;gt;&quot;;
$i++;
}

/* exemplo foreach 3: chaves e valores */
$a = array (
&quot;um&quot; =&amp;gt; 1,
&quot;dois&quot; =&amp;gt; 2,
&quot;três&quot; =&amp;gt; 3,
&quot;dezessete&quot; =&amp;gt; 17
);
foreach ($a as $k =&amp;gt; $v) {
echo &quot;\$a[$k] =&amp;gt; $v.&amp;lt;br&amp;gt;&quot;;
}
?&amp;gt; ​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;strong&gt; break - cancela a execução de laços: for, foreach, while, do ... while ou switch.&lt;/strong&gt;&lt;br /&gt; break n é suportado, onde n é o número de estruturas a serem canceladas.&lt;br /&gt; &lt;br /&gt; Sintaxe:&lt;br /&gt; &lt;br /&gt; break;&lt;br /&gt; &lt;br /&gt; break n;&lt;br /&gt; &lt;br /&gt; Exemplos:&lt;br /&gt; &lt;br /&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$arr = array('um', 'dois', 'três', 'quatro', 'PARE', 'cinco');
while (list (, $val) = each ($arr)) {
if ($val == 'PARE') {
break; /* Você poderia colocar 'break 1;' aqui. */
}
echo &quot;$val&amp;lt;br /&amp;gt;&quot;;
}
echo &quot;&amp;lt;br /&amp;gt;&quot;;
/* Utilizando o argumento opcional. */

$i = 0;
while (++$i) {
switch ($i) {
case 5:
echo &quot;No 5&amp;lt;br /&amp;gt;&quot;;
break 1; /* Sai somente do switch. */
case 10:
echo &quot;No 10; saindo&amp;lt;br /&amp;gt;&quot;;
break 2; /* Sai do switch e while. */
default:
break;
}
}
?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;strong&gt; continue - sai da atual iteração de um loop para continuar na próxima iteração.&lt;/strong&gt;&lt;br /&gt; &lt;br /&gt; Sintaxe:&lt;br /&gt; &lt;br /&gt; continue;&lt;br /&gt; continue n;&lt;br /&gt; &lt;br /&gt; Enquanto o break encerra definitivamente um laço, o continue encerra somente a iteração atual.&lt;br /&gt; &lt;br /&gt; Exemplos:&lt;br /&gt; &lt;br /&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$arr = array(1,2,3,4,5,6,7,8);
while (list ($key, $value) = each ($arr)) {
if (!($key % 2)) { // pula itens pares, ou seja, processa somente ímpares
continue;
}
echo ($value);
}
echo &quot;&amp;lt;br&amp;gt;&quot;;
$i = 0;
while ($i++ &amp;lt; 5) {
echo &quot;Fora&amp;lt;br /&amp;gt;&quot;;
while (1) {
echo &quot;&amp;amp;nbsp;&amp;amp;nbsp;Meio&amp;lt;br /&amp;gt;&quot;;
while (1) {
echo &quot;&amp;amp;nbsp;&amp;amp;nbsp;Dentro&amp;lt;br /&amp;gt;&quot;;
continue 3;
}
echo &quot;Isto nunca será exibido.&amp;lt;br /&amp;gt;&quot;;
}
echo &quot;Nem isso.&amp;lt;br /&amp;gt;&quot;;
}

// Outro exemplo
for ($i = 0; $i &amp;lt; 5; ++$i) {
if ($i == 2)
continue
print &quot;$i\n&quot;;
}
?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;strong&gt; switch - similar a uma série de construções if seguidas.&lt;/strong&gt;&lt;br /&gt; &lt;br /&gt; Sintaxe:&lt;br /&gt; &lt;br /&gt; switch (variavel) {&lt;br /&gt; case valor1:&lt;br /&gt; instrucoes;&lt;br /&gt; break;&lt;br /&gt; case valor2:&lt;br /&gt; instrucoes2;&lt;br /&gt; break;&lt;br /&gt; case valorN;&lt;br /&gt; instrucoesN;&lt;br /&gt; break;&lt;br /&gt; default:&lt;br /&gt; instrucoesDefault;&lt;br /&gt; break;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; Exemplos:&lt;br /&gt; &lt;br /&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$i = 1;

// Estrutura com if
if ($i == 0) {
echo &quot;\$i igual a 0&quot;;
} elseif ($i == 1) {
echo &quot;\$i igual a 1&quot;;
} elseif ($i == 2) {
echo &quot;\$i igual a 2&quot;;
}
echo &quot;&amp;lt;br&amp;gt;&quot;;
// Estruturas com switch
switch ($i) {
case 0:
echo &quot;\$i igual a 0&quot;;
break;
case 1:
echo &quot;\$i igual a 1&quot;;
break;
case 2:
echo &quot;\$i igual a 2&quot;;
break;
}
echo &quot;&amp;lt;br&amp;gt;&quot;;
$i = 2;
// Executará todos, falta o break
switch ($i) {
case 0:
echo &quot;\$i igual a 0&quot;;
case 1:
echo &quot;\$i igual a 1&quot;;
case 2:
echo &quot;\$i igual a 2&quot;;
}
echo &quot;&amp;lt;br&amp;gt;&quot;;
// Simulando intervalos
switch ($i) {
case 0:
case 1:
case 2:
echo &quot;\$i é menor que 3 mas não negativo&quot;;
break;
case 3:
echo &quot;\$i é 3&quot;;
}
echo &quot;&amp;lt;br&amp;gt;&quot;;
// Valor default
switch ($i) {
case 0:
echo &quot;\$i igual a 0&quot;;
break;
case 1:
echo &quot;\$i igual a 1&quot;;
break;
case 2:
echo &quot;\$i igual a 2&quot;;
break;
default:
echo &quot;\$i não é igual a 0, 1 ou 2&quot;;
}
​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt; &lt;br /&gt;
&lt;p&gt;&lt;strong&gt;Estruturas em Obsolescência&lt;/strong&gt;&lt;br /&gt; Devemos evitar, pois em futuras versões não mais serão utilizados.&lt;br /&gt;&lt;br /&gt; Funções com nomes antigos, tipo:&lt;/p&gt;
&lt;p&gt;pg_numrown, pg_fecharray e similares.&lt;/p&gt;
&lt;p&gt;Caso se faça uma busca por estas funções no site do PHP nada será retornado.&lt;/p&gt;
&lt;p&gt;As funções atuais tem nomes com espaço separando palavras, como:&lt;br /&gt; pg_num_rown, pg_fech_array e similares.&lt;/p&gt;
&lt;p&gt;Algumas funções agora tem outro nome, por exemplo:&lt;br /&gt; pg_exec agora deve ser substuida por pg_query&lt;/p&gt;
&lt;p&gt;Algumas estruturas de controle usavam os dois pontos:&lt;br /&gt; while: ... endwhile, if: ... endif, devemos preferir:&lt;br /&gt; while(){ ... }, if(){ ... }&lt;/p&gt;
&lt;p&gt;Evitar o uso do comentário tipo shell #.&lt;/p&gt;
&lt;p&gt;Estruturas do tipo 4HTTP_POST_VARS e similares foram substituídas por: $_POST e similares.&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;Formatando Números&lt;/strong&gt;&lt;br /&gt; number_format&lt;/p&gt;
&lt;p&gt;number_format -- Formata um número com os milhares agrupados&lt;br /&gt; string number_format ( float number [, int decimals] )&lt;br /&gt; string number_format ( float number, int decimals, string dec_point, string thousands_sep )&lt;/p&gt;
&lt;p&gt;number_format() retorna uma versão formatada de number. Esta função aceita um, dois ou quatro parâmetros (não três):&lt;/p&gt;
&lt;p&gt;Se apenas um parâmetro é dado, number será formatado sem decimais, mas com uma virgula (&quot;,&quot;) entre cada grupo de milhar.&lt;/p&gt;
&lt;p&gt;Se dois parâmetros são dados, number será formatado com o número de casas decimais especificadas em decimals com um ponto (&quot;.&quot;) na frente, e uma vírgula (&quot;,&quot;) entre cada grupo de milhar.&lt;/p&gt;
&lt;p&gt;Se todos os quatro parâmetros forem dados, number será formatado com o número de casas decimais em decimals, dec_point ao invés do ponto (&quot;.&quot;) antes das casas decimais e thousands_sep ao invés de uma vírgula (&quot;,&quot;) entre os grupos de milhares.&lt;/p&gt;
&lt;p&gt;Somente o primeiro caractere de thousands_sep é usado. Por exemplo, se você usar foo como o parâmetro thousands_sep no número 1000, number_format() irá retornar 1f000.&lt;/p&gt;
&lt;p&gt;Exemplo 1. Exemplo number_format()&lt;/p&gt;
&lt;p&gt;Por exemplo, a notação Francesa usa duas casas decimais, vírgula (',') como separador decimal, e espaço (' ') como separador de milhar. Isto é feito com a linha :&lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;/p&gt;
&lt;p&gt;// string number_format ( float number, int decimals, string dec_point, string thousands_sep )&lt;br /&gt; $number = 1234.56;&lt;/p&gt;
&lt;p&gt;// Notação Brasileira&lt;br /&gt; $numero_format_brasil = number_format($numero, 2, ',', '.');&lt;/p&gt;
&lt;p&gt;// 1.234,56&lt;br /&gt; echo &quot;O número' $number' no formato brasileiro fica '$numero_format_brasil'&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Validação de Ano Bisexto &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;br /&gt; function ano_bisexto($ano){&lt;br /&gt; return ((($ano%4)==0 &amp;amp;&amp;amp; ($ano%100) != 0) || ($ano%400)==0);&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;if(ano_bisexto(2006))&lt;br /&gt; echo &quot;Ano bisexto&quot;;&lt;br /&gt; else&lt;br /&gt; echo &quot;Ano não bisexto&quot;;&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Algumas Funções Matemáticas&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;abs -- Valor absoluto&lt;/p&gt;
mixed abs ( mixed número )&lt;br /&gt;
&lt;div&gt;&amp;lt;?php&lt;br /&gt; $abs = abs(-4.2); // $abs = 4.2; (double/float)&lt;br /&gt; $abs2 = abs(5); // $abs2 = 5; (inteiro)&lt;br /&gt; $abs3 = abs(-5); // $abs3 = 5; (inteiro)&lt;br /&gt; ?&amp;gt;&lt;br /&gt; &lt;br /&gt; ceil -- Arredonda frações para cima&lt;br /&gt; float ceil ( float valor )&lt;br /&gt; &lt;br /&gt;
&lt;div&gt;&amp;lt;?php&lt;br /&gt; echo ceil(4.3); // 5&lt;br /&gt; echo ceil(9.999); // 10&lt;br /&gt; ?&amp;gt;&lt;br /&gt; &lt;br /&gt; floor -- Arredonda frações para baixo&lt;br /&gt; float floor ( float valor )&lt;br /&gt;
&lt;div&gt;&amp;lt;?php&lt;br /&gt; echo floor(4.3); // 4&lt;br /&gt; echo floor(9.999); // 9&lt;br /&gt; ?&amp;gt;&lt;/div&gt;
max -- Localiza o maior número&lt;br /&gt; mixed max ( number arg1, number arg2 [, number ...] )&lt;br /&gt; mixed max ( array numbers [, array ...] )&lt;/div&gt;
&lt;div&gt;&amp;lt;?php&lt;br /&gt; echo max(1, 3, 5, 6, 7); // 7&lt;br /&gt; echo max(array(2, 4, 5)); // 5&lt;br /&gt; &lt;br /&gt; echo max(0, 'hello'); // 0&lt;br /&gt; echo max('hello', 0); // hello&lt;br /&gt; echo max(-1, 'hello'); // hello&lt;br /&gt; &lt;br /&gt; // Com arrays múltiplos, max compara da esquerda para direita,&lt;br /&gt; // assim nesse exemplo: 2 == 2, mas 4 &amp;lt; 5&lt;br /&gt; $val = max(array(2, 4, 8), array(2, 5, 7)); // array(2, 5, 7)&lt;br /&gt; &lt;br /&gt; // Se forem informados um array e um não array, o array&lt;br /&gt; // é sempre retornado como se ele fosse o maior&lt;br /&gt; $val = max('string', array(2, 5, 7), 42); // array(2, 5, 7)&lt;br /&gt; ?&amp;gt;&lt;br /&gt; &lt;br /&gt; min -- Localiza o menor número&lt;br /&gt; mixed min ( number arg1, number arg2 [, number ...] )&lt;br /&gt; mixed min ( array numbers [, array ...] )&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&amp;lt;?php&lt;br /&gt; echo min(2, 3, 1, 6, 7); // 1&lt;br /&gt; echo min(array(2, 4, 5)); // 2&lt;br /&gt; &lt;br /&gt; echo min(0, 'hello'); // 0&lt;br /&gt; echo min('hello', 0); // hello&lt;br /&gt; echo min('hello', -1); // -1&lt;br /&gt; &lt;br /&gt; // Com arrays múltiplos, min compara da esquerda para direita,&lt;br /&gt; // assim nesse exemplo: 2 == 2, mas 4 &amp;lt; 5&lt;br /&gt; $val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8)&lt;br /&gt; &lt;br /&gt; // Se ambos forem um array e um não array, o array&lt;br /&gt; // nunca será retornado porque ele é sempre considerado o maior&lt;br /&gt; $val = min('string', array(2, 5, 7), 42); // string&lt;br /&gt; ?&amp;gt;&lt;br /&gt; &lt;br /&gt; count -- Conta o número de elementos de uma variável&lt;br /&gt; int count ( mixed var [, int mode] )&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;div&gt;&amp;lt;?php&lt;br /&gt; $a[0] = 1; &lt;br /&gt; $a[1] = 3; &lt;br /&gt; $a[2] = 5; &lt;br /&gt; $result = count($a);&lt;br /&gt; // $result == 3&lt;br /&gt; &lt;br /&gt; $b[0] = 7;&lt;br /&gt; $b[5] = 9;&lt;br /&gt; $b[10] = 11;&lt;br /&gt; $result = count($b);&lt;br /&gt; // $result == 3;&lt;br /&gt; ?&amp;gt;&lt;/div&gt;
&lt;p&gt;Exemplo 2. Uso recursivo da função count() (PHP &amp;gt;= 4.2.0)&lt;/p&gt;
&lt;div&gt;&amp;lt;?php&lt;br /&gt; $food = array( 'fruits' =&amp;gt; array('orange', 'banana', 'apple'),&lt;br /&gt; 'veggie' =&amp;gt; array('carrot', 'collard','pea'));&lt;br /&gt; // recursive count&lt;br /&gt; echo count($food,COUNT_RECURSIVE); // mostra 8&lt;br /&gt; // normal count&lt;br /&gt; echo count($food); // mostra2 2&lt;br /&gt; ?&amp;gt;&lt;/div&gt;
&lt;br /&gt; pow -- Potência&lt;br /&gt; number pow ( number base, number exp )&lt;/div&gt;
&lt;div&gt;&lt;br /&gt; var_dump( pow(2,8) ); // int(256)&lt;br /&gt; echo pow(-1,20); // 1&lt;br /&gt; echo pow(0, 0); // 1&lt;br /&gt; echo pow(-1, 5.5); // erro&lt;/div&gt;
&lt;br /&gt; rand -- Gera um número aleatório&lt;br /&gt; int rand ( [int min, int max] )&lt;br /&gt; &lt;br /&gt; echo &quot;Exibir 20 números aleatórios entre 20 e 160&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;&lt;br /&gt; for($x=20;$x&amp;lt;40;$x++){&lt;br /&gt; echo rand($x, 4*$x).&quot;&amp;lt;br&amp;gt;&quot;;&lt;br /&gt; }&lt;br /&gt; exit(&quot;Saindo...&quot;);&lt;br /&gt; &lt;br /&gt; round -- Arredonda um número&lt;br /&gt; float round ( float val [, int precision] )&lt;br /&gt; &lt;br /&gt;
&lt;div&gt;&amp;lt;?php&lt;br /&gt; echo round(3.4); // 3&lt;br /&gt; echo round(3.5); // 4&lt;br /&gt; echo round(3.6); // 4&lt;br /&gt; echo round(3.6, 0); // 4&lt;br /&gt; echo round(1.95583, 2); // 1.96&lt;br /&gt; echo round(1241757, -3); // 1242000&lt;br /&gt; echo round(5.045, 2); // 5.04&lt;br /&gt; echo round(5.055, 2); // 5.06&lt;br /&gt; ?&amp;gt;&lt;br /&gt; &lt;br /&gt; sqrt -- Raiz quadrada&lt;br /&gt; float sqrt ( float arg )&lt;/div&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;lt;?php&lt;br /&gt;// Precisão depende de sua diretiva precision&lt;br /&gt;echo sqrt(9); // 3&lt;br /&gt;echo sqrt(10); // 3.16227766 ...&lt;br /&gt;?&amp;gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Forçando a Limpeza do Cache&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt; &amp;lt;?php&lt;br /&gt; // Este é para os servidores de proxy. Diz para baixar, bypassando o proxy&lt;br /&gt; header (&quot;Cache-Control: no-cache, must-revalidate&quot;);&lt;/p&gt;
&lt;p&gt;// Este é para o navegador e nem sempre funciona (falta de padrão entre eles)&lt;br /&gt; header (&quot;Pragma: no-cache&quot;);&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p&gt;Redirecionamento de Páginas&lt;/p&gt;
&lt;p&gt;header(&quot;location: novapagina.php&quot;);&lt;/p&gt;
&lt;p&gt;Exibir o conteúdo de um arquivo&lt;/p&gt;
&lt;p&gt;readfile -- Lê e exibe o conteúdo de um arquivo&lt;/p&gt;
&lt;p&gt;readfile('http://www.google.com.br');&lt;/p&gt;
&lt;p&gt;readfile('/home/1www/pagina2.php');&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Enviar E-mail via PHP&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;br /&gt; $to = &quot;ribamar.sousa@dnocs.gov.br&quot;;&lt;br /&gt; $subject=&quot;Apenas testando&quot;;&lt;br /&gt; $message = &quot;Estou testando o envio de e-mail pelo PHP.&quot;;&lt;br /&gt; $email=&quot;ribafs@gmail.com&quot;;&lt;br /&gt; $ret=mail($to, $subject, $message, &quot;From: $email\r\nReply-to: $email\r\n&quot;);&lt;br /&gt; echo $ret;&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usando Favicon em sites&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Aquele pequeno ícone que fica à esquerda da URL do site, na caixa Location do Browser,&lt;br /&gt; que inclusive personaliza a barra de links quando arrastamos o endereço do site.&lt;br /&gt; Para que nosso site apareça para o visitante com um link, devemos seguir os&lt;br /&gt; seguintes procedimentos:&lt;/p&gt;
&lt;p&gt;- Criar uma imagem com o logo do site, no formato png, jpg, gif, etc com 32x32 pixels&lt;br /&gt; - Salvar como favicon.png ou outra extensão&lt;br /&gt; - Adicionar a TAG abaixo, na TAG head, como abaixo:&lt;br /&gt; &amp;lt;head&amp;gt;&lt;br /&gt; ...&lt;br /&gt; &amp;lt;link href=&quot;http://www.seusite.com.br/diretorio/favicon.png&quot; type=&quot;image/gif&quot; rel=&quot;icon&quot;&amp;gt;&lt;br /&gt; ...&lt;br /&gt; &amp;lt;/head&amp;gt;&lt;/p&gt;
&lt;p&gt;Também pode ser assim:&lt;br /&gt; rel=&quot;shortcut icon&quot;&lt;/p&gt;
&lt;p&gt;Este ícone pode ser inclusive animado.&lt;br /&gt; Referência: lista da Dicas-L (http://www.dicas-l.com.br).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Livros&lt;/strong&gt;&lt;br /&gt; Desenvolvendo Web Sites com PHP&lt;br /&gt; Editora Novatec&lt;br /&gt; Juliano Niederauer&lt;/p&gt;
&lt;p&gt;PHP para quem conhece PHP&lt;br /&gt; Editora Novatec&lt;br /&gt; Juliano Niederauer&lt;/p&gt;
&lt;p&gt;PHP Guia do Desenvolvedor&lt;br /&gt; Ed. Berkeley&lt;br /&gt; Sterling Hughes&lt;br /&gt; (Do grupo de desenvolvimento do PHP)&lt;/p&gt;
&lt;p&gt;Desvendando aplicações na Web com PHP 4.0&lt;br /&gt; Ed. Ciência Moderna&lt;br /&gt; Tobias Retschiller e&lt;br /&gt; Till Gerken&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;PHP&lt;br /&gt; &lt;a href=&quot;http://www.zend.com/&quot;&gt;http://www.php.net&lt;br /&gt; http://www.php.net/manual/pt_BR/&lt;br /&gt; http://www.phpbrasil.com/&lt;br /&gt; http://www.planet-source-code.com/vb/default.asp?lngWId=8&lt;br /&gt; http://www.hotscripts.com/PHP/index.html&lt;br /&gt; http://www.zend.com&lt;/a&gt; (empresa dos dois membros israelenses da equipe de desenvolvimento do PHP, especial ênfase na seção Developer Zone)&lt;br /&gt; &lt;a href=&quot;http://www.devshed.com/&quot;&gt;http://www.phpwizard.net&lt;br /&gt; http://www.phpclasses.org&lt;br /&gt; http://www.weberdev.com&lt;br /&gt; http://www.devshed.com&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;http://www.phpnet.us/&quot;&gt;http://www.phpmania.org/&lt;br /&gt; http://www.phpnet.us/&lt;/a&gt; - Hospedagem free para PHP e MySQL (300MB)&lt;br /&gt; &lt;a href=&quot;http://ribafs.byethost2.com/&quot;&gt;http://www.superphp.com.br&lt;br /&gt; http://www.scriptbrasil.com/&lt;br /&gt; http://www.faqts.com/knowledge_base/index.phtml/fid/51/&lt;br /&gt; http://www.alt-php-faq.org/&lt;br /&gt; http://ribafs.byethost2.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;CURSOS GRÁTIS&lt;/small&gt;&lt;/strong&gt;&lt;br /&gt; &lt;a href=&quot;http://cursos.cdtc.org.br/brasil/&quot;&gt;http://cursos.cdtc.org.br/brasil/&lt;/a&gt; - Cursos Grátis para Func.Públ.&lt;br /&gt; &lt;a href=&quot;http://www.solocursosgratis.com/cursos_gratis_php-slctema264.htm&quot;&gt;http://www.apostilando.com/download.php?cod=171&amp;amp;categoria=PHP&lt;br /&gt; http://www.aprendaemcasa.com.br/apcasa6.htm&lt;br /&gt; http://www.solocursosgratis.com/cursos_gratis_php-slctema264.htm&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;CLIPARTS&lt;br /&gt; &lt;a href=&quot;http://www.digitmania.holowww.com/digital.html&quot;&gt;http://www.digitmania.holowww.com/digital.html&lt;/a&gt; – Dígitos (cliparts)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://paginas.terra.com.br/informatica/php_editor/&quot;&gt;EDITORES&lt;br /&gt; http://paginas.terra.com.br/informatica/php_editor/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;POSTGRESQL&lt;br /&gt; &lt;a href=&quot;http://www.postgresql.org/docs/current/interactive/&quot;&gt;http://www.postgresql.org/docs/current/interactive/&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;http://pgdocptbr.sourceforge.net/pg80/index.html&quot;&gt;http://pgdocptbr.sourceforge.net/pg80/index.html&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;http://www.designmagick.com/category/3/PostgreSQL&quot;&gt;http://www.designmagick.com/category/3/PostgreSQL&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;SQL&lt;a href=&quot;http://tutorials.findtutorials.com/&quot;&gt;&lt;br /&gt; &lt;/a&gt;&lt;a href=&quot;http://www.firstsql.com/tutor.htm&quot;&gt;http://www.firstsql.com/tutor.htm&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;http://sqlzoo.net/&quot;&gt;http://sqlzoo.net/&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;http://www.sql-tutorial.net/SQL-tutorial.asp&quot;&gt;http://www.sql-tutorial.net/SQL-tutorial.asp&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;http://www.programmingtutorials.com/sql.aspx&quot;&gt;http://www.programmingtutorials.com/sql.aspx&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;http://tutorials.findtutorials.com/&quot;&gt;http://tutorials.findtutorials.com/&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;http://www.hardened-php.net/home.8.html&quot;&gt;http://www.hardened-php.net/home.8.html&lt;/a&gt; - Hardened PHP Project&lt;br /&gt;&lt;a href=&quot;http://www.1phpscripts.com/&quot;&gt;http://www.1phpscripts.com/&lt;br /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.weberdev.com/&quot;&gt;http://www.weberdev.com/&lt;br /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.goldsofts.com/scriptscategory/10/0/1/0.html&quot;&gt;http://www.goldsofts.com/scriptscategory/10/0/1/0.html &lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;





&lt;/code&gt;&lt;/p&gt;</summary>
		<content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;TUTORIAL DE PHP ESTRUTURADO&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Este tutorial teve como principal fonte de informações o manual oficial do PHP.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;1 - INTRODUÇÃO&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;O Que é PHP?&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;É uma linguagem de script, Open Source, de uso geral, no lado do servidor, embutível no HTML e especialmente voltada para o desenvolvimento Web. Originalmente chamou-se PHP (Personal Home Page) mas depois teve seu nome alterado pela comunidade para PHP: Hypertext Processor, um acrônimo recursivo.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Um pequeno script em PHP&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;lt;?php&lt;br /&gt; echo &quot;Script em PHP!&quot;;&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Em março/2006 ele já está presente em mais de 20 milhões de domínios ao redor do planeta (&lt;a href=&quot;http://www.php.net/usage.php&quot;&gt;http://www.php.net/usage.php&lt;/a&gt;).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;strong&gt; Estatísticas sobre o PHP:&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://www.nexen.net/chiffres_cles/phpversion/php_statistics_for_april_2006.php&quot;&gt;http://www.nexen.net/chiffres_cles/phpversion/php_statistics_for_april_2006.php&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;História do PHP&lt;/strong&gt;&lt;br /&gt; - Criado em 1995 por Rasmus Lerdorf, na forma de scripts Perl para coletar estatísticas online de seu currículo. Com um interpretador em C e comunicação com SGBDs.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Versão 2 aparece em novembro de 1997, quando recebe seu nome inicial e é enriquecido com um interpretador de formulários (FI) - PHP/FI. Teve seu código fonte disponibilizado para a comunidade. Contava com 50.000 domínios que o utilizavam (em torno de 1% dos existentes na época).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Versão 3 sai em seguida, logo em julho de 1998. Similar ao PHP atual, esta versão foi totalmente reescrita por Andi Gutmans e Zeev Suraski, programadores israelenses. Inicia o suporte à orientação a objetos e a sua extensibilidade, que atraiu muitos programadores. Rebatizado de PHP: Hypertext Processor. Já estava presente em 10% dos servidores web da Internet.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Versão 4 sai em maio de 2000. Melhora de performance, suporte a muitos servidores web, a session, entre outros. Já está presente em 20% dos domínios da Internet.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Versão 5 sai em julho de 2004. Seu foco principal é a orientação a objetos, que corrije deficiências e traz novos e amplos recursos para a orientação a objetos.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Delimitadores do PHP&lt;/strong&gt;&lt;br /&gt; Para que o interpretador reconheça quando tem que interpretar o script em PHP e quando não, usa-se delimitadores para que quando os encontre ele interprete corretamente. Quando ele encontra o delimitador &amp;lt;?php ele começa a processar como PHP e quando encontra ?&amp;gt; ele pára de processar e tudo o mais envia para o browser como está. Existem outros tipos de delimitadores do PHP mas estes &amp;lt;?php ... ?&amp;gt; são os recomendados, por serem os mais abrangentes e terem suporte inclusive a XML.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Forças do PHP&lt;/strong&gt;&lt;br /&gt; - Sua simplicitade é muito importante para o programador que se inicia no PHP.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Seus recursos atendem ao programador experiente.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Sua documentação rica em conteúdo e exemplos facilita a solução de problemas, além da busca online.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- O suporte de maneira simples à maioria dos SGBDs do mercado atende às necessidades de sites dinâmicos com acesso a bancos de dados.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;O Que é Possível Realizar em PHP?&lt;/strong&gt;&lt;br /&gt; - Em sendo uma linguagem de uso geral, podemos realizar praticamente qualquer atividade realizada com outra linguagem. Ele roda no lado servidor, como aplicação Web e também roda no lado cliente, com o PHP-GTK.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Existem edições para os principais sistemas operacionais (Linux, BSDs, Windows, Mac OS X, etc).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Suportado pela maioria dos servidores Web, especialmente pelo Apache.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Bom suporte à orientação a objetos, em especial com a chegada da versão 5.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Comunicação com Java.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Suporte aos principais SGBDs do mercado (MySQL, PostgreSQL, Oracle, SQL Server, etc), atualmente são mais de vinte os suportados.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- Suporte a LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (em Windows somente), a IRC, compressão (gzip, bz2, rar), PDF, GD, Flash, XML, etc..&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;2 - TUTORIAL SIMPLES&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Para continuar você deve ter um servidor web instalado e com suporte a PHP e, caso queira usar bancos de dados, instale um SGBD.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Os arquivos em PHP somente funcionam corretamente no navegador, se estivem no diretório reconhecido pelo servidor web, que é o DocumentRoot. Considerando que o PHP e Apache tenham sido instalados com o Xampp e que o diretório web seja o default, este fica em:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;C:\Arquivos de Programas\Xampp\htdocs&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Além disso qualquer script que contenha algo em PHP deve ter a extensão .php para que seja corretamente processado pelo Apache.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Criar um arquivo chamado olamundo.php na pasta C:\Arquivos de Programas\Xampp\htdocs, com o conteúdo:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;lt;?php&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;echo &quot;Olá PHP!&quot;;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;?&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Startar o Apache e abrir no browser assim:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;http://127.0.0.1/olamundo.php&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Visualizar resultado de script PHP no Browser&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Após ter executado o olamundo.php no Browser solicite a visualização do código fonte da página exibida.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Veja que nada chega de PHP. O PHP é processado no servidor e envia apenas o resultado em HTML para o browser.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Alerta sobre Editores e Processadores de Texto com PHP &lt;br /&gt; Para criar scripts PHP evite o uso de processadores de texto e de editores como o Bloco de Notas, pois deixam sujeira no código e dificultam o salvamento do arquivo.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Preferentemente use uma IDE especializada em PHP, que inclusive tem outros recursos úteis, a exemplo do PHPEclipse ou um editor de texto como o freeware Win32pad.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;strong&gt; Informações sobre o PHP&lt;/strong&gt; &lt;br /&gt; Para obter diversas informações úteis sobre o PHP instalado no seu servidor, execute um script com a função:&lt;br /&gt; &lt;br /&gt; &amp;lt;?php&lt;br /&gt; phpinfo();&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Checar navegador em uso&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;if (strstr($_SERVER[&quot;HTTP_USER_AGENT&quot;], &quot;MSIE&quot;)) {&lt;br /&gt; echo &quot;Seu navegador é o Internet Explorer!&quot;;&lt;br /&gt; } else {&lt;br /&gt; echo &quot;Seu navegador não é o IE!&quot;;&lt;br /&gt; }&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;strstr - procura substrings.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Teste com echo e print:&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;lt;?php&lt;br /&gt; // Teste de echo e print&lt;br /&gt; //print &quot;primeiro, &quot;, &quot;segundo&quot;; // Gera erro de parser&lt;br /&gt; echo &quot;primeiro, &quot;, &quot;segundo, &quot;, &quot;terceiro&quot;; //Funciona&lt;br /&gt; // Ou seja, print pode trabalhar apenas com uma string de cada vez e echo com várias&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;print retorna valor enquanto que echo não retorna.&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt; &amp;lt;?php&lt;br /&gt; $print = print &quot;&quot;;&lt;br /&gt; echo &quot;Retorno do print: &quot; . $print;&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Agora teste esse:&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;lt;?php&lt;br /&gt; $echo = echo &quot;&quot;;&lt;br /&gt; echo &quot;Retorno do echo: &quot; . $echo;&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Irá receber um erro fatal (do parser).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;3 - CONFIGURAÇÕES&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;php.ini&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;register_globals = off (por questões de segurança)&lt;br /&gt; No Xampp o php.ini traz register_globals ativo por default.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;GD, pgsql, mysql e outras extensões que queira usar deverá descomentar no php.ini, seção Extensions.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;httpd.conf&lt;br /&gt; Para poder alterar o diretório web default deverá mudar dois parâmetros no arquivo httpd.conf do Apache:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;DocumentRoot “/opt/lampp/htdocs”&lt;br /&gt; &amp;lt;Directory &quot;/opt/lampp/htdocs&quot;&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Os diretórios acima são para a edição for Linux do Xampp. Para o Windows observe que o Apache utiliza, não barras, que são utilizadas neste SO, mas sim contra-barras e as vezes contra-barras duplas.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;No caso queremos mudar o diretório default para /home/www, então alteramos o httpd.conf para que fique assim:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;DocumentRoot “/home/www”&lt;br /&gt; &amp;lt;Directory &quot;/home/www&quot;&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;No Windows fica assim:&lt;br /&gt; DocumentRoot &quot;c:/Arquivos de Programas/Xampp/htdocs&quot;&lt;br /&gt; &amp;lt;Directory &quot;&amp;lt;c:/Arquivos de Programas/Xampp/htdocs&quot;&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Que devem ficar assim:&lt;br /&gt; DocumentRoot &quot;c:/1www&quot;&lt;br /&gt; &amp;lt;Directory &quot;&amp;lt;c:/1www&quot;&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Configuração das extensões suportadas. Altere a linha: &lt;br /&gt; DirectoryIndex index.html index.html.var index.php index.php3 index.php4&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Veja que acima configurou-se para perceber inclusive arquivos com as extensões .php3 e .php4.&lt;br /&gt; Caso não fossem incluídas, arquivos com extensão .php3 e .php4 não poderiam ser abertos neste servidor.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;4 - REFERÊNCIA DA LINGUAGEM&lt;/strong&gt;&lt;br /&gt; Separador de Instruções&lt;br /&gt; O ponto e vírgula ; é o separador de instruções em PHP (como em Perl e em C).&lt;br /&gt; Sempre que uma instrução terminar devemos digitar um ponto e vírgula (echo &quot;ola&quot;; ).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Comentários&lt;/strong&gt;&lt;br /&gt; Em PHP podemos usar 3 tipos de comentários (/* ... */, // e #) mas devemos utilizar somente os dois primeiros e o primeiro é o mais eficiente, que é o /* ... */, que veio do C, já que # está em processo de obsolescência. Ou seja, devemos usar // ou /* ... */, de preferência este último.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;5 - TIPOS DE DADOS &lt;/strong&gt;&lt;br /&gt; O PHP suporta os oito tipos primitivos:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;- boolean, integer, float e string (básicos)&lt;br /&gt; - array e object (compostos)&lt;br /&gt; - resource e NULL (especiais)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;float é sinônimo de double em PHP.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Tipo de Variável &lt;/strong&gt;&lt;br /&gt; O tipo de uma variável em PHP não é controlado pelo programador, depende do valor da variável e é avaliado em tempo de execução. Não é permitido ao programador declarar o tipo de variáveis.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Funções que Retornal o Tipo&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;gettype&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;todas as is_type&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Casting&lt;br /&gt; (tipo) variavel;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Boleanos&lt;br /&gt; Pode ser TRUE ou FALSE (case-insensitive)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
echo gettype((bool) &quot;&quot;).&quot;&amp;lt;br&amp;gt;&quot;; // bool(false)
echo gettype((bool) 1).&quot;&amp;lt;br&amp;gt;&quot;; // bool(true)
echo gettype((bool) -2).&quot;&amp;lt;br&amp;gt;&quot;; // bool(true)
echo gettype((bool) &quot;foo&quot;).&quot;&amp;lt;br&amp;gt;&quot;; // bool(true)
echo gettype((bool) 2.3e5).&quot;&amp;lt;br&amp;gt;&quot;; // bool(true)
echo gettype((bool) array(12)).&quot;&amp;lt;br&amp;gt;&quot;; // bool(true)
echo gettype((bool) array()).&quot;&amp;lt;br&amp;gt;&quot;; // bool(false)
?&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong style=&quot;text-align: justify;&quot;&gt;Convertendo Explicitamente para Boleano &lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Usa-se o modificador (bool) ou (boolean).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Valores que são considerados FALSE&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;FALSE, 0, 0.0, &quot;0&quot;, &quot;&quot;, array vazio, objeto sem membros e NULL (e variáveis indefinidas).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Os demais são TRUE&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Inteiros&lt;br /&gt; Em PHP, inteiro é um número do conjunto matemático dos Inteiros (Z), que contem os negativos, o zero e os positivos.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Em PHP os inteiros podem ser decimais, octais ou hexadecimais.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;octal - precedido por 0.&lt;br /&gt; hexadecimal - precedido por 0x.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$a =1234;
echo $a.&quot;&amp;lt;br&amp;gt;&quot;; // número decimal
$a =-123;
echo $a.&quot;&amp;lt;br&amp;gt;&quot;; // um número negativo
$a =0123;
echo $a.&quot;&amp;lt;br&amp;gt;&quot;; // número octal (equivalente a 83 em decimal)
$a =0x1A;
echo $a.&quot;&amp;lt;br&amp;gt;&quot;; // número hexadecimal (equivalente a 26 em decimal)
?&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;O tamanho dos inteiros depende da plataforma e é de 32 bits com sinal. O PHP não suporta inteiros sem sinal.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Overflow - caso seja especificado um número inteiro além dos limites, será interpretado como flutuante.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Convertendo Explicitamente para Inteiro&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Usar o modificador (int) ou (integer).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ou com a função intval().&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;De boleanos - FALSE será retornado como 0 e TRUE como 1.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;De flutuantes - ao converter para inteiros serão truncados&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;De strings - A string será avaliada como um ponto flutuante se contiver qualquer um dos caracteres '.', 'e', ou 'E'. Em outros casos, ela será avaliada como um inteiro.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;De outros tipos - não têm precisão, exatidão, portanto é melhor evitar.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Alerta: &lt;br /&gt; echo (int) ((0.1 + 0.7 ) * 10); // Exibirá 7 ao invés do esperado 8&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Ponto Flutuante&lt;/strong&gt;&lt;br /&gt; É o float, double ou real.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplos:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;1.234 ou 1.2e3 ou 7E-10&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$a = 1.234;
echo $a.&quot;&amp;lt;br&amp;gt;&quot;;
$b = 1.2e3;
echo $b.&quot;&amp;lt;br&amp;gt;&quot;;
$c = 7E-4;
echo $c;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong style=&quot;text-align: justify;&quot;&gt;O tamanho de um float depende também da plataforma e é de 64bits no formato IEEE(*).&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Nunca compare números em ponto flutuante em igualdades, sob pena de cometer erros.&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;* - (Wikipedia - &lt;a href=&quot;http://pt.wikipedia.org&quot;&gt;http://pt.wikipedia.org&lt;/a&gt; )O Instituto de Engenheiros Eletricistas e Eletrônicos ou IEEE (pronuncia-se I-3-E ) é uma organização profissional sem fins lucrativos, fundada nos &lt;a title=&quot;Estados Unidos da América&quot; href=&quot;http://pt.wikipedia.org/wiki/Estados_Unidos_da_Am%C3%A9rica&quot;&gt;Estados Unidos&lt;/a&gt;. É a maior (em número de sócios) organização profissional do mundo. O IEEE foi formado em &lt;a title=&quot;1963&quot; href=&quot;http://pt.wikipedia.org/wiki/1963&quot;&gt;1963&lt;/a&gt; pela fusão do &lt;a title=&quot;Instituto de Engenheiros de Rádio&quot; href=&quot;http://pt.wikipedia.org/w/index.php?title=Instituto_de_Engenheiros_de_R%C3%A1dio&amp;amp;action=edit&quot;&gt;Instituto de Engenheiros de Rádio&lt;/a&gt; (IRA) com o &lt;a title=&quot;Instituto Americano de Engenheiros Elétricistas&quot; href=&quot;http://pt.wikipedia.org/w/index.php?title=Instituto_Americano_de_Engenheiros_El%C3%A9tricistas&amp;amp;action=edit&quot;&gt;Instituto Americano de Engenheiros Elétricistas&lt;/a&gt; (AIEE). O IEEE tem filiais em muitas partes do mundo, sendo seus sócios engenheiros eletricistas, engenheiros da computação, cientistas da computação, profissionais de telecomunicações etc. Sua meta é promover conhecimento no campo da &lt;a title=&quot;Engenharia eléctrica&quot; href=&quot;http://pt.wikipedia.org/wiki/Engenharia_el%C3%A9ctrica&quot;&gt;engenharia elétrica&lt;/a&gt;, &lt;a title=&quot;Engenharia eletrônica&quot; href=&quot;http://pt.wikipedia.org/wiki/Engenharia_eletr%C3%B4nica&quot;&gt;eletrônica&lt;/a&gt; e &lt;a title=&quot;Ciência da computação&quot; href=&quot;http://pt.wikipedia.org/wiki/Ci%C3%AAncia_da_computa%C3%A7%C3%A3o&quot;&gt;computação&lt;/a&gt;. Um de seus papéis mais importantes é o estabelecimento de padrões para formatos de &lt;a title=&quot;Computadores&quot; href=&quot;http://pt.wikipedia.org/wiki/Computadores&quot;&gt;computadores&lt;/a&gt; e &lt;a title=&quot;Dispositivo&quot; href=&quot;http://pt.wikipedia.org/w/index.php?title=Dispositivo&amp;amp;action=edit&quot;&gt;dispositivos&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Strings&lt;/strong&gt;&lt;br /&gt; Em PHP um caractere ocupa um byte. Até a versão 5 o PHP não tem suporte a UNICODE, mas está previsto este suporte para a próxima versão (Fonte: Wikipedia - http://www.wikipedia.org).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Não há limite para o tamanho de uma string em PHP.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Especificando Strings:&lt;br /&gt; - apóstrofos (chamados de aspas simples ' )&lt;br /&gt; - aspas (chamadas de aspas duplas &quot; )&lt;br /&gt; - heredoc (&amp;lt;&amp;lt;&amp;lt;)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
echo 'isto é uma string comum';
echo 'Você pode incluir novas linhas em strings,
dessa maneira que estará
tudo bem';

// Imprime: Arnold disse uma vez: &quot;I\'ll be back&quot;
echo 'Arnold once said: &quot;I\'ll be back&quot;';

// Imprime: Você tem certeza em apagar C:\*.*?
echo 'Você tem certeza em apagar C:\\*.*?';

// Imprime: Você tem certeza em apagar C:\*.*?
echo 'Você tem certeza em apagar C:\*.*?';

// Imprime: Isto não será substituido: \n uma nova linha
echo 'Isto não será substituido: \n uma nova linha';

// Imprime: Variaveis $também não $expandem
echo 'Variaveis $também não $expandem';

echo '&amp;lt;br&amp;gt;------------&amp;lt;br&amp;gt;';

$str = &amp;lt;&amp;lt;&amp;lt;EOD
Exemplo de uma string
distribuída em várias linhas
utilizando a sintaxe heredoc.
EOD;

/* Exemplo mais complexo, com variáveis */
class foo
{
var $foo;
var $bar;

function foo()
{
$this-&amp;gt;foo = 'Foo';
$this-&amp;gt;bar = array('Bar1', 'Bar2', 'Bar3');
}
}

$foo = new foo();
$name = 'Meu nome';

echo &amp;lt;&amp;lt;&amp;lt;EOT
Meu nome é &quot;$name&quot;. Eu estou imprimindo $foo-&amp;gt;foo.
Agora, eu estou imprimindo {$foo-&amp;gt;bar[1]}.
Isto deve imprimir um 'A' maiúsculo: \x41
EOT;
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;6 - VARIÁVEIS &lt;/strong&gt;&lt;br /&gt; Em PHP as variáveis são iniciadas por um sinal de dólar $.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Variáveis Predefinidas&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;São as que já vêm definidas no próprio PHP. A função phpinfo() mostra também estas variáveis.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Com o PHP 4.2 o valor default da diretiva register_globals passou a ser off. Com isso as variáveis passaram a ser acessadas de forma diferente e muitos scripts deixaram de funcionar quanto tiveram o PHP atualizado e outros novos scripts não funcionaram devido esperar uma semelhante a anteerior.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On Off&lt;br /&gt; =======================================================&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;$DOCUMENT_ROOT $_SERVER['DOCUMENT_ROOT'];&lt;br /&gt; $HOME $_ENV['HOME'];&lt;br /&gt; $GLOBALS&lt;br /&gt; $_SERVER&lt;br /&gt; $_GET&lt;br /&gt; $_POST&lt;br /&gt; $_REQUEST&lt;br /&gt; $_SESSION&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Obs.: Agora, como o default do PHP é register_globals = Off, faz-se necessário usar $_POST['nomecampo'], para receber o valor de um campo de form em script PHP.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Escopo de Variáveis &lt;/strong&gt;&lt;br /&gt; O escopo de uma variável é o contexto onde ela foi definida e geralmente o escopo é local.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;$a = 1;&lt;br /&gt; include (&quot;teste.php&quot;);&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;// $a estará disponível, será vista por teste.php, pois foi definida antes.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;include (&quot;teste.php&quot;);&lt;br /&gt; $a = 1;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;// Aqui, como $a foi definida após a inclusão, não será visto pelo teste.php&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Escopo de variáveis em funções &lt;/strong&gt;&lt;br /&gt; A palavra-chave global pode preceder uma variável para tornar seu escopo global, como também $GLOBALS[].&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplos:&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&amp;lt;?php&lt;br /&gt; $a = 1; /* escopo global */&lt;br /&gt; &lt;br /&gt; function Teste(){&lt;br /&gt; echo $a; /* referencia uma variável do escopo local (não definida) */&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; Teste();&lt;br /&gt; ?&amp;gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt; &amp;lt;?php&lt;br /&gt; $a = 1; /* escopo global */&lt;br /&gt; &lt;br /&gt; function Teste(){&lt;br /&gt; global $a;&lt;br /&gt; echo $a; /* referencia a variável do escopo global */&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; Teste();&lt;br /&gt; ?&amp;gt;&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Usando $GLOBALS no lugar de global&lt;/strong&gt;&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&amp;lt;?php&lt;br /&gt; $a = 1;&lt;br /&gt; $b = 2;&lt;br /&gt; &lt;br /&gt; function Soma(){&lt;br /&gt; $GLOBALS[&quot;b&quot;] = $GLOBALS[&quot;a&quot;] + $GLOBALS[&quot;b&quot;];&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; Soma();&lt;br /&gt; echo $b;&lt;br /&gt; ?&amp;gt;&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Utilizando Variáveis Estáticas&lt;/strong&gt;&lt;br /&gt; Variáveis estáticas guardam o valor de variáveis entre execuções de funções.&lt;br /&gt; Ao fechar o programa, ao fechar ou atualizar o browser, o valor da variável se perde.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt; Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
function Teste (){
$a = 0;
echo $a;
$a++;
}

for ($x=1;$x&amp;lt;10;$x++){
Teste();
}
echo &quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;

function Teste2(){
static $a = 0;
echo $a;
$a++;
}

for ($x=1;$x&amp;lt;10;$x++){
Teste2();
}

echo &quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;

// Função recursiva
function Teste3()
{
static $count = 0;

$count++;
echo $count;
if ($count &amp;lt; 10) {
Teste3 ();
}
$count--;
}

for ($x=1;$x&amp;lt;5;$x++){
Teste3();
if ($x &amp;lt; 4) echo &quot; - &quot;;

}

echo &quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;
//Declarando variáveis static

function foo(){
static $int = 0; // correro
//static $int = 1+2; // errado (é uma expressão)
//static $int = sqrt(121); // wrong (é uma expressão também)

$int++;
echo $int;
}

foo();

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Variáveis Variáveis&lt;/strong&gt;&lt;br /&gt; São variáveis cujos nomes podem ser criados dinamicamente.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Variável comun -&amp;gt; $variavel;&lt;br /&gt; Variável variável -&amp;gt; $$variavelvariavel;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ela torna o valor de uma variável e o trata como se fosse o nome de uma variável. &lt;br /&gt; Obs.: variáveis variáveis não podem ser utilizadas com os arrays superglobais.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Determiando o Tipo das Variáveis &lt;/strong&gt;&lt;br /&gt; gettype&lt;br /&gt; is_array, is_float, is_int, is_object, is_string, is_numeric&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;7 - CONSTANTES&lt;/strong&gt;&lt;br /&gt; O valor de uma constante não pode ser alterado durante a execução do script.&lt;br /&gt; Convenciona-se usar o nome de constantes com todas as letras em maiúsculas.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;define (&quot;NOME&quot;, &quot;valor&quot;);&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplos:&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
// Nomes de constantes válidos
define(&quot;FOO&quot;, &quot;alguma coisa&quot;);
define(&quot;FOO2&quot;, &quot;alguma outra coisa&quot;);
define(&quot;FOO_BAR&quot;, &quot;mais alguma outra coisa&quot;)

// Nomes de constantes inválidas
define(&quot;2FOO&quot;, &quot;alguma coisa&quot;);

// Isto é válido, mas deve ser evitado:
// O PHP pode vir a fornercer uma constante mágica
// que danificará seu script
define(&quot;__FOO__&quot;, &quot;alguma coisa&quot;);

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Obs.: Somente dados escalares (bolean, integer, float, e string) podem ser armazanados nos valores de constantes.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;A função constant() retorna o valor de uma constante.&lt;br /&gt; A função get_defined_constantes() retorna todas as constantes definidas.&lt;br /&gt; Enquanto que defined() checa se uma constante foi definida.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;define (NOME, valor);&lt;br /&gt; define (&quot;PESO&quot;, 70);&lt;br /&gt; print &quot;O peso vale &quot; . PESO . &quot; KG&quot;;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
switch (PHP_OS){
case &quot;WIN32&quot;:
echo &quot;Sistema Windows&quot;;
break;
case &quot;Linux&quot;:
echo &quot;Sistema Linux&quot;;
break;
case &quot;OS/2&quot;:
echo &quot;Sistema OS/2&quot;;
break;
default:
echo &quot;Sistema não é Windows, Linux nem OS/2&quot;;
break;
}
?&amp;gt;

&amp;lt;?php
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
echo 'Este é um servidor usando Windows!';
} else {
echo 'Este é um servidor que não usa Windows!';
}
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Constantes Mágicas&lt;/strong&gt;&lt;br /&gt; Essas são as cinco constantes &quot;mágicas&quot;, que mudam dependendo de onde elas são utilizadas. Por exemplo, o valor de &lt;tt&gt;__LINE__&lt;/tt&gt; depende do número da linha em que é utilizada em seu script. Essas constantes especiais são insensíveis ao caso:&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;p&gt;Algumas constantes &quot;mágicas&quot; do PHP&lt;/p&gt;
&lt;table border=&quot;1&quot;&gt;&lt;colgroup&gt;&lt;col /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Nome&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;tt&gt;__LINE__&lt;/tt&gt;&lt;/td&gt;
&lt;td&gt;A linha atual do script.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;tt&gt;__FILE__&lt;/tt&gt;&lt;/td&gt;
&lt;td&gt;O caminho completo e nome do arquivo. Se utilizado dentro de um include, o nome do arquivo incluído será retornado.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;tt&gt;__FUNCTION__&lt;/tt&gt;&lt;/td&gt;
&lt;td&gt;O nome da função (Acrescentado no PHP 4.3.0). A partir do PHP 5 esta constante retorna o nome da função como ela foi declarada (sensível a maiúsculas e minúsculas). No PHP 4 sempre retorna o nome em minúsculas.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;tt&gt;__CLASS__&lt;/tt&gt;&lt;/td&gt;
&lt;td&gt;O nome da classe (Acrescentado no PHP 4.3.0). A partir do PHP 5 esta constante retorna o nome da função como ela foi declarada (sensível a maiúsculas e minúsculas). No PHP 4 sempre retorna o nome em minúsculas.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;tt&gt;__METHOD__&lt;/tt&gt;&lt;/td&gt;
&lt;td&gt;O nome do método de classe. (Acrescentado no PHP 5.0.0). O nome do método é retornado como foi declarado (sensível a maiúsculas e minúsculas).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Veja também &lt;a href=&quot;http://www.php.net/manual/pt_BR/function.get-class.php&quot;&gt;get_class()&lt;/a&gt;, &lt;a href=&quot;http://www.php.net/manual/pt_BR/function.get-object-vars.php&quot;&gt;get_object_vars()&lt;/a&gt;, &lt;a href=&quot;http://www.php.net/manual/pt_BR/function.file-exists.php&quot;&gt;file_exists()&lt;/a&gt;, e &lt;a href=&quot;http://www.php.net/manual/pt_BR/function.function-exists.php&quot;&gt;function_exists()&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;br /&gt;8 - EXPRESSÕES &lt;/strong&gt;&lt;br /&gt; Uma expressão é qualquer coisa que tem um valor, normalmente na forma de constantes ou variáveis.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;$a = 5;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Temos acima uma equação formada por duas expressões, a da esquerda composta por uma variável e a da direita composta por uma constante.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Funções são expressões cujo valor é igual ao seu valor de retorno. &lt;br /&gt; O PHP é uma linguagem orientada as expressões. &lt;br /&gt; Atribuições são analisadas da direita para a esquerda.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;$b = $a = 5; // $a recebe 5 e então $b recebe 5&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplo:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
function dobro($i){
return $i*2;
}
$b = $a = 5;echo $b.&quot;&amp;lt;br&amp;gt;&quot;; /* atribui o valor cinco às variáveis $a e $b */
$c = $a++;echo $c.&quot;&amp;lt;br&amp;gt;&quot;; /* pós-incremento, atribui o valor original de $a
(5) para $c */
$e = $d = ++$b;echo $e.&quot;&amp;lt;br&amp;gt;&quot;; /* pré-incremento, atribui o valor incrementado de
$b (6) a $d e $e */

/* neste ponto, tanto $d quanto $e são iguais a 6 */

$f = dobro($d++);echo $f.&quot;&amp;lt;br&amp;gt;&quot;; /* atribui o dobro do valor de $d antes
do incremento, 2*6 = 12 a $f */
$g = dobro(++$e);echo $g.&quot;&amp;lt;br&amp;gt;&quot;; /* atribui o dobro do valor de $e depois
do incremento, 2*7 = 14 a $g */
$h = $g += 10;echo $h.&quot;&amp;lt;br&amp;gt;&quot;; /* primeiro, $g é incrementado de 10 e termina com o
valor 24. o valor da atribuição (24) é
então atribuído a $h, e $h termina com o valor
24 também. */
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;9 - OPERADORES &lt;/strong&gt;&lt;br /&gt; Um operador é algo que alimentado com um ou mais valores devolve outro valor. Assim as funções e outros construtores que retornam valor são operadores.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Tipos de Operadores&lt;/strong&gt;&lt;br /&gt; - unários - operam apenas em um valor (!, ++, ...)&lt;br /&gt; - binários - operam em dois valores (+, - , ...)&lt;br /&gt; - ternário - selecionar entre 2 valores, dependendo de um terceiro. Emglobá-los entre parênteses facilita o entendimento.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Precedência de Operadores &lt;/strong&gt;&lt;br /&gt; A precedência de um operador em relação a outro diz que um operador deve ser executado antes do outro.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplo:&lt;br /&gt; 1 + 5 * 3&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Dependendo da precedência dos operadores + ou * teremos resultados diferentes.&lt;br /&gt; Se o operador + tiver precedência superior ao * então resolveremos assim:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Somamos 1 + 5 e somente depois multiplicamos por 3 -&amp;gt; (1+5)*3 = 6*3 = 18&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Este resultado está incorreto, pois o operador * tem precedência superior ao + e deveria ser assim: &lt;br /&gt; 1+(5*3) = 1+15=16&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Para facilitar a percepção das precedências usa-se parêntesis:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;1 + (5 * 3) = Sempre devemos resolver antes o que estiver entre parêntesis.&lt;br /&gt; 1 + 15 = 16 (Neste caso fica mais claro).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Veja a tabela contendo a precedência de dos operadores do PHP, da maior precedência para a menor:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;* e / têm precedência sobre + e -.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Obs.: Para uma relação completa das precedências veja o manual oficial no site do PHP.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;strong&gt; Operadores Aritméticos&lt;/strong&gt;&lt;br /&gt; São os operadores correspondentes às quatro operações comuns da matemática adicionados ao operador módulo:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;• soma (+)&lt;br /&gt; • subtração (-)&lt;br /&gt; • multiplicação (*)&lt;br /&gt; • divisão (/)&lt;br /&gt; • módulo (%)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;O módulo é o resto de um número dividido por outro.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplos de operadores aritméticos:&lt;/p&gt;
&lt;pre&gt;$a = 9;&lt;br /&gt;$b = 4;&lt;br /&gt;echo &quot;\$a + \$b = &quot;.($a + $b); // 13&lt;br /&gt;echo &quot;\$a + \$b = &quot;.$a + $b; // Retorna 4, pois após o ponto é considerado strings&lt;br /&gt;echo &quot;\$a - \$b = &quot;.($a - $b); // 5&lt;br /&gt;echo &quot;\$a * \$b = &quot;.$a * $b; // 36&lt;br /&gt;echo &quot;\$a / \$b = &quot;.$a / $b; // 2.25 - Divisão Quociente de $a por $b.&lt;br /&gt;echo &quot;\$a % \$b = &quot;.$a % $b; // 1 - Resto de $a por $b&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Operadores de Atribuição&lt;/strong&gt;&lt;br /&gt; O operador básico de atribuição é o sinal de igualdade =.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplo:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;$x = $y + 3; // O que representa: 3 será adicionado a $y e o resultado será atribuído a $x&lt;br /&gt; $a = 3;&lt;br /&gt; $a += 5; // Que é semelhante a $a = $a + 5;&lt;br /&gt; $b = &quot;Bom &quot;;&lt;br /&gt; $b .= &quot;Dia!&quot;; // Similar a $b = $b . &quot;Dia!&quot;;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$a = 3;
$a += 5; // $a recebe 5 e soma com seus 3, tipo: $a = $a + 5;
echo &quot;\$a vale &quot; . $a;

$b = &quot;Bom &quot;;
$b .= &quot;Dia!&quot;; // $b fica com &quot;Bom Dia!&quot;, como em $b = $b . &quot;Dia!&quot;;
echo &quot;\$b vale &quot; . $b;

$c=2;
$a -= $c; //$a = $a - $c Subtração
echo &quot;\$a -= \$c vale &quot; . $a;
$a *= $c; //$a = $a * $c Multiplicação
echo &quot;\$a *= \$c vale &quot; . $a;
$a /= $c; //$a = $a / $c Divisão
echo &quot;\$a /= \$c vale &quot; . $a;
$resto = $a % $c; //$a = $a % $c Módulo (resto)
echo &quot;Resto de $a % $c vale: &quot; . $resto;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;strong&gt; Operadores de Controle de Erro&lt;/strong&gt;&lt;br /&gt; Representado pelo símbolo de arroba @. Quando precede uma expressão ele abafa as mensagens de erro.&lt;br /&gt; Observação - Somente funciona em expressões, ou seja, em qualquer construção que retorne algo.&lt;br /&gt; &lt;br /&gt; Recomendação - Deixar todas as mensagens de erro originais do PHP livres em ambientes de desenvolvimento (de testes). Somente utilizar @ em ambiente de produção, após executar os testes.&lt;br /&gt; &lt;br /&gt; Exemplos:&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
/* Erro intencional */
$a = 6;
$b = 0;

echo &quot;Camuflando erro de divisão por zero&quot;;
$c = @($a / $b);
?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;div&gt; &lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;strong&gt; Operadores de Execução&lt;/strong&gt;&lt;br /&gt; Existem algumas funções de execução de programas (shell_exec e outras) como também existe um operador, que é formado por dois sinais de crase` `.&lt;br /&gt; &lt;br /&gt; Nota: Caso safe_mode esteja desativado no php.ini como também shell_exec() então o operador de execução também fica dasativado.&lt;br /&gt; &lt;br /&gt; Exemplo:&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

// Em PHP a crase ` é um operador de execução de arquivos do SO

// Como em scripts bash

// Exibir todos os arquivos do diretório atual, inclusive os ocultos

if (PHP_OS == &quot;WINNT&quot;){

$output = `dir/o/p`;

echo &quot;&amp;lt;pre&amp;gt;$output&amp;lt;/pre&amp;gt;&quot;;

} elseif (PHP_OS == &quot;Linux){

$output = `ls -la`;

echo &quot;&amp;lt;pre&amp;gt;$output&amp;lt;/pre&amp;gt;&quot;;

}else{

echo &quot;Você está usando um SO diferente de Linux e de Windows!&quot;

}

?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt; Operadores de Incremento e de Decremento&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Os operadores de pré e pós-incremento/decremento são suportados pelo PHP.&lt;/p&gt;
&lt;p&gt;++$a (pré-incremento) - Primeiro incrementa $a de 1, depois retorna $a incrementado&lt;/p&gt;
&lt;p&gt;$a++ (pós-incremento) - Primeiro retorna $a, depois incrementa $a de 1&lt;/p&gt;
&lt;p&gt;--$a (pré-decremento) - Primeiro decrementa $a de 1, depois retorna $a decrementado&lt;/p&gt;
&lt;p&gt;$a-- (pós-decremento) - Primeiro retorna $a, depois decrementa $a de 1&lt;/p&gt;
&lt;p&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

echo &quot;&amp;lt;h3&amp;gt;Pós-incremento&amp;lt;/h3&amp;gt;&quot;;

$a = 5;

echo &quot;\$a = &quot;.$a.&quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;

echo &quot;\$a++ deve ser: &quot; . $a++ . &quot;&amp;lt;br /&amp;gt;\n&quot;;

echo &quot;\$a deve ser: &quot; . $a . &quot;&amp;lt;br /&amp;gt;\n&quot;;

echo &quot;&amp;lt;h3&amp;gt;Pré-incremento&amp;lt;/h3&amp;gt;&quot;;

$a = 5;

echo &quot;++\$a deve ser: &quot; . ++$a . &quot;&amp;lt;br /&amp;gt;\n&quot;;

echo &quot;\$a deve ser: &quot; . $a . &quot;&amp;lt;br /&amp;gt;\n&quot;;

echo &quot;&amp;lt;h3&amp;gt;Pós-decremento&amp;lt;/h3&amp;gt;&quot;;

$a = 5;

echo &quot;\$a-- deve ser: &quot; . $a-- . &quot;&amp;lt;br /&amp;gt;\n&quot;;

echo &quot;\$a deve ser: &quot; . $a . &quot;&amp;lt;br /&amp;gt;\n&quot;;

echo &quot;&amp;lt;h3&amp;gt;Pré-decremento&amp;lt;/h3&amp;gt;&quot;;

$a = 5;

echo &quot;--\$a deve ser: &quot; . --$a . &quot;&amp;lt;br /&amp;gt;\n&quot;;

echo &quot;\$a deve ser: &quot; . $a . &quot;&amp;lt;br /&amp;gt;\n&quot;;

?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt; Operadores Lógicos&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Utilizados para comparar duas expressões e o resultado será TRUE ou FALSE.&lt;/p&gt;
&lt;p&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$a = true; $b = FALSE; // true e false são insensitivos

echo ($a and $b)? &quot;T&amp;lt;br&amp;gt;&quot;:&quot;F&amp;lt;br&amp;gt;&quot;; //E Verdadeiro (TRUE) se tanto $a quanto $b são verdadeiros.

echo ($a or $b)? &quot;T&amp;lt;br&amp;gt;&quot;:&quot;F&amp;lt;br&amp;gt;&quot;; //OU Verdadeiro se $a ou $b são verdadeiros.

echo ($a xor $b)? &quot;T&amp;lt;br&amp;gt;&quot;:&quot;F&amp;lt;br&amp;gt;&quot;; //XOR Verdadeiro se $a ou $b são verdadeiros, mas não ambos.

echo (! $a)? &quot;T&amp;lt;br&amp;gt;&quot;:&quot;F&amp;lt;br&amp;gt;&quot;; //NÃO Verdadeiro se $a não é verdadeiro.

echo ($a &amp;amp;&amp;amp; $b)? &quot;T&amp;lt;br&amp;gt;&quot;:&quot;F&amp;lt;br&amp;gt;&quot;; //E Verdadeiro se tanto $a quanto $b são verdadeiros.

echo ($a || $b)? &quot;T&amp;lt;br&amp;gt;&quot;:&quot;F&amp;lt;br&amp;gt;&quot;; //OU Verdadeiro se $a ou $b são verdadeiros.

?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt; Operadores de String&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Strings em PHP são concatenadas com o operador ponto final &quot;.&quot;.&lt;/p&gt;
&lt;p&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$a = &quot;Olá &quot;;

$b = $a . &quot;mundo do PHP!&quot;;

echo $b;

$a = &quot;Olá &quot;;

$a .= &quot;meu mundo!&quot;;

echo &quot;&amp;lt;br&amp;gt;&quot; . $a;

?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt; Convertendo strings em números&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-markup&quot;&gt;&lt;code&gt;&amp;lt;?php

$foo = 1 + &quot;10.5&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (11.5)

$foo = 1 + &quot;-1.3e3&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (-1299)

$foo = 1 + &quot;bob-1.3e3&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é integer (1)

$foo = 1 + &quot;bob3&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é integer (1)

$foo = 1 + &quot;10 Small Pigs&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é integer (11)

$foo = 4 + &quot;10.2 Little Piggies&quot;;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (14.2)

$foo = &quot;10.0 pigs &quot; + 1;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (11)

$foo = &quot;10.0 pigs &quot; + 1.0;echo $foo.&quot;&amp;lt;br&amp;gt;&quot;; // $foo é float (11)

?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt; Operações com Strings&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

// Pega o primeiro caracter da string

$str = 'Isto é um teste.';

$first = $str{0};

echo $first.&quot;&amp;lt;br&amp;gt;&quot;;

// Pega o terceiro caracter da string

$third = $str{2};

echo $third.&quot;&amp;lt;br&amp;gt;&quot;;

// Pega o último caracter da string

$str = 'Isto ainda é um teste.';

$last = $str{strlen($str)-1};

echo $last.&quot;&amp;lt;br&amp;gt;&quot;;

// Modifica o ultimo caracter da string

$str = 'Olhe o mal';

echo $str{strlen($str)-1} = 'r';

?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt; Operadores com Arrays&lt;/strong&gt;&lt;/p&gt;
&lt;table border=&quot;1&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;p&gt;Exemplo&lt;/p&gt;
&lt;/th&gt;
&lt;th&gt;
&lt;p&gt;Nome&lt;/p&gt;
&lt;/th&gt;
&lt;th&gt;
&lt;p&gt;Resultado&lt;/p&gt;
&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;$a + $b&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;União&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;União de $a e $b.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;$a == $b&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Igualdade&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;tt&gt;TRUE&lt;/tt&gt; se $a e $b tem os mesmos elementos.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;$a === $b&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Identidade&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;tt&gt;TRUE&lt;/tt&gt; se $a e $b tem os mesmos elementos na mesma ordem.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;$a != $b&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Desigualdade&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;tt&gt;TRUE&lt;/tt&gt; se $a não é igual a $b.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;$a &amp;lt;&amp;gt; $b&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Desigualdade&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;tt&gt;TRUE&lt;/tt&gt; se $a não é igual a $b.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;$a !== $b&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Não identidade&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;tt&gt;TRUE&lt;/tt&gt; se $a não é identico a $b.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;O operador + acrescenta o array da direita no array da esquerda, contudo, chaves duplicadas NÃO são sobrescritas.&lt;/p&gt;
&lt;p&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$a = array(&quot;a&quot; =&amp;gt; &quot;maçã&quot;, &quot;b&quot; =&amp;gt; &quot;banana&quot;);
$b = array(&quot;a&quot; =&amp;gt;&quot;pêra&quot;, &quot;b&quot; =&amp;gt; &quot;framboesa&quot;, &quot;c&quot; =&amp;gt; &quot;morango&quot;);

$c = $a + $b; // Uniao de $a e $b
echo &quot;União de \$a e \$b: \n&quot;;
var_dump($c);

$c = $b + $a; // União de $b e $a
echo &quot;União de \$b e \$a: \n&quot;;
var_dump($c);
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Observar que na união de $a+$b o valor de &quot;b&quot; é banana em $a, ele não foi sobrescrito por framboesa de $b.&lt;/p&gt;
&lt;p&gt;Assim como framboesa &quot;b&quot; em $b não foi substituído por banana de $a na união de $b+$a.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; 10 - ESTRUTURAS DE CONTROLE&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As principais estruturas para controlar o fluxo dos scripts PHP.&lt;/p&gt;
&lt;p&gt;if, else, elseif, while, do... while, for, break, consinue e switch.&lt;/p&gt;
&lt;p&gt;Um script PHP é formado por instruções (cada instrução termina com ;).&lt;/p&gt;
&lt;p&gt;Uma instrução pode ser:&lt;/p&gt;
&lt;p&gt;- uma atribuição&lt;/p&gt;
&lt;p&gt;- uma chamada de função&lt;/p&gt;
&lt;p&gt;- um laço (loop)&lt;/p&gt;
&lt;p&gt;- uma instrução condicional&lt;/p&gt;
&lt;p&gt;- até uma instrução nula (;;).&lt;/p&gt;
&lt;p&gt;As instruções podem ser agrupadas com chaves, formando blocos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; if - uma construção muito importante e versátil. Permite a execução condicional de fragmentos de código.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sintaxe:&lt;/p&gt;
&lt;p&gt;if (expressao) {&lt;/p&gt;
&lt;p&gt;instrucoes;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;expressao - é avaliada como TRUE ou FALSE&lt;/p&gt;
&lt;p&gt;- Se TRUE as instrucoes serão executadas&lt;/p&gt;
&lt;p&gt;- Se FALSE as instrucoes serão ignoradas&lt;/p&gt;
&lt;p&gt;Exemplos:&lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;br /&gt; $a = 5;&lt;br /&gt; $b = 3;&lt;br /&gt; if ($a &amp;gt; $b){&lt;br /&gt; echo &quot;a é maior que b&quot;;&lt;br /&gt; }&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; else - executa instrucoes2 caso expressao seja FALSE.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sintaxe:&lt;/p&gt;
&lt;p&gt;if (expressao) {&lt;/p&gt;
&lt;p&gt;instrucoes;&lt;/p&gt;
&lt;p&gt;} else {&lt;/p&gt;
&lt;p&gt;instrucoes2;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;Exemplos:&lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;/p&gt;
&lt;p&gt;$a = 3;&lt;/p&gt;
&lt;p&gt;$b = 5;&lt;/p&gt;
&lt;p&gt;if ($a &amp;gt; $b){&lt;/p&gt;
&lt;p&gt;echo &quot;a é maior que b&quot;;&lt;/p&gt;
&lt;p&gt;} else {&lt;/p&gt;
&lt;p&gt;echo &quot;a NÃO é maior que b&quot;;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;?&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; elseif - é uma combinação de if com else. Caso a expressao do if seja FALSE então o elseif testa a expresao2, se esta for TRUE instrucoes2 serão executadas, caso contrário instrucoes3 serão executadas.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sintaxe:&lt;/p&gt;
&lt;p&gt;if (expressao) {&lt;/p&gt;
&lt;p&gt;instrucoes;&lt;/p&gt;
&lt;p&gt;} elseif (expressao2) {&lt;/p&gt;
&lt;p&gt;instrucoes2;&lt;/p&gt;
&lt;p&gt;} else {&lt;/p&gt;
&lt;p&gt;instrucoes3;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;/p&gt;
&lt;p&gt;$a = 3;&lt;/p&gt;
&lt;p&gt;$b = 3;&lt;/p&gt;
&lt;p&gt;if ($a &amp;gt; $b){&lt;/p&gt;
&lt;p&gt;echo &quot;a é maior que b&quot;;&lt;/p&gt;
&lt;p&gt;} elseif ($a==$b){&lt;/p&gt;
&lt;p&gt;echo &quot;a é igual a b&quot;;&lt;/p&gt;
&lt;p&gt;} else {&lt;/p&gt;
&lt;p&gt;echo &quot;a NÃO é maior que b nem igual a b&quot;;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;?&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; while - executa instruções várias vezez, enquanto uma expressão for verdadeira (TRUE).&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sintaxe:&lt;/p&gt;
&lt;p&gt;while (expressao) {&lt;/p&gt;
&lt;p&gt;instrucoes;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;Em cada iteração expressao é avaliada, se TRUE instrucoes serão executadas, se FALSE, serão ignoradas.&lt;/p&gt;
&lt;p&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$i = 1;

while ($i &amp;lt;= 10) {

echo $i++; /* o valor impresso será

$i depois do acréscimo

(post-increment) */

}

?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt; do ... while - Semelhante ao while, diferindo no fato da expressão condicional ficar ao final das iterações.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No do ... while a primeira iteração sempre executará as instruções incondicionalmente.&lt;/p&gt;
&lt;p&gt;Sintaxe:&lt;/p&gt;
&lt;p&gt;do {&lt;/p&gt;
&lt;p&gt;instrucoes;&lt;/p&gt;
&lt;p&gt;} while (expressoes); // Atentar para o ponto e vírgula ao final&lt;/p&gt;
&lt;p&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

// Executa pelo menos uma vez incondicionalmente

$i = 6; $fator = 2; $minimo = 10;

do {

if ($i &amp;lt; 5) {

echo &quot;\$i não é grande o suficiente&quot;;

break;

}

$i *= $fator;

if ($i &amp;lt; $minimo) {

break;

}

echo &quot;\$i está Ok e vale &quot; . $i;

} while (0);

/* Exemplo simples

$i = 0;

do {

echo $i;

} while ($i &amp;gt; 0);

*/

?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt; for - laço composto por 3 instruções. A primeira é a de inicialização da variável, a segunda será avaliada a cada iteração e a terceira é a de incremento. As 3 separadas por ponto e vírgula. Todas as 3 são opcionais e caso a segunda seja nula o loop será infinito.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sintaxe:&lt;/p&gt;
&lt;p&gt;for (expr1; expr2; expr3) {&lt;/p&gt;
&lt;p&gt;instrucoes;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;- expr1 será avaliada uma única vez incondicionalmente;&lt;/p&gt;
&lt;p&gt;- expr2 será avaliada no início de cada iteração:&lt;/p&gt;
&lt;p&gt;- Se TRUE o laço continua e as instruções serão executadas&lt;/p&gt;
&lt;p&gt;- Se FALSE o laço termina.&lt;/p&gt;
&lt;p&gt;- expr3 é avaliada ao final de cada iteração, no caso incrementa a variável&lt;/p&gt;
&lt;p&gt;Exemplos:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

/* exemplo 1 - Controla o fluso no for*/

echo &quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;1- &quot;;

for ($i = 1; $i &amp;lt;= 10; $i++) {

echo $i;

}

echo &quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;2- &quot;;

/* exemplo 2 - Controle o fluxo no if interno*/

for ($i = 1; ; $i++) {

if ($i &amp;gt; 10) {

break;

}

echo $i;

}

echo &quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;3- &quot;;

/* exemplo 3 - Controle o fluxo no if interno*/

$i = 1;

for (; ; ) {

if ($i &amp;gt; 10) {

break;

}

echo $i;

$i++;

}

echo &quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;4- &quot;;

/* exemplo 4 */

for ($i = 1; $i &amp;lt;= 10;$i++);

echo $i;

?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt; foreach - laço para varrer os elementos de uma matriz (array).&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Atentar para o fato de que o foreach não requer reset() antes, pois quando é executado o ponteiro interno do array já é zerado automaticamente.&lt;/p&gt;
&lt;p&gt;Sintaxe:&lt;/p&gt;
&lt;p&gt;foreach (expressao_array as $valor){&lt;br /&gt; instrucoes;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;foreach (expressao_array as $chave =&amp;gt; $valor) {&lt;br /&gt; instrucoes;&lt;br /&gt;}&lt;/p&gt;
&lt;br /&gt; Exemplos:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
//Você pode ter notado que os seguintes itens são funcionalmente idênticos:
$arr = array(&quot;um&quot;, &quot;dois&quot;, &quot;três&quot;);
reset ($arr); // Aponta para o primeiro elemento
while (list(, $value) = each ($arr)) {
echo &quot;Valor: $value&amp;lt;br /&amp;gt;&quot;;
}
foreach ($arr as $value) {
echo &quot;Valor: $value&amp;lt;br /&amp;gt;&quot;;
}

//Os seguintes também são funcionalmente idênticos:
$arr = array(&quot;one&quot;, &quot;two&quot;, &quot;three&quot;);
reset($arr);
while (list($key, $value) = each ($arr)) {
echo &quot;Chave: $key; Valor: $value&amp;lt;br /&amp;gt;&quot;;
}
foreach ($arr as $key =&amp;gt; $value) {
echo &quot;Chave: $key; Valor: $value&amp;lt;br /&amp;gt;&quot;;
}

/* exemplo foreach 1: somente valores */
$a = array(1, 2, 3, 17);
foreach ($a as $v) {
echo &quot;Valor atual de \$a: $v.&amp;lt;br&amp;gt;&quot;;
}

/* exemplo foreach 2: valores (com as chaves impressas para ilustração) */
$a = array(1, 2, 3, 17);
$i = 0; /* para exemplo somente */
foreach ($a as $v) {
echo &quot;\$a[$i] =&amp;gt; $v.&amp;lt;br&amp;gt;&quot;;
$i++;
}

/* exemplo foreach 3: chaves e valores */
$a = array (
&quot;um&quot; =&amp;gt; 1,
&quot;dois&quot; =&amp;gt; 2,
&quot;três&quot; =&amp;gt; 3,
&quot;dezessete&quot; =&amp;gt; 17
);
foreach ($a as $k =&amp;gt; $v) {
echo &quot;\$a[$k] =&amp;gt; $v.&amp;lt;br&amp;gt;&quot;;
}
?&amp;gt; ​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;strong&gt; break - cancela a execução de laços: for, foreach, while, do ... while ou switch.&lt;/strong&gt;&lt;br /&gt; break n é suportado, onde n é o número de estruturas a serem canceladas.&lt;br /&gt; &lt;br /&gt; Sintaxe:&lt;br /&gt; &lt;br /&gt; break;&lt;br /&gt; &lt;br /&gt; break n;&lt;br /&gt; &lt;br /&gt; Exemplos:&lt;br /&gt; &lt;br /&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$arr = array('um', 'dois', 'três', 'quatro', 'PARE', 'cinco');
while (list (, $val) = each ($arr)) {
if ($val == 'PARE') {
break; /* Você poderia colocar 'break 1;' aqui. */
}
echo &quot;$val&amp;lt;br /&amp;gt;&quot;;
}
echo &quot;&amp;lt;br /&amp;gt;&quot;;
/* Utilizando o argumento opcional. */

$i = 0;
while (++$i) {
switch ($i) {
case 5:
echo &quot;No 5&amp;lt;br /&amp;gt;&quot;;
break 1; /* Sai somente do switch. */
case 10:
echo &quot;No 10; saindo&amp;lt;br /&amp;gt;&quot;;
break 2; /* Sai do switch e while. */
default:
break;
}
}
?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;strong&gt; continue - sai da atual iteração de um loop para continuar na próxima iteração.&lt;/strong&gt;&lt;br /&gt; &lt;br /&gt; Sintaxe:&lt;br /&gt; &lt;br /&gt; continue;&lt;br /&gt; continue n;&lt;br /&gt; &lt;br /&gt; Enquanto o break encerra definitivamente um laço, o continue encerra somente a iteração atual.&lt;br /&gt; &lt;br /&gt; Exemplos:&lt;br /&gt; &lt;br /&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$arr = array(1,2,3,4,5,6,7,8);
while (list ($key, $value) = each ($arr)) {
if (!($key % 2)) { // pula itens pares, ou seja, processa somente ímpares
continue;
}
echo ($value);
}
echo &quot;&amp;lt;br&amp;gt;&quot;;
$i = 0;
while ($i++ &amp;lt; 5) {
echo &quot;Fora&amp;lt;br /&amp;gt;&quot;;
while (1) {
echo &quot;&amp;amp;nbsp;&amp;amp;nbsp;Meio&amp;lt;br /&amp;gt;&quot;;
while (1) {
echo &quot;&amp;amp;nbsp;&amp;amp;nbsp;Dentro&amp;lt;br /&amp;gt;&quot;;
continue 3;
}
echo &quot;Isto nunca será exibido.&amp;lt;br /&amp;gt;&quot;;
}
echo &quot;Nem isso.&amp;lt;br /&amp;gt;&quot;;
}

// Outro exemplo
for ($i = 0; $i &amp;lt; 5; ++$i) {
if ($i == 2)
continue
print &quot;$i\n&quot;;
}
?&amp;gt;​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;strong&gt; switch - similar a uma série de construções if seguidas.&lt;/strong&gt;&lt;br /&gt; &lt;br /&gt; Sintaxe:&lt;br /&gt; &lt;br /&gt; switch (variavel) {&lt;br /&gt; case valor1:&lt;br /&gt; instrucoes;&lt;br /&gt; break;&lt;br /&gt; case valor2:&lt;br /&gt; instrucoes2;&lt;br /&gt; break;&lt;br /&gt; case valorN;&lt;br /&gt; instrucoesN;&lt;br /&gt; break;&lt;br /&gt; default:&lt;br /&gt; instrucoesDefault;&lt;br /&gt; break;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; Exemplos:&lt;br /&gt; &lt;br /&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$i = 1;

// Estrutura com if
if ($i == 0) {
echo &quot;\$i igual a 0&quot;;
} elseif ($i == 1) {
echo &quot;\$i igual a 1&quot;;
} elseif ($i == 2) {
echo &quot;\$i igual a 2&quot;;
}
echo &quot;&amp;lt;br&amp;gt;&quot;;
// Estruturas com switch
switch ($i) {
case 0:
echo &quot;\$i igual a 0&quot;;
break;
case 1:
echo &quot;\$i igual a 1&quot;;
break;
case 2:
echo &quot;\$i igual a 2&quot;;
break;
}
echo &quot;&amp;lt;br&amp;gt;&quot;;
$i = 2;
// Executará todos, falta o break
switch ($i) {
case 0:
echo &quot;\$i igual a 0&quot;;
case 1:
echo &quot;\$i igual a 1&quot;;
case 2:
echo &quot;\$i igual a 2&quot;;
}
echo &quot;&amp;lt;br&amp;gt;&quot;;
// Simulando intervalos
switch ($i) {
case 0:
case 1:
case 2:
echo &quot;\$i é menor que 3 mas não negativo&quot;;
break;
case 3:
echo &quot;\$i é 3&quot;;
}
echo &quot;&amp;lt;br&amp;gt;&quot;;
// Valor default
switch ($i) {
case 0:
echo &quot;\$i igual a 0&quot;;
break;
case 1:
echo &quot;\$i igual a 1&quot;;
break;
case 2:
echo &quot;\$i igual a 2&quot;;
break;
default:
echo &quot;\$i não é igual a 0, 1 ou 2&quot;;
}
​&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt; &lt;br /&gt;
&lt;p&gt;&lt;strong&gt;Estruturas em Obsolescência&lt;/strong&gt;&lt;br /&gt; Devemos evitar, pois em futuras versões não mais serão utilizados.&lt;br /&gt;&lt;br /&gt; Funções com nomes antigos, tipo:&lt;/p&gt;
&lt;p&gt;pg_numrown, pg_fecharray e similares.&lt;/p&gt;
&lt;p&gt;Caso se faça uma busca por estas funções no site do PHP nada será retornado.&lt;/p&gt;
&lt;p&gt;As funções atuais tem nomes com espaço separando palavras, como:&lt;br /&gt; pg_num_rown, pg_fech_array e similares.&lt;/p&gt;
&lt;p&gt;Algumas funções agora tem outro nome, por exemplo:&lt;br /&gt; pg_exec agora deve ser substuida por pg_query&lt;/p&gt;
&lt;p&gt;Algumas estruturas de controle usavam os dois pontos:&lt;br /&gt; while: ... endwhile, if: ... endif, devemos preferir:&lt;br /&gt; while(){ ... }, if(){ ... }&lt;/p&gt;
&lt;p&gt;Evitar o uso do comentário tipo shell #.&lt;/p&gt;
&lt;p&gt;Estruturas do tipo 4HTTP_POST_VARS e similares foram substituídas por: $_POST e similares.&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;Formatando Números&lt;/strong&gt;&lt;br /&gt; number_format&lt;/p&gt;
&lt;p&gt;number_format -- Formata um número com os milhares agrupados&lt;br /&gt; string number_format ( float number [, int decimals] )&lt;br /&gt; string number_format ( float number, int decimals, string dec_point, string thousands_sep )&lt;/p&gt;
&lt;p&gt;number_format() retorna uma versão formatada de number. Esta função aceita um, dois ou quatro parâmetros (não três):&lt;/p&gt;
&lt;p&gt;Se apenas um parâmetro é dado, number será formatado sem decimais, mas com uma virgula (&quot;,&quot;) entre cada grupo de milhar.&lt;/p&gt;
&lt;p&gt;Se dois parâmetros são dados, number será formatado com o número de casas decimais especificadas em decimals com um ponto (&quot;.&quot;) na frente, e uma vírgula (&quot;,&quot;) entre cada grupo de milhar.&lt;/p&gt;
&lt;p&gt;Se todos os quatro parâmetros forem dados, number será formatado com o número de casas decimais em decimals, dec_point ao invés do ponto (&quot;.&quot;) antes das casas decimais e thousands_sep ao invés de uma vírgula (&quot;,&quot;) entre os grupos de milhares.&lt;/p&gt;
&lt;p&gt;Somente o primeiro caractere de thousands_sep é usado. Por exemplo, se você usar foo como o parâmetro thousands_sep no número 1000, number_format() irá retornar 1f000.&lt;/p&gt;
&lt;p&gt;Exemplo 1. Exemplo number_format()&lt;/p&gt;
&lt;p&gt;Por exemplo, a notação Francesa usa duas casas decimais, vírgula (',') como separador decimal, e espaço (' ') como separador de milhar. Isto é feito com a linha :&lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;/p&gt;
&lt;p&gt;// string number_format ( float number, int decimals, string dec_point, string thousands_sep )&lt;br /&gt; $number = 1234.56;&lt;/p&gt;
&lt;p&gt;// Notação Brasileira&lt;br /&gt; $numero_format_brasil = number_format($numero, 2, ',', '.');&lt;/p&gt;
&lt;p&gt;// 1.234,56&lt;br /&gt; echo &quot;O número' $number' no formato brasileiro fica '$numero_format_brasil'&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Validação de Ano Bisexto &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;br /&gt; function ano_bisexto($ano){&lt;br /&gt; return ((($ano%4)==0 &amp;amp;&amp;amp; ($ano%100) != 0) || ($ano%400)==0);&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;if(ano_bisexto(2006))&lt;br /&gt; echo &quot;Ano bisexto&quot;;&lt;br /&gt; else&lt;br /&gt; echo &quot;Ano não bisexto&quot;;&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Algumas Funções Matemáticas&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;abs -- Valor absoluto&lt;/p&gt;
mixed abs ( mixed número )&lt;br /&gt;
&lt;div&gt;&amp;lt;?php&lt;br /&gt; $abs = abs(-4.2); // $abs = 4.2; (double/float)&lt;br /&gt; $abs2 = abs(5); // $abs2 = 5; (inteiro)&lt;br /&gt; $abs3 = abs(-5); // $abs3 = 5; (inteiro)&lt;br /&gt; ?&amp;gt;&lt;br /&gt; &lt;br /&gt; ceil -- Arredonda frações para cima&lt;br /&gt; float ceil ( float valor )&lt;br /&gt; &lt;br /&gt;
&lt;div&gt;&amp;lt;?php&lt;br /&gt; echo ceil(4.3); // 5&lt;br /&gt; echo ceil(9.999); // 10&lt;br /&gt; ?&amp;gt;&lt;br /&gt; &lt;br /&gt; floor -- Arredonda frações para baixo&lt;br /&gt; float floor ( float valor )&lt;br /&gt;
&lt;div&gt;&amp;lt;?php&lt;br /&gt; echo floor(4.3); // 4&lt;br /&gt; echo floor(9.999); // 9&lt;br /&gt; ?&amp;gt;&lt;/div&gt;
max -- Localiza o maior número&lt;br /&gt; mixed max ( number arg1, number arg2 [, number ...] )&lt;br /&gt; mixed max ( array numbers [, array ...] )&lt;/div&gt;
&lt;div&gt;&amp;lt;?php&lt;br /&gt; echo max(1, 3, 5, 6, 7); // 7&lt;br /&gt; echo max(array(2, 4, 5)); // 5&lt;br /&gt; &lt;br /&gt; echo max(0, 'hello'); // 0&lt;br /&gt; echo max('hello', 0); // hello&lt;br /&gt; echo max(-1, 'hello'); // hello&lt;br /&gt; &lt;br /&gt; // Com arrays múltiplos, max compara da esquerda para direita,&lt;br /&gt; // assim nesse exemplo: 2 == 2, mas 4 &amp;lt; 5&lt;br /&gt; $val = max(array(2, 4, 8), array(2, 5, 7)); // array(2, 5, 7)&lt;br /&gt; &lt;br /&gt; // Se forem informados um array e um não array, o array&lt;br /&gt; // é sempre retornado como se ele fosse o maior&lt;br /&gt; $val = max('string', array(2, 5, 7), 42); // array(2, 5, 7)&lt;br /&gt; ?&amp;gt;&lt;br /&gt; &lt;br /&gt; min -- Localiza o menor número&lt;br /&gt; mixed min ( number arg1, number arg2 [, number ...] )&lt;br /&gt; mixed min ( array numbers [, array ...] )&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&amp;lt;?php&lt;br /&gt; echo min(2, 3, 1, 6, 7); // 1&lt;br /&gt; echo min(array(2, 4, 5)); // 2&lt;br /&gt; &lt;br /&gt; echo min(0, 'hello'); // 0&lt;br /&gt; echo min('hello', 0); // hello&lt;br /&gt; echo min('hello', -1); // -1&lt;br /&gt; &lt;br /&gt; // Com arrays múltiplos, min compara da esquerda para direita,&lt;br /&gt; // assim nesse exemplo: 2 == 2, mas 4 &amp;lt; 5&lt;br /&gt; $val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8)&lt;br /&gt; &lt;br /&gt; // Se ambos forem um array e um não array, o array&lt;br /&gt; // nunca será retornado porque ele é sempre considerado o maior&lt;br /&gt; $val = min('string', array(2, 5, 7), 42); // string&lt;br /&gt; ?&amp;gt;&lt;br /&gt; &lt;br /&gt; count -- Conta o número de elementos de uma variável&lt;br /&gt; int count ( mixed var [, int mode] )&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;div&gt;&amp;lt;?php&lt;br /&gt; $a[0] = 1; &lt;br /&gt; $a[1] = 3; &lt;br /&gt; $a[2] = 5; &lt;br /&gt; $result = count($a);&lt;br /&gt; // $result == 3&lt;br /&gt; &lt;br /&gt; $b[0] = 7;&lt;br /&gt; $b[5] = 9;&lt;br /&gt; $b[10] = 11;&lt;br /&gt; $result = count($b);&lt;br /&gt; // $result == 3;&lt;br /&gt; ?&amp;gt;&lt;/div&gt;
&lt;p&gt;Exemplo 2. Uso recursivo da função count() (PHP &amp;gt;= 4.2.0)&lt;/p&gt;
&lt;div&gt;&amp;lt;?php&lt;br /&gt; $food = array( 'fruits' =&amp;gt; array('orange', 'banana', 'apple'),&lt;br /&gt; 'veggie' =&amp;gt; array('carrot', 'collard','pea'));&lt;br /&gt; // recursive count&lt;br /&gt; echo count($food,COUNT_RECURSIVE); // mostra 8&lt;br /&gt; // normal count&lt;br /&gt; echo count($food); // mostra2 2&lt;br /&gt; ?&amp;gt;&lt;/div&gt;
&lt;br /&gt; pow -- Potência&lt;br /&gt; number pow ( number base, number exp )&lt;/div&gt;
&lt;div&gt;&lt;br /&gt; var_dump( pow(2,8) ); // int(256)&lt;br /&gt; echo pow(-1,20); // 1&lt;br /&gt; echo pow(0, 0); // 1&lt;br /&gt; echo pow(-1, 5.5); // erro&lt;/div&gt;
&lt;br /&gt; rand -- Gera um número aleatório&lt;br /&gt; int rand ( [int min, int max] )&lt;br /&gt; &lt;br /&gt; echo &quot;Exibir 20 números aleatórios entre 20 e 160&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;&lt;br /&gt; for($x=20;$x&amp;lt;40;$x++){&lt;br /&gt; echo rand($x, 4*$x).&quot;&amp;lt;br&amp;gt;&quot;;&lt;br /&gt; }&lt;br /&gt; exit(&quot;Saindo...&quot;);&lt;br /&gt; &lt;br /&gt; round -- Arredonda um número&lt;br /&gt; float round ( float val [, int precision] )&lt;br /&gt; &lt;br /&gt;
&lt;div&gt;&amp;lt;?php&lt;br /&gt; echo round(3.4); // 3&lt;br /&gt; echo round(3.5); // 4&lt;br /&gt; echo round(3.6); // 4&lt;br /&gt; echo round(3.6, 0); // 4&lt;br /&gt; echo round(1.95583, 2); // 1.96&lt;br /&gt; echo round(1241757, -3); // 1242000&lt;br /&gt; echo round(5.045, 2); // 5.04&lt;br /&gt; echo round(5.055, 2); // 5.06&lt;br /&gt; ?&amp;gt;&lt;br /&gt; &lt;br /&gt; sqrt -- Raiz quadrada&lt;br /&gt; float sqrt ( float arg )&lt;/div&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;lt;?php&lt;br /&gt;// Precisão depende de sua diretiva precision&lt;br /&gt;echo sqrt(9); // 3&lt;br /&gt;echo sqrt(10); // 3.16227766 ...&lt;br /&gt;?&amp;gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Forçando a Limpeza do Cache&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt; &amp;lt;?php&lt;br /&gt; // Este é para os servidores de proxy. Diz para baixar, bypassando o proxy&lt;br /&gt; header (&quot;Cache-Control: no-cache, must-revalidate&quot;);&lt;/p&gt;
&lt;p&gt;// Este é para o navegador e nem sempre funciona (falta de padrão entre eles)&lt;br /&gt; header (&quot;Pragma: no-cache&quot;);&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p&gt;Redirecionamento de Páginas&lt;/p&gt;
&lt;p&gt;header(&quot;location: novapagina.php&quot;);&lt;/p&gt;
&lt;p&gt;Exibir o conteúdo de um arquivo&lt;/p&gt;
&lt;p&gt;readfile -- Lê e exibe o conteúdo de um arquivo&lt;/p&gt;
&lt;p&gt;readfile('http://www.google.com.br');&lt;/p&gt;
&lt;p&gt;readfile('/home/1www/pagina2.php');&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Enviar E-mail via PHP&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;?php&lt;br /&gt; $to = &quot;ribamar.sousa@dnocs.gov.br&quot;;&lt;br /&gt; $subject=&quot;Apenas testando&quot;;&lt;br /&gt; $message = &quot;Estou testando o envio de e-mail pelo PHP.&quot;;&lt;br /&gt; $email=&quot;ribafs@gmail.com&quot;;&lt;br /&gt; $ret=mail($to, $subject, $message, &quot;From: $email\r\nReply-to: $email\r\n&quot;);&lt;br /&gt; echo $ret;&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usando Favicon em sites&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Aquele pequeno ícone que fica à esquerda da URL do site, na caixa Location do Browser,&lt;br /&gt; que inclusive personaliza a barra de links quando arrastamos o endereço do site.&lt;br /&gt; Para que nosso site apareça para o visitante com um link, devemos seguir os&lt;br /&gt; seguintes procedimentos:&lt;/p&gt;
&lt;p&gt;- Criar uma imagem com o logo do site, no formato png, jpg, gif, etc com 32x32 pixels&lt;br /&gt; - Salvar como favicon.png ou outra extensão&lt;br /&gt; - Adicionar a TAG abaixo, na TAG head, como abaixo:&lt;br /&gt; &amp;lt;head&amp;gt;&lt;br /&gt; ...&lt;br /&gt; &amp;lt;link href=&quot;http://www.seusite.com.br/diretorio/favicon.png&quot; type=&quot;image/gif&quot; rel=&quot;icon&quot;&amp;gt;&lt;br /&gt; ...&lt;br /&gt; &amp;lt;/head&amp;gt;&lt;/p&gt;
&lt;p&gt;Também pode ser assim:&lt;br /&gt; rel=&quot;shortcut icon&quot;&lt;/p&gt;
&lt;p&gt;Este ícone pode ser inclusive animado.&lt;br /&gt; Referência: lista da Dicas-L (http://www.dicas-l.com.br).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Livros&lt;/strong&gt;&lt;br /&gt; Desenvolvendo Web Sites com PHP&lt;br /&gt; Editora Novatec&lt;br /&gt; Juliano Niederauer&lt;/p&gt;
&lt;p&gt;PHP para quem conhece PHP&lt;br /&gt; Editora Novatec&lt;br /&gt; Juliano Niederauer&lt;/p&gt;
&lt;p&gt;PHP Guia do Desenvolvedor&lt;br /&gt; Ed. Berkeley&lt;br /&gt; Sterling Hughes&lt;br /&gt; (Do grupo de desenvolvimento do PHP)&lt;/p&gt;
&lt;p&gt;Desvendando aplicações na Web com PHP 4.0&lt;br /&gt; Ed. Ciência Moderna&lt;br /&gt; Tobias Retschiller e&lt;br /&gt; Till Gerken&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;PHP&lt;br /&gt; &lt;a href=&quot;http://www.zend.com/&quot;&gt;http://www.php.net&lt;br /&gt; http://www.php.net/manual/pt_BR/&lt;br /&gt; http://www.phpbrasil.com/&lt;br /&gt; http://www.planet-source-code.com/vb/default.asp?lngWId=8&lt;br /&gt; http://www.hotscripts.com/PHP/index.html&lt;br /&gt; http://www.zend.com&lt;/a&gt; (empresa dos dois membros israelenses da equipe de desenvolvimento do PHP, especial ênfase na seção Developer Zone)&lt;br /&gt; &lt;a href=&quot;http://www.devshed.com/&quot;&gt;http://www.phpwizard.net&lt;br /&gt; http://www.phpclasses.org&lt;br /&gt; http://www.weberdev.com&lt;br /&gt; http://www.devshed.com&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;http://www.phpnet.us/&quot;&gt;http://www.phpmania.org/&lt;br /&gt; http://www.phpnet.us/&lt;/a&gt; - Hospedagem free para PHP e MySQL (300MB)&lt;br /&gt; &lt;a href=&quot;http://ribafs.byethost2.com/&quot;&gt;http://www.superphp.com.br&lt;br /&gt; http://www.scriptbrasil.com/&lt;br /&gt; http://www.faqts.com/knowledge_base/index.phtml/fid/51/&lt;br /&gt; http://www.alt-php-faq.org/&lt;br /&gt; http://ribafs.byethost2.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;CURSOS GRÁTIS&lt;/small&gt;&lt;/strong&gt;&lt;br /&gt; &lt;a href=&quot;http://cursos.cdtc.org.br/brasil/&quot;&gt;http://cursos.cdtc.org.br/brasil/&lt;/a&gt; - Cursos Grátis para Func.Públ.&lt;br /&gt; &lt;a href=&quot;http://www.solocursosgratis.com/cursos_gratis_php-slctema264.htm&quot;&gt;http://www.apostilando.com/download.php?cod=171&amp;amp;categoria=PHP&lt;br /&gt; http://www.aprendaemcasa.com.br/apcasa6.htm&lt;br /&gt; http://www.solocursosgratis.com/cursos_gratis_php-slctema264.htm&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;CLIPARTS&lt;br /&gt; &lt;a href=&quot;http://www.digitmania.holowww.com/digital.html&quot;&gt;http://www.digitmania.holowww.com/digital.html&lt;/a&gt; – Dígitos (cliparts)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://paginas.terra.com.br/informatica/php_editor/&quot;&gt;EDITORES&lt;br /&gt; http://paginas.terra.com.br/informatica/php_editor/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;POSTGRESQL&lt;br /&gt; &lt;a href=&quot;http://www.postgresql.org/docs/current/interactive/&quot;&gt;http://www.postgresql.org/docs/current/interactive/&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;http://pgdocptbr.sourceforge.net/pg80/index.html&quot;&gt;http://pgdocptbr.sourceforge.net/pg80/index.html&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;http://www.designmagick.com/category/3/PostgreSQL&quot;&gt;http://www.designmagick.com/category/3/PostgreSQL&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;SQL&lt;a href=&quot;http://tutorials.findtutorials.com/&quot;&gt;&lt;br /&gt; &lt;/a&gt;&lt;a href=&quot;http://www.firstsql.com/tutor.htm&quot;&gt;http://www.firstsql.com/tutor.htm&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;http://sqlzoo.net/&quot;&gt;http://sqlzoo.net/&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;http://www.sql-tutorial.net/SQL-tutorial.asp&quot;&gt;http://www.sql-tutorial.net/SQL-tutorial.asp&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;http://www.programmingtutorials.com/sql.aspx&quot;&gt;http://www.programmingtutorials.com/sql.aspx&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;http://tutorials.findtutorials.com/&quot;&gt;http://tutorials.findtutorials.com/&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;http://www.hardened-php.net/home.8.html&quot;&gt;http://www.hardened-php.net/home.8.html&lt;/a&gt; - Hardened PHP Project&lt;br /&gt;&lt;a href=&quot;http://www.1phpscripts.com/&quot;&gt;http://www.1phpscripts.com/&lt;br /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.weberdev.com/&quot;&gt;http://www.weberdev.com/&lt;br /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.goldsofts.com/scriptscategory/10/0/1/0.html&quot;&gt;http://www.goldsofts.com/scriptscategory/10/0/1/0.html &lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;





&lt;/code&gt;&lt;/p&gt;</content>
		<category term="PHP" />
	</entry>
</feed>
