PHP 8.4.6 Released!

ReflectionClass::hasProperty

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionClass::hasPropertyÖzellik tanımlı mı diye bakar

Açıklama

public ReflectionClass::hasProperty(string $isim): bool

Belirtilen özellik tanımlıysa true döner.

Bağımsız Değişkenler

isim

Bakılacak özelliğin ismi.

Dönen Değerler

Özellik tanımlıysa true yoksa false döner.

Örnekler

Örnek 1 - ReflectionClass::hasProperty() örneği

<?php
class Foo {
public
$p1;
protected
$p2;
private
$p3;

}

$obj = new ReflectionObject(new Foo());

var_dump($obj->hasProperty("p1"));
var_dump($obj->hasProperty("p2"));
var_dump($obj->hasProperty("p3"));
var_dump($obj->hasProperty("p4"));
?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

bool(true)
bool(true)
bool(true)
bool(false)

Ayrıca Bakınız

add a note

User Contributed Notes 3 notes

up
0
dalguete at gmail dot com
3 years ago
hasProperty() now is consistent with getProperty() and getProperties() methods, thanks to this fix https://bugs.php.net/bug.php?id=49719

hasProperty() no longer returns true in private properties from parent classes.
up
-1
dalguete at gmail dot com
3 years ago
hasProperty() now is consistent with getProperty() and getProperties() methods, thanks to this fix https://bugs.php.net/bug.php?id=49719

hasProperty() no longer returns true in private properties.
up
-2
rwilczek at web-appz dot de
15 years ago
Note, that this method does not guarantee, that you can get a property with ReflectionClass::getProperty().

ReflectionClass::hasProperty() considers the parent classes (ignoring however, that a private property is not inherited), while ReflectionClass::getProperty() and ReflectionClass::getProperties() don't care about inheritance.

(Tested with PHP 5.3.0)

<?php
class Foo
{
private
$x;
}

class
Bar extends Foo
{
/
}

$foo = new ReflectionClass('Foo');
$bar = new ReflectionClass('Bar');

var_dump($foo->hasProperty('x'); / bool(true)
var_dump($bar->hasProperty('x'); / bool(true)

var_dump(get_class($foo->getProperty('x'))); /string(18) "ReflectionProperty"
try {
$bar->getProperty('x');
} catch (
ReflectionException $e) {
echo
$e->getMessage(); / Property x does not exist
}
?>
To Top

Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!

Check out: eBank.nz (Art Generator) | Netwrck.com (AI Tools) | Text-Generator.io (AI API) | BitBank.nz (Crypto AI) | ReadingTime (Kids Reading) | RewordGame | BigMultiplayerChess | WebFiddle | How.nz | Helix AI Assistant