ReflectionProperty::setValue

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::setValueÖzelliğe değer atar

Açıklama

publicReflectionProperty::setValue(object$nesne, mixed$değer): void
publicReflectionProperty::setValue(mixed$değer): void

Bir özelliğe değer atar.

Bilginize: PHP 8.3.0 ve sonrasında, bu yöntemin tek bağımsız değişkenle çağrılması önerilmemektedir. Yerine ReflectionClass::setStaticPropertyValue() kullanılmalıdır.

Bağımsız Değişkenler

nesne

Özellik statik değilse özelliğin ait olduğu nesne burada belirtilmelidir. Statik ise nesne belirtmeye gerek yoktur. Sadece değer belirtmek yeterlidir.

değer

Yeni değer.

Dönen Değerler

Hiçbir değer dönmez.

Sürüm Bilgisi

Sürüm: Açıklama
8.3.0 Bu yöntemin tek bağımsız değişkenle çağrılması artık önerilmiyor. Duruk özellikleri değiştirmek için bunun yerine ReflectionClass::setStaticPropertyValue() kullanılmalıdır.
8.1.0 Private ve protected özellikler ReflectionProperty::setValue() tarafından hemen erişilebilir olur. Evvelce erişilebilir olmaları için ReflectionProperty::setAccessible() çağrısı yapmak gerekirdi; özellik erişilebilir değilse ReflectionException istisnası oluşurdu.

Örnekler

Örnek 1 - ReflectionProperty::setValue() örneği

<?php
class Foo {
public static
$staticProperty;

public
$property;
protected
$privateProperty;
}

$reflectionClass = new ReflectionClass('Foo');

// PHP 8.3 ve sonrasında, duruk özelliklere değer atamak için
// setValue değil setStaticPropertyValue() kullanılmalıdır.
$reflectionClass->setStaticPropertyValue('staticProperty', 'foo');
var_dump(Foo::$staticProperty);

$foo = new Foo;

$reflectionClass->getProperty('property')->setValue($foo, 'bar');
var_dump($foo->property);

$reflectionProperty = $reflectionClass->getProperty('privateProperty');
$reflectionProperty->setAccessible(true); // yalnızca PHP 8.1.0 öncesi
$reflectionProperty->setValue($foo, 'foobar');
var_dump($reflectionProperty->getValue($foo));
?>

Yukarıdaki örneğin çıktısı:

string(3) "foo" string(3) "bar" string(6) "foobar"

Ayrıca Bakınız

To Top