Fácil PHP
Criando uma classe Pessoa
Enunciado
Crie uma classe Pessoa com propriedades nome e idade, um construtor que as inicializa e um método apresentar() que retorna uma string no formato "Olá, meu nome é [nome] e tenho [idade] anos.". Instancie um objeto e exiba a apresentação.
Requisitos
- A classe deve ter as propriedades
nome(string) eidade(int). - O construtor deve receber e atribuir os valores às propriedades.
- O método
apresentar()deve retornar a string formatada. - O programa deve criar um objeto e imprimir o resultado de
apresentar().
Código inicial
<?php
// Defina a classe Pessoa aqui
// Crie um objeto e teste
Saída esperada
Olá, meu nome é Ana e tenho 30 anos.
Ver dica
Use $this->nome e $this->idade dentro do método para acessar as propriedades do objeto.
Mostrar solução
<?php
class Pessoa {
// Propriedades
public string $nome;
public int $idade;
// Construtor
public function __construct(string $nome, int $idade) {
$this->nome = $nome;
$this->idade = $idade;
}
// Método de apresentação
public function apresentar(): string {
return "Olá, meu nome é {$this->nome} e tenho {$this->idade} anos.";
}
}
// Criando objeto
$pessoa = new Pessoa("Ana", 30);
echo $pessoa->apresentar() . PHP_EOL;
Passo a passo
- Declaramos a classe
Pessoacom as propriedades$nomee$idade, ambas públicas. - O construtor
__constructrecebe os parâmetros e atribui às propriedades usando$this->. - O método
apresentar()retorna uma string interpolando as propriedades com$this->. - Fora da classe, criamos um objeto
$pessoapassando os argumentos. - Chamamos
apresentar()e imprimimos o resultado comecho.
Por que funciona
O construtor garante que o objeto seja criado com valores válidos. $this refere-se ao objeto atual, permitindo acessar suas propriedades dentro dos métodos. Assim, cada objeto tem seus próprios dados, mas compartilha o comportamento definido na classe.
Erros comuns
- Esquecer de usar
$this->ao acessar propriedades:return "... $nome ...";causaria erro de variável indefinida. - Não definir o construtor e tentar passar argumentos:
new Pessoa("Ana", 30)sem construtor gera erro. - Declarar propriedades sem tipo e atribuir valor incorreto: PHP 8 com tipagem estrita pode lançar TypeError.
Outra forma de resolver
Usar promoção de construtor (PHP 8+):
class Pessoa {
public function __construct(
public string $nome,
public int $idade
) {}
// ...
}
Isso reduz a repetição de declaração e atribuição.
Saída esperada
Olá, meu nome é Ana e tenho 30 anos.