Como definir o tipo de dado no PHP

Publicado em: 10/12/2025

Vamos entender como o PHP trabalha com tipo de dados, variáveis, propriedades (campos/atributos), funções/métodos e parâmetros.


(Imagem Pixabay)

Para ver o tipo de retorno é só usar gettype($variavel).

Procedural

$variavel = 2;

Retornará Inteiro

$variavel = (string) 2;

Será retornado string, pois ao usar o tipo de dado na frente você converte o valor.

$variavel = (string) 2;
$variavel = (int) 2;

No procedural, a mesma variável pode ter seu tipo de dados alterado.

function mensagem($valor) {}

O parâmetro $valor pode ser qualquer tipo, também poderiamos especificar com mixed antes do valor, o retorno também será de qualquer tipo.

function mensagem(mixed $valor):mixed {}

Esse mixed pode ser adicionado ou não, fica opcional, já que pode ser qualquer tipo.

Agora quando queremos específicar, vamos supor que tenho um parâmetro $valor que é do tipo inteiro e esse valor sempre deverá ser do tipo inteiro, além disso seu retorno deve ser sempre do tipo string, convertendo o inteiro para string. Vou mostrar um exemplo completo abaixo.

function mensagem(int $valor):string {
    return $valor;
}

Essa função sempre terá um parâmetro do tipo inteiro, assim como seu retorno sempre será string.

Orientação a Objetos

Já no paradigma orientado a objetos a forma de trabalhar com tipo de dados muda em relação a variáveis, que no caso chamamos de propriedades, você também pode chamar de campos ou atributos.

class exemplo {
   public $valor = 2;
}

$e = new exemplo();
$e->valor = (string) 2;

Se tentarmos alterar o tipo de valor definido em uma propriedade, o valor retornará como do tipo string, pois não específicamos anteriormente qual o tipo que essa propriedade possui.

class exemplo {
   public int $valor = 2;
}

$e = new exemplo();
$e->valor = (string) 2;

Agora nesse caso que específicamos o tipo da propriedade, o tipo de dado não pode ser alterado, por isso ao específicar string, o tipo de dado continuará sendo inteiro.

Se você tentar forçar um valor do tipo string, será exibido um erro do tipo: PHP Fatal error: Uncaught TypeError: Cannot assign string to property Exemplo::$valor of type int

Para os métodos segue o mesmo estilo do procedural, com excessão que podemos informar os modificadores de acesso.

class exemplo {
   public int $valor = 2;
   public function mensagem(int $valor):string {
      return gettype($valor) . $valor;
   }
}

$e = new exemplo();
$e->valor = (string) 2;
echo $e->mensagem((string) 2);

Nesse exemplo tentei forçar a alteração do valor no parâmetro, o resultado continuará sendo inteiro, pois foi declarado assim, o tipo de retorno continuará a ser string também.

Ou seja, assim como em outras linguagens de programação, o PHP também pode permitir ou não a alteração do tipo de dado.

Gostou desse artigo? Compartilhe para que mais programadores aprendam e descubram a forma correta de se trabalhar com PHP.

Live de Desenvolvimento
YouTube
A partir das 19:00

Siga-me

Pesquisar