Fundamentos de OOP em PHP Programação Orientada a Objetos em PHP - Parte 1 Introdução Esta é uma parte da minha série, Programação Orientada a Objetos em PHP. OOP significa Programação Orientada a Objetos. Nesta parte da série, nós olhamos para noções básicas OOP PHP. Nota: Se você não pode ver o código ou se você acha que alguma coisa está faltando (link quebrado, imagem ausente), apenas contacte-me em [email protected]. Ou seja, contacte-me para o menor problema que você tem sobre o que você está lendo.
Pré-requisitos Existem outros artigos (tutoriais) que eu escrevi neste blog em PHP. Você precisa ter lê-los ou artigos semelhantes, antes de ler esta série. Os títulos dos artigos neste blog, que são pré-requisito para ler esta série são: - Introdução ao PHP - Variáveis como sinônimos em PHP - escopo global e função variável em PHP - Alguns tipos de dados escalares em PHP A linguagem de computador se acumula. Há certas coisas que você tem que aprender primeiro e depois usá-los para aprender coisas mais elevadas. Cada um dos títulos acima é ou um tutorial ou o primeiro tutorial uma série.
Se é a primeira parte de uma série, então você deve ter lido toda a série. Se é um tutorial que está sozinho, então você deve ter lido o tutorial. Para chegar a qualquer um dos artigos, basta digitar o título do artigo e meu nome Chrys na caixa de pesquisa da página e clique em Pesquisar. Preâmbulo Quando você tem um conjunto de variáveis e funções que trabalham juntos e que aparecem em muitas partes do seu código, você pode colocar tudo isso em uma unidade generalizada, chamada de classe. Não haverá necessidade de repetição de digitação do conjunto.
Neste tutorial, estamos a falar de um conjunto de variáveis e funções. O conjunto de variáveis e funções formam uma classe, se reuniu em uma maneira especial. As funções trabalhar com os valores das variáveis. Sob esta condição, é possível que os valores das variáveis e os resultados das funções que acompanham pode estar a mudar. Para utilizar a classe depois de ter sido definido, você tem que criar uma unidade correspondente a partir da classe, tudo é igual. Essa unidade particular é chamado de um objeto.
Nesta parte da série, eu dar-lhe a explicação básica de classes PHP e seus objetos. Você deve ler esta série na ordem dada; ou seja, você começa com a parte 1, parte 2, em seguida, em seguida, parte 3 e assim por diante. Grupo de variáveis e funções Vamos considerar um grupo de variáveis e funções que iria trabalhar como uma unidade generalizada. Leia e tente o seguinte código e observe que ele retorna a soma de 2 e 3.
$ num1 = 2; $ num2 = 3; função add ($ no1, no2 $) {$ sum = $ no1 + $ NO2; return $ soma; } $ Result = adicionar ($ num1, num2 $); echo $ result; ?> Você tem duas variáveis (num1 e num2) e uma função (adicionar). No código, a função é chamada, e voltou a soma é realizada na variável, resultado. O resultado é enviado para a saída (web browser) a. Agora o código acima resume dois números específicos, que são 2 e 3. Você iria querer um pedaço de código que soma dois números quaisquer, e não apenas 2 e 3.
Uma possibilidade é incluir outra função que iria receber os dois números, altere a Os valores das duas variáveis, em seguida, chamar o add ($ no1, no2 $) função. Há uma outra possibilidade, que se tornou muito popular ao longo dos anos; é criar uma classe, em seguida, criar um objeto da classe que gostaria de acrescentar quaisquer dois números particulares. Uma classe é uma unidade generalizada do código, a partir do qual as coisas chamar objetos podem ser criados para fazer determinadas tarefas. Um objeto é chamada de instância de uma classe.
Nota: no código acima as duas variáveis ($ num1 e num2 $) ea função (add ()), trabalham juntos. É por isso que é aconselhável ter as duas variáveis ea função em uma unidade chamada de classe. Classe Uma classe é uma unidade generalizada (definição) a partir do qual os objetos podem ser instanciado (criado). Uma classe é basicamente uma unidade de código que tem variáveis e funções que trabalham em conjunto. As variáveis são chamadas de propriedades e as funções são chamadas métodos.
Uma classe pode resolver um problema (realização de uma tarefa), mas geralmente não é aconselhável para uma classe para resolver um problema. É um objecto criado a partir de uma classe que é esperado para efectuar uma tarefa (resolver um problema); não a classe. Quando você cria um objeto de uma classe, nós dizemos que você está instanciar o objeto. Uma variável da classe é chamado de propriedade da classe. Uma função da classe é chamado um método da classe. Propriedades de uma classe também são chamados de membros (da classe) de dados.
Um objeto criado a partir de uma classe tem as mesmas propriedades e métodos da classe. A Classe e Objeto criado a partir do código acima O código acima pode ser convertida em uma classe e objeto da seguinte maneira: class Calculator {$ num1 pública; $ num2 pública; add public function () {$ sum = $ this-> num1 + $ this-> num2; return $ soma; }} $ MyObj = new Calculator (); $ myObj-> num1 = 2; $ myObj-> num2 = 3; $ result = $ myObj-> add (); echo $ result; ?> Você definir uma classe que começa com a palavra reservada, classe. Então você tem um espaço e depois segui-lo com o nome da classe.
Você escolheu o nome que você quiser dar para a classe. Tenho dado a Calculadora nome porque a classe está fazendo algum cálculo. Após o nome da classe, você tem um par de chaves. Há declarações e blocos dentro das chaves. Todas as declarações para a classe ir dentro das chaves. É convencional para digitar as variáveis antes de as funções. As variáveis na classe são chamados de propriedades e as funções da classe são chamados métodos. Na definição de uma classe básica como a citada acima, você preceder as propriedades e métodos com a palavra reservada, público.
As variáveis e a função que tivemos no programa anterior são as mesmas variáveis e função que temos agora na classe. Dentro de uma definição de método (função) em uma definição de classe, para acessar uma propriedade, você começa com a variável predefinida, $ this. $ isto significa que a classe ou objeto que tem o método. Depois de digitar $ this, você digita o operador seta ->. Depois que você digitar o nome da propriedade (variável) sem o sinal $. Leia a descrição da classe acima para apreciar como uma classe é definida.
Em circunstâncias normais, você declarar as propriedades em uma classe, e você não inicializa-la. É por isso que a classe acima, num1 e num2 não têm quaisquer valores atribuídos a elas. Essa é uma prática comum. Você ainda pode atribuir valores para as propriedades, se você quiser, como você faria para variáveis fora da classe. Não é o que se chama a função construtora que pode ser usado para atribuir valores iniciais para eles como um objecto está a ser criado (instanciados) da classe (ver mais tarde).
Nota: É costume de começar o nome de uma classe com uma letra maiúscula e o nome de um objeto com uma pequena carta. Criando um objeto da classe sem função Construtor Uma classe como o descrito acima não tem uma função de construtor (ver mais adiante). Quando uma classe não tem uma função de construtor, você instanciar um objeto a partir dele, começando com a palavra reservada, novo. Isto é seguido por um espaço e, em seguida, o nome de classe, seguido por parênteses. A palavra, novo é um operador, que retorna uma referência para o objeto criado (instanciado) em uma região na memória.
A referência retornada é atribuído a uma variável. Observe no programa acima como o objeto, $ myObj é instanciado. Normalmente, ele é o objeto que realiza sua tarefa e não a classe. No entanto, pode fazer a classe para levar a cabo a sua tarefa, mas isso não é uma boa prática. O objeto instanciado tem todas as propriedades e métodos que a classe que foi instanciado a partir, tem. A classe eo objeto instanciado pode ser considerado como duas peças diferentes de código na memória.
Para aceder a uma propriedade ou um método de um objeto instanciado, você digite o nome do objeto em primeiro lugar, em seguida, o operador de seta e, em seguida, o nome da propriedade sem o sinal $ ou o nome do método. No programa acima, o objeto $ myObj é instanciado e, em seguida, sua propriedade, num1 é dado o valor, 2 e sua num2 propriedade recebe o valor 3. Você pode instanciar um objeto diferente da mesma forma dando-lhe um nome diferente e diferente Os valores para as mesmas propriedades. Leia através do programa acima completamente e experimentá-lo.
Padrão Propriedade Valores Uma classe pode ter valores de propriedade padrão. Para conseguir isso, você acabou de atribuir valores às propriedades como você define a classe. Qualquer objeto instanciado a partir dessa classe terão os valores atribuídos automaticamente para suas propriedades. Você ainda pode alterar os valores das propriedades do objeto, por apenas atribuindo novos valores. Bem, dando valores padrão para uma classe como indiquei anteriormente, não é uma prática comum. É preferível dar valores apenas após a classe foi instanciado ou durante a instanciação (ver mais tarde).
Leia e tente o seguinte programa: classe Cla {public $ num1 = "homem"; public $ num2 = "mulher"; exposição da função pública () {echo $ this-> num1. " e " . $ this-> num2; }} $ Obj = new Cla (); $ obj-> display (); ?> Class constantes como valores padrão, você pode dar valores constantes para as propriedades de uma classe. Qualquer objeto instanciado a partir dessa classe terá as propriedades, constante. Isto é diferente de valores padrão no sentido de que os valores das propriedades dos objectos de classe instanciado e não pode ser alterado.
Para conseguir que você acabou de preceder a variável (propriedade) na definição de classe com a palavra reservada, const. Aqui, a variável, não leva o sinal $ quando ela é declarada e quando ele é usado. Leia e tente o seguinte programa; classe Cla {const pi = 3,14; exposição da função pública () {echo self :: pi. "Como pi para esta classe e seus objetos instanciados não pode ser alterado."; }} $ Obj = new Cla (); $ obj-> display (); ?>