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) e idade (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

  1. Declaramos a classe Pessoa com as propriedades $nome e $idade, ambas públicas.
  2. O construtor __construct recebe os parâmetros e atribui às propriedades usando $this->.
  3. O método apresentar() retorna uma string interpolando as propriedades com $this->.
  4. Fora da classe, criamos um objeto $pessoa passando os argumentos.
  5. Chamamos apresentar() e imprimimos o resultado com echo.

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.