Classes em PHP (PHP classes) es­tru­tu­ram códigos ao con­fi­gu­rar modelos lógicos e in­de­pen­den­tes, e atribuir pro­pri­e­da­des e métodos es­pe­cí­fi­cos a cada um deles. Assim, classes pos­si­bi­li­tam a reu­ti­li­za­ção de trechos de códigos, o que torna a gestão de apli­ca­ções bem mais fácil e flexível.

O que é PHP class?

PHP class, ou classe em PHP, é um tipo de estrutura (modelo) que define ca­rac­te­rís­ti­cas e com­por­ta­men­tos de um objeto a ser criado. Elas definem, portanto, as pro­pri­e­da­des (variáveis ou atributos) e os métodos (funções) de um objeto. Em PHP, classes são parte essencial da pro­gra­ma­ção orientada a objetos (OOP). Use-as, por exemplo, com­bi­na­das a funções PHP ou crie classes para recuperar in­for­ma­ções de um banco de dados MySQL/MariaDB com PHP.

Dica

O Deploy Now da IONOS é uma solução de hos­pe­da­gem para apli­ca­ções de última geração. Beneficie-se de altos níveis de con­fi­a­bi­li­dade, e de amplos e variados recursos de automação, que darão o máximo de suporte aos seus projetos.

Como definir uma classe em PHP

Para definir uma classe em PHP, comece es­cre­vendo a palavra-chave class, que deve ser seguida do res­pec­tivo nome e de colchetes. Adicione, dentro dos colchetes, as pro­pri­e­da­des e os métodos da classe, como mostra o código abaixo:

class Name { 
    // php class example properties and methods 
}
php

Observe, agora, um exemplo concreto:

class Animal { 
  // Properties 
  public $name; 
  public $color; 
 
  // Methods 
  function set_name($name) { 
    $this->name = $name; 
  } 
  function get_name() { 
    return $this->name; 
  } 
}
php

Acima, a classe “Animal” tem duas pro­pri­e­da­des: “name” e “color”. Da mesma forma, ela possui dois métodos: “set_name” para definir o nome e “get_name” para recuperar o nome.

Dica

Quer aprender mais sobre pro­gra­ma­ção em PHP? Então consulte o tutorial PHP para ini­ci­an­tes do nosso Digital Guide. Entenda, também, como lin­gua­gens de pro­gra­ma­ção se diferem acom­pa­nhando as nossas com­pa­ra­ções PHP vs. Python e PHP vs. Ja­vaS­cript.

API IONOS grátis
Atu­a­li­za­ção de domínio, DNS, SSL, con­fi­gu­ra­ções e mais com a API da IONOS.
  • Ge­ren­ci­a­mento DNS
  • Admin SSL fácil
  • Do­cu­men­ta­ção API

Diferença entre objeto e classe em PHP

Um objeto é uma instância de uma classe, fazendo parte dela. Quando você cria uma instância de classe, você obtém um objeto es­pe­cí­fico, capaz de usar as pro­pri­e­da­des e os métodos definidos para a classe. Crie um objeto para uma classe por meio da palavra-chave new.

class Animal { 
  // Properties 
  public $name; 
  public $color; 
 
  // Methods 
  function set_name($name) { 
    $this->name = $name; 
  } 
  function get_name() { 
    return $this->name; 
  } 
} 
 
$dog = new Animal(); 
$cat = new Animal(); 
$dog->set_name('Tom'); 
$cat->set_name('Mickey'); 
 
echo $dog->get_name(); 
echo "<br>"; 
echo $cat->get_name();
php

No exemplo, “dog” e “cat” são ins­tân­cias da classe “Animal”. À cada instância, atri­buí­mos um nome.

Em PHP, classes também podem ser herdadas. Isso quer dizer que você pode derivar uma classe existente para a definição de uma nova classe. A classe derivada herdará as pro­pri­e­da­des e os métodos da classe original, que pode ser abstrata (PHP abstract class). Faça isso para reu­ti­li­zar e estender funções. Objetos de classes derivadas também cons­ti­tuem ins­tân­cias da classe original, podendo, então, utilizar os mesmos métodos. O exemplo esclarece:

