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 true
se 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): bool
Linguagem de código: PHP ( php )
O property_exists()
método possui dois parâmetros:
- Especifica
$object_or_class
o objeto ou classe que precisa verificar a existência de uma propriedade. - O
$property
especifica 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 FileReader
classe 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')); // false
Linguagem 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 Model
classe.
Para carregar um Model
objeto de um array associativo , você pode definir um load()
método na Model
classe 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 User
classe que estende a Model
classe:
class User extends Model
{
private $username;
private $email;
private $password;
}
Linguagem de código: PHP ( php )
Para preencher as propriedades da User
classe 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 $_POST
array. E então você chama o método load() para inicializar um User
objeto.
Resumo
- Use a função PHP
property_exists()
para verificar se um objeto ou classe possui uma propriedade específica.