PHP Paradigmaprocedural, reflexão, orientação a objetos, funcional Surgido em1995 Última versão7.3.3 (7 de março de 2019; há 4 meses[1]) Versão em teste7.3.0RC6 (22 de novembro de 2018; há 7 meses[2]) Criado porRasmus Lerdorf Estilo de tipagem:dinâmica CompiladoresLinguagem interpretada Influenciada porC, C++, Perl, Java, Tcl
Extensão do arquivo:.php, .phtml, .php3, .php4, .php5, .php7, .phps Página oficialwww.php.net
PHP (um acrônimo recursivo para "PHP: Hypertext Preprocessor", originalmente Personal Home Page) é uma linguagem interpretada livre, usada originalmente apenas para o desenvolvimento de aplicações presentes e atuantes no lado do servidor, capazes de gerar conteúdo dinâmico na World Wide Web.[3] Figura entre as primeiras linguagens passíveis de inserção em documentos HTML, dispensando em muitos casos o uso de arquivos externos para eventuais processamentos de dados. O código é interpretado no lado do servidor pelo módulo PHP, que também gera a página web a ser visualizada no lado do cliente. A linguagem evoluiu, passou a oferecer funcionalidades em linha de comando, e além disso, ganhou características adicionais, que possibilitaram usos adicionais do PHP, não relacionados a web sites. É possível instalar o PHP na maioria dos sistemas operacionais, gratuitamente. Concorrente direto da tecnologia ASP pertencente à Microsoft, o PHP é utilizado em aplicações como o MediaWiki, Facebook, Drupal, Joomla, WordPress, Magento e o Oscommerce.
Criado por Rasmus Lerdorf em 1995, o PHP tem a produção de sua implementação principal, referência formal da linguagem, mantida por uma organização chamada The PHP Group. O PHP é software livre, licenciado sob a PHP License, uma licença incompatível com a GNU General Public License (GPL) devido a restrições no uso do termo PHP.Índice1 História1.1 Licença
1.2 PHP 6 e Unicode
1.3 Histórico de versões
2 Principais características
3 Exemplo 1 - Vetores e matrizes
4 Exemplo 2 - Teste de Conexão
5 Exemplo 3 - Teste de Login
6 Exemplo 4 - Função Dias da Semana
7 PHP 57.1 Indução de tipo
7.2 Visibilidade
8 Polimorfismo8.1 Polimorfismo Paramétrico
8.2 Polimorfismo por Inclusão
8.3 Polimorfismo por Coerção
9 Extensões
10 Ver também
11 Referências
12 Bibliografia
13 Ligações externasHistória[editar | editar código-fonte]
A linguagem foi criada em 1994 e o código fonte do PHP só foi liberado em 1995, como um pacote de programas CGI criados por Rasmus Lerdorf, com o nome Personal Home Page Tools, para substituir um conjunto de scripts Perl que ele usava no desenvolvimento de sua página pessoal. Em 1997 foi lançado o novo pacote da linguagem com o nome de PHP/FI, trazendo a ferramenta Forms Interpreter, um interpretador de comandos SQL. Mais tarde, Zeev Suraski desenvolveu o analisador do PHP 3 que contava com o primeiro recurso de orientação a objetos, que dava poder de alcançar alguns pacotes, tinha herança e dava aos desenvolvedores somente a possibilidade de implementar propriedades e métodos.[4][5] Pouco depois, Zeev e Andi Gutmans, escreveram o PHP 4, abandonando por completo o PHP 3, dando mais poder à máquina da linguagem e maior número de recursos de orientação a objetos. O problema sério que apresentou o PHP 4 foi a criação de cópias de objetos, pois a linguagem ainda não trabalhava com apontadores ou handlers, como são as linguagens Java, Ruby e outras. O problema fora resolvido na versão atual do PHP, a versão 5, que já trabalha com handlers. Caso se copie um objeto, na verdade copiaremos um apontador, pois, caso haja alguma mudança na versão original do objeto, todas as outras também sofrem a alteração, o que não acontecia na PHP 4.[6]
Trata-se de uma linguagem extremamente modularizada, o que a torna ideal para instalação e uso em servidores web. Diversos módulos são criados no repositório de extensões PECL (PHP Extension Community Library) e alguns destes módulos são introduzidos como padrão em novas versões da linguagem. É muito parecida, em tipos de dados, sintaxe e mesmo funções, com a linguagem C e com a C++. Pode ser, dependendo da configuração do servidor, embarcada no código HTML. Existem versões do PHP disponíveis para os seguintes sistemas operacionais: Windows, Linux, FreeBSD, Mac OS, OS/2, AS/400, Novell Netware, RISC OS, AIX, IRIX e Solaris.
Construir uma página dinâmica baseada em bases de dados é simples com PHP, (em parte, vale lembrar), este provê suporte a um grande número de bases de dados: Oracle, Sybase, PostgreSQL, InterBase, MySQL, SQLite, MSSQL,
Firebird, etc., podendo abstrair o banco com a biblioteca ADOdb, entre outras. A Wikipédia funciona sobre um software inteiramente escrito em PHP, usando bases de dados MySQL: o MediaWiki.[6]
PHP tem suporte aos protocolos: IMAP, SNMP, NNTP, POP3, HTTP, LDAP, XML-RPC, SOAP. É possível abrir sockets e interagir com outros protocolos. E as bibliotecas de terceiros expandem ainda mais estas funcionalidades. Existem iniciativas para utilizar o PHP como linguagem de programação de sistemas fixos. A mais notável é a PHP-GTK. Trata-se de um conjunto do PHP com a biblioteca GTK, portada do C++, fazendo assim softwares inter-operacionais entre Windows e Linux. Na prática, essa extensão tem sido muito pouco utilizada para projetos reais.[6]
O acrônimo recursivo PHP representa um elefante, que é conhecido como o mascote da linguagem.Licença[editar | editar código-fonte]
PHP é um software gratuito e de código aberto disponível sob a PHP License, que afirma:[7]Produtos derivados deste software não devem ser chamado de PHP, nem pode conter "PHP" em seu nome, sem prévia permissão por escrito da group@php.net. Você pode indicar que o software funciona em conjunto com o PHP, dizendo "Foo para PHP", em vez de chamá-lo "PHP Foo" ou "phpfoo".
Esta restrição no uso do nome PHP torna-o incompatível com a GNU General Public License (GPL).[8]PHP 6 e Unicode[editar | editar código-fonte]
PHP recebeu diversas críticas por não ter suporte nativo a Unicode.[9][10] Em 2005, um projeto liderado por Andrei Zmievski foi iniciado para trazer esse dito suporte ao PHP através da incorporação da biblioteca International Components for Unicode (ICU) para poder passar-se a usar a codificação UTF-16.[11] Uma vez que isso causaria grandes mudanças tanto no código fonte como para o usuário, foi planejado lançá-la na versão 6.0 em conjunto com outros importantes recursos, então em desenvolvimento, em vez da 5.5.[12]
Entretanto, devido a falta de desenvolvedores que entendessem as mudanças necessárias e problemas de desempenho decorrentes da conversão para UTF-16, que raramente é usado em um contexto web, levou a atrasos no projeto. Como resultado, o PHP 5.3 foi lançado em 2009, sem total suporte ao Unicode, mas contendo algumas das novidades que seriam lançadas no PHP 6.0. Em março de 2010, o projeto em sua forma atual foi oficialmente abandonado, e uma versão 5.4 do PHP foi feita ainda sem total suporte a Unicode, também contendo as novidades que seriam lançadas no PHP 6.0.[13] Esperanças iniciais eram de que um novo plano seria formado para ter a integração Unicode, mas a partir de 2014 nenhum foi adotado.
Durante os anos, antes do lançamento do PHP 5.3 e 5.4, alguns livros foram publicados com base no conjunto de recursos esperado de PHP 6.0, incluindo o suporte a Unicode e os recursos que depois foram trazidos para outros lançamentos. Há, portanto, algum debate sobre se uma nova versão principal do PHP, com ou sem suporte a Unicode, deve ser chamado de "PHP 6", ou se a nomenclatura deve ser ignorado para evitar confusão.Histórico de versões[editar | editar código-fonte]Legenda
VermelhoVersão antigaNenhum desenvolvimento
AmareloVersão estávelCorreções de segurança
VerdeVersão estávelCorreções de segurança e de bugs
AzulVersões futurasNovos recursos
Versão principal
Versão intermediária
Data de lançamento
Notas
11.0.01995-06-08Oficialmente chamado de "Personal Home Page Tools (PHP Tools)" (Ferramentas para página pessoal). Este foi o primeiro uso para o nome "PHP".
22.0.01997-11-01Considerado pelo seu criador como a "mais rápida e simples ferramenta" para criar páginas dinâmicas para a Web.
33.0.01998-06-06O desenvolvimento passou a ser feito por vários desenvolvedores em colaboração. Zeev Suraski e Andi Gutmans reescreveram toda a base do PHP nesta versão.
3.0.182000-10-20Última versão para do PHP 3.0.x. Unsupported Historical Releases
44.0.02000-05-22Foi adicionado um melhor sistema de análise sintática (parser) chamado de motor Zend (Zend engine).[14]
4.1.02001-12-10Introduzidas as 'superglobais' ($_GET, $_POST, $_SESSION, etc.)[14]
4.2.02002-04-22A register_globals passou agora a estar desativada por padrão. Dados recebidos via rede são mais inseridos no escopo de variável global, fechando possíveis brechas de segurança.[14]
4.3.02002-12-27Introduziu sua interface de linha de comando (command-line interface - CLI), para complementar o CGI.[14][15]
4.4.02005-07-11Adicionadas as páginas do manual para os script phpize e php-config.[14]
4.4.92008-08-07Melhorias na segurança e correção de bugs. Última versão do PHP 4.4.x.[16][17]
55.0.02004-07-13Zend Engine II com um novo modelo de objeto.[18]
5.1.02005-11-24Melhorias na performance com a introdução de variáveis de compilação na reengenharia do motor PHP.[18] Adicionada biblioteca PHP Data Objects (PDO) como uma nova interface de acesso aos bancos de dados.[19]
5.2.02006-11-02Habilitado por padrão o filtro de extensões. Suporte JSON nativo.[18]
5.2.162010-12-16Última versão para a série 5.2.[20]
5.2.172011-01-06Correção de vulnerabilidade crítica relacionada a ponto flutuante.
5.3.02009-06-30Suporte a nomes de espaço (namespace), Vinculação de nomes (late static bindings), rótulos de salto de código (goto limitado), clausura nativa, arquivos PHP nativos (phar), coletor de lixo para referências circulares, suporte Windows melhorado, sqlite3, mysqlnd em substituição a libmysql como biblioteca de extensão de trabalho com MySQL, fileinfo em substituição ao mime_magic para um melhor suporte MIME, extensão de internacionalização, e descontinuidade da extensão ereg.
5.3.12009-11-19Mais de 100 correções de problemas, dentre eles algumas falhas de segurança.
5.3.22010-03-04Grande número de correção de bugs.
5.3.32010-07-22Principalmente correções de bugs e segurança; FPM SAPI.
5.3.42010-12-10Principalmente correções de bugs e segurança; FPM SAPI melhorado.
5.3.52011-01-06Conserto de erro crítico relacionado a ponto flutuante.
5.3.62011-03-10Mais de 60 correções de bug reportados em versões anteriores.
5.3.72011-08-18Esta versão focou-se na melhoria da estabilidade da série PHP 5.3.x com mais de 90 correções de bug, algumas relacionadas também à segurança.
5.3.82011-08-23Esta versão corrigiu dois problemas introduzidos na versão PHP 5.3.7.
5.3.92012-01-10Esta versão focou-se na melhoria da estabilidade da série PHP 5.3.x.
5.3.102012-02-02Corrigida execução remota arbitrária reportada por Stefan Esser, CVE-2012-0830.
5.3.132012-05-08Corrigida vulnerabilidade nas instalações utilizando CGI.
5.3.142012-06-06bugs corrigidos.
5.3.152012-07-19bugs corrigidos.
5.3.162012-08-16bugs corrigidos.
5.3.172012-09-13bugs corrigidos.
5.3.212013-01-17bugs corrigidos.
5.4.02012-03-01Suporte à Trait, suporte a uma versão mais curta na sintaxe de vetores. Items removidos: register_globals, safe_mode, allow_call_time_pass_reference, session_register(), session_unregister() and session_is_registered(). Servidor web embutido.[21]. Várias melhorias nas fucionalidades já existentes e na performance. Redução dos requerimentos de memória.
5.4.12012-04-26correções de bugs.
5.4.22012-05-03Pacote de segurança para corrigir vulnerabilidade em chamadas PHP-CGI.
5.4.32012-05-08Correção de vulnerabilidade relacionada às instalações baseadas em CGI e correção em vulnerabilidade de buffer overflow na função apache_request_headers().
5.4.42012-06-06correções de bugs.
5.4.52012-07-19correções de bugs.
5.4.62012-08-16correções de bugs.
5.4.72012-09-13correções de bugs.
5.4.112013-01-17correções de bugs.
5.5.02013-06-20correções de bugs.
5.6.92015-05-14correções de bugs.
77.0.02015-12-03Após muitos anos de desenvolvimento, finalmente a linguagem foi lançada, porém com uma performance surpreendente. A nova versão não trouxe apenas melhorias em performance, mas também novas funcionalidades, além de implementar e fortificar novos recursos na orientação a objetos.
7.1.02016-12-01correções de bugs [1].
7.2.32018-03-01correções de bugs.
7.3.32019-03-07correções de bugs.Principais características[editar | editar código-fonte]
A linguagem PHP é uma linguagem de programação de domínio específico, ou seja, seu escopo se estende a um campo de atuação que é o desenvolvimento web, embora tenha variantes como o PHP-GTK. Seu propósito principal é de implementar soluções web velozes, simples e eficientes[22]. Características:Velocidade[23] e robustez[24].
Orientação a objetos.
Portabilidade - independência de plataforma - escreva uma vez, rode em qualquer lugar.
Tipagem dinâmica.
Sintaxe similar a C/C++ e o Perl.
Open-source.
Server-side (O cliente manda o pedido e o servidor responde em página HTML)
Exemplo 1 - Vetores e matrizes[editar | editar código-fonte]
Os vetores e matrizes em PHP, diferente do que ocorre em C/C++ e Pascal, são estruturas dinâmicas, o que pode facilitar muito o trabalho do programador.
Um exemplo: $vet01 = array();
$vet01[] = "Sistemas operacionais";
$vet01[] = "Compiladores";
$vet01[] = "Bancos de dados";
$vet02 = array(1, 2, 3, 4, 5);
$vet03 = array( 0 => 0, 2 => 3, 10 => "item 10");
$vet04 = ['valor 1', 'string 2', 3, 4.0, false];
$vet05 = ["chave1" => 'valor 1', 2, 3, 4, array('item 1', 2 => 0.5)];
for ($i = 0; $i < count($vet01); $i++) {
echo $vet01[$i] . "
";
}
?>O exemplo acima demonstra cinco maneiras diferentes de declarar vetores, sendo que os índices não são obrigatórios, e se declarados não precisam ser apenas números ou mesmo sequenciais.
Os exemplos $vet04 e $vet05 mostram que é possível misturar tipos de dados dentro do vetor, sendo que no $vet05 mostra que em qualquer posição do vetor é possível declarar um outro vetor, resultando em uma matriz.Exemplo 2 - Teste de Conexão[editar | editar código-fonte]
O exemplo abaixo testa se ha conexão com o banco de dados.
// Conexão com o banco de dados
$host = "localhost";
$db = "nome-database";
$user = "root";
$pass = "";
$con = mysql_connect($host,$user,$pass);
if(mysql__db($db, $con)){
echo "conexao bem sucedida"; //Teste para garantir que há conexão
}
else {
echo"conexao falhou";
}
?>Exemplo 3 - Teste de Login[editar | editar código-fonte]
O exemplo abaixo testa se usuário está com login no banco de dados.
// função verifica se o login está feito
function checaLogin($login){
if(isset($login['login'])){
if(!empty($login['login']) and ($status['status'] == false)) {
$aviso = 'Você não está logado, faça o login para continuar'
$status=false
echo $aviso;
die();
}
}
else{
$status=true
$aviso = 'Você está logado'
echo $aviso;
}
}
?>Exemplo 4 - Função Dias da Semana[editar | editar código-fonte]
O exemplo abaixo conforme a data atual, obtém os dias da semana.date_default_timezone_set("Brazil/São Paulo");
function diasemana($data) {
$d = explode('/', $data);
$anohoje = $d[2];
$meshoje = $d[1];
$diahoje = $d[0];
$diasemana = date("w", mktime(0,0,0,$meshoje,$diahoje,$anohoje) );
switch($diasemana)
{
case"0": $diasemana = "Domingo"; break;
case"1": $diasemana = "Segunda Feira"; break;
case"2": $diasemana = "Terça Feira"; break;
case"3": $diasemana = "Quarta Feira"; break;
case"4": $diasemana = "Quinta Feira"; break;
case"5": $diasemana = "Sexta Feira"; break;
case"6": $diasemana = "Sabado"; break;
}
return "$diasemana";
}
echo '
PROGRAMAÇÃO EM PHP EM CAMPO BONITO
Encontre programação em php em Campo Bonito na Web4business - Desenvolvimento de Sistemas e Sites Personalizados.
PROGRAMAÇÃO EM PHP EM CAMPO DO BRITO
Encontre programação em php em Campo do Brito na Web4business - Desenvolvimento de Sistemas e Sites Personalizados.
PROGRAMAÇÃO EM PHP EM CAMPO DO MEIO
Encontre programação em php em Campo do Meio na Web4business - Desenvolvimento de Sistemas e Sites Personalizados.
PROGRAMAÇÃO EM PHP EM CAMPO DO TENENTE
Encontre programação em php em Campo do Tenente na Web4business - Desenvolvimento de Sistemas e Sites Personalizados.