Propriedade PHP_existe

Resumo : neste tutorial, você aprenderá como usar a property_exists()função para verificar se o objeto ou classe possui uma propriedade.

Introdução à função property_exists do PHP

A property_exists()função retorna truese um objeto ou classe tiver uma propriedade. Caso contrário, ele retorna false.

Aqui está a sintaxe do property_exists()método:

property_exists(object|string $object_or_class, string $property): boolLinguagem de código:  PHP  ( php )

O property_exists()método possui dois parâmetros:

  • Especifica $object_or_classo objeto ou classe que precisa verificar a existência de uma propriedade.
  • O $propertyespecifica o nome da propriedade a ser verificada.

Observe que em caso de erro, a property_exists()função retorna null.

Exemplos de funções PHP property_exists

O exemplo a seguir usa a property_exists()função para verificar se a FileReaderclasse possui uma propriedade específica:

<?php

class FileReader
{
    private $filename;

    public $done;

    protected $filesize;

    public static $mimeTypes;
}

var_dump(property_exists(FileReader::class, 'filename')); // true
var_dump(property_exists(FileReader::class, 'done')); // true
var_dump(property_exists(FileReader::class, 'filesize')); // true
var_dump(property_exists(FileReader::class, 'mimeTypes')); // true

var_dump(property_exists(FileReader::class, 'status')); // falseLinguagem de código:  PHP  ( php )

Exemplo prático da função PHP property_exists

Suponha que você tenha uma classe base chamada Model. Todas as classes de modelo precisam estender esta Modelclasse.

Para carregar um Modelobjeto de um array associativo , você pode definir um load()método na Modelclasse da seguinte forma:

<?php

abstract class Model
{
    public function load(array $data): self
    {
        foreach ($data as $key => $value) {
            if (property_exists($this, $key)) {
                $this->$key = $value;
            }
        }

        return $this;
    }
}Linguagem de código:  PHP  ( php )

O load()método aceita uma matriz associativa como argumento. Ele itera sobre o elemento da matriz. Se o objeto tiver uma propriedade que corresponda a uma chave no array, o load()método atribui o valor à propriedade.

O seguinte define a Userclasse que estende a Modelclasse:

class User extends Model
{
    private $username;

    private $email;

    private $password;
}Linguagem de código:  PHP  ( php )

Para preencher as propriedades da Userclasse com valores de um array, você chama o load()método assim:

$user = (new User())->load([
    'username' => 'john',
    'email' => '[email protected]',
    'password' => password_hash('VerySecurePa$$1.', PASSWORD_DEFAULT),
]);Linguagem de código:  PHP  ( php )

Na prática, você teria um formulário de registro. Após o envio do formulário, você precisa validar os dados no $_POSTarray. E então você chama o método load() para inicializar um Userobjeto.

Resumo

  • Use a função PHP property_exists()para verificar se um objeto ou classe possui uma propriedade específica.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *