sexta-feira, 27 de junho de 2008

PHP - Principais características

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.
Características:

• Velocidade e robustez
• Estruturado e orientação a objeto
• Portabilidade - independência de plataforma - escreva uma vez, rode em qualquer lugar;
• Tipagem fraca
• Sintaxe similar a Linguagem C/C++ e o PERL

Exemplo da sintaxe

"2") // se a variavel $x igual a 2 OU maior que 2
{
echo 'Olá mundo!'; // escreve "Olá mundo!"
} else { // Se não.
print('Adeus mundo!'); // escreve 'Adeus mundo!', print pode ser usado com ou sem parênteses.
}

?>

PHP 5

Em junho de 2004 foi lançada a versão 5 do PHP, introduzindo um novo modelo de orientação a objeto, como por exemplo:

• Reformulação dos Construtores e adição de Destrutores

O construtor



O destrutor



• Visibilidade de acesso
• Abstração de objeto
• Interfaces de objetos

O tratamento de objetos do PHP foi completamente reescrito, permitindo um desempenho melhor e mais vantagens. Enquanto na versão anterior era preciso muito esforço para atender à orientação a objetos e aos padrões de projectos (alguns não eram possíveis), o PHP 5 veio para sanar essa deficiência. Ainda sofre nesse sentido, contudo, por problemas devido a ser uma linguagem de tipagem fraca.

Indução de tipo

Nesse sentido, foi adicionada uma característica chamada de indução de tipo, de acordo com a qual podemos ter uma certa tipagem quando passamos objetos aos parâmetros de uma função (ou método), algo inconcebível na versão anterior.

Por exemplo:



Visibilidade

A visibilidade de uma propriedade ou método pode ser definida com os seguintes modificadores de acesso: public, protected ou private. Itens declarados como públicos podem ser acessados pelo objeto (instância da classe). Membros protegidos estão acessíveis às classes filhas (herdadas). A visibilidade privada limita a apenas a classe que define o atributo ou método.

Por exemplo:

class ClassePai
{
private $atributoPrivado;
protected $atributoProtegido;

public function imprimePai()
{
$this->atributoPrivado = 'Privado';
echo $this->atributoPrivado;
}
}

class ClasseFilha extends ClassePai
{
public $atributoPublico;

public function imprimeFilho()
{
$this->atributoProtegido = 'Protegido';
echo $this->atributoProtegido;

}
}

$obj = new ClasseFilha();// Estanciando a classe
echo $obj->imprimePai(); // Exibe na tela 'Privado'
echo $obj->imprimeFilho(); // Exibe na tela 'Protegido'

// É permitido o acesso pelo objeto aos atributos públicos:
$obj->atributoPublico = 'Sobrenome: Muzzy';
echo $obj->atributoPublico; // Exibe na tela 'Sobrenome: Muzzy'

Outros exemplos

Ler dois valores registrados em variáveis e indicar o maior

$valor2) {
echo "A variável $valor1 é maior que a variável $valor2";
} else if ($valor2 > $valor1) {
echo "A variável $valor2 é maior que a variável $valor1";
} else {
echo "A variável $valor1 é igual à variável $valor2";
}
?>

Mostrar na página os dez primeiros números

3 comentários:

Anônimo disse...

Inicialmente, ela foi concebida única e exclusivamente para desenvolvimento dinâmicos de paginas web, usado em conjunto com perl.

Atualmente, como você citou no artigo, usa-se php em conjunto com a biblioteca gráfica GTK. E por ser uma linguagem de script, ela também é usada em interfaces de linha de comando.

Sua orientação a objetos não é fraca por ser uma linguagem de tipagem fraca, ela fraca porquê foi criada como linguagem procedural, e desde o PHP 4 vem se introduzindo conceitos de orientação a objetos, e no PHP 5 fortaleceu-se a sua orientação a objetos.

Em outras linguagens como Ruby, que além de ser tipagem fraca é dinâmica, ela foi concebida totalmente orientada a objetos.

Por reflexo de mercado, o PHP vem mudando sua estrutura e sua linguagem, se adaptando a novos paradigmas e a grande esperança é no PHP 7 (o 6 vem apenas com algumas mudanças em relação ao 5, apenas com adição de novas funcionalidades e a orientação a objetos mais profunda) se tenha realmente o PHP Orientado a Objetos.

Por último, quando se programa Orientado a Objetos, fazemos referência a Objetos e não a classes. Modificadores de acesso são usados em objetos e não em classes, a sua visibilidade se da há em objetos herdados.

Abraços e boa sorte ;)pbh

Anônimo disse...

gostei do blog, e gostaria de saber em relação ao curso que será ministrado, que vi no site 180 graus...

bem, ruby não tem tipagem fraca, a tipagem do ruby é forte, ela é muito menos permissiva do que php.

PHP provê orientação a objetos muito boa, e não fica devendo nada para as outras linguagens, a equipe da zend vem trabalhando arduamente para o aprimoramento da linguagem e temos soluções maduras
como propel, creole, symfony framework que considero as vezes até superior que o rails.

esse negócio de que o php "será" realmente orientado a objetos é papo furado, podemos trabalhar em nível de objeto em todas as camadas do mvc.

é cada um que aparece...

Anônimo disse...

Tipagem fraca (ou dinâmica) http://en.wikipedia.org/wiki/Type_system#Dynamic_typing

Sim podemos trabalhar com Orientação a Objetos em PHP, mas nem tudo vai ser objeto, nem tudo ainda é objeto, e talvez nem tudo vá virar Objeto como é com Ruby, ou outras linguagens que além de ser Orientadas a Objetos, são construídas em Objetos como Smalltalk, Python, entre outras.