class Mammal extends Animal { 
function breathesAir() { 
      echo "inhale"; 
    } 
} 
 
$horse = new Mammal; 
$horse->setName("Louis");
php

Observe que com a palavra-chave extends, a classe “Mammal” herda todas as pro­pri­e­da­des e métodos da su­per­classe “Animal”. Também é possível adicionar uma nova função à classe “Mammal”, assim como acessar as funções herdadas.

PHP class: Exemplos de uso

Classes em PHP são ex­tre­ma­mente versáveis, como mostrarão os exemplos práticos a seguir.

PHP ins­tan­ceof

Em PHP, ins­tan­ceof é o operador usado para verificar se um objeto pertence a uma classe original ou a uma classe derivada, como exem­pli­fica o código abaixo:

class Animal { 
    public function speak() { 
        echo "sound"; 
    } 
} 
 
class Dog extends Animal { 
    public function speak() { 
        echo "bark"; 
    } 
} 
 
$animal = new Dog(); 
 
if ($animal instanceof Animal) { 
    $animal->speak(); // Output: "bark" 
}
php

Pri­mei­ra­mente, fizemos uso de ins­tan­ceof para verificar se $animal é uma instância da classe “Animal” ou de uma de suas classes derivadas. Des­co­bri­mos, então, que $animal é uma instância da classe derivada “Dog” (herdada de “Animal”). Assim, a condição é atendida e o código do bloco “if” é executado.

O operador ins­tan­ceof pode ser útil em situações nas quais é preciso garantir acessos a de­ter­mi­na­dos métodos ou pro­pri­e­da­des, ao mesmo tempo em que se tenta evitar a ocor­rên­cia de erros, caso o objeto não possua a classe esperada.

Arrays e classes em PHP

Classes podem ser ar­ma­ze­na­das em arrays PHP para o de­sen­vol­vi­mento de es­tru­tu­ras de dados complexas:

class Product { 
    public $name; 
    public $price; 
 
    public function __construct($name, $price) { 
        $this->name = $name; 
        $this->price = $price; 
    } 
} 
 
$products = [ 
    new Product("Laptop", 800), 
    new Product("Smartphone", 400), 
    new Product("Tablet", 300) 
]; 
 
foreach ($products as $product) { 
    echo "Product: " . $product->name . ", Price: $" . $product->price . "<br>"; 
}
php

No código acima, definimos a classe “Product”, para que esta re­pre­sente di­fe­ren­tes produtos, e ar­ma­ze­namo-la no array “products”. Assim, podemos percorrer o array com loops PHP, como o foreach construct, para con­fi­gu­rar­mos a apre­sen­ta­ção de nomes de produtos com os res­pec­ti­vos preços.

PHP class cons­truc­tor

Cons­truc­tor é um método especial dentro de uma classe, que é au­to­ma­ti­ca­mente chamado no momento da criação de um objeto. A fi­na­li­dade do PHP class cons­truc­tor é ini­ci­a­li­zar os primeiros estados de um objeto ou de­sem­pe­nhar as ati­vi­da­des pre­pa­ra­tó­rias ne­ces­sá­rias para que o objeto funcione cor­re­ta­mente. Entenda:

class Dog { 
    private $name; 
    private $color; 
 
    // Constructor 
    public function __construct($name, $color) { 
        $this->name = $name; 
        $this->color = $color; 
    } 
 
    public function sayHello() { 
        return "Hello, my name is {$this->name} and my color is {$this->color}."; 
    } 
} 
 
$dog = new Dog("Tom", "brown"); 
 
echo $dog->sayHello(); // Output: "Hello, my name is Tom and my color is brown."
php
IONOS Cloud Object Storage
Cloud storage at an un­be­a­ta­ble price
  • Perfect for backups and archiving.
  • Redundant and secure data storage across multiple regions.
  • Un­be­a­ta­ble price-per­for­mance ratio at $4.99/TB.
Ir para o menu principal