ReflectionClass::markLazyObjectAsInitialized
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
ReflectionClass::markLazyObjectAsInitialized
Референца за `reflectionclass.marklazyobjectasinitialized.php` со подобрена типографија и навигација.
ReflectionClass::markLazyObjectAsInitialized
Класата Dom\DtdNamedNodeMap
ReflectionClass::markLazyObjectAsInitialized — Го означува мрзливиот објект како иницијализиран без повикување на иницијализаторот или фабриката
= NULL
Го означува мрзливиот објект како иницијализиран без повикување на иницијализаторот или фабриката. Ова нема ефект ако object не е мрзлив или е веќе иницијализиран.
Ефектот од повикувањето на овој метод е ист како опишаниот за Ghost Objects (без оглед на стратегијата за мрзливост на object) во
секвенца на иницијализација, освен што иницијализаторот не се повикува. После тоа, објектот е нераспознатлив од објект што никогаш не бил мрзлив и бил создаден со
(PHP 5 >= 5.1.3, PHP 7, PHP 8), освен за вредноста на својствата што веќе биле иницијализирани со
ReflectionProperty::skipLazyInitialization()
or Пример #3 Иницијализирање својства однапред.
Параметри
object- Објектот што треба да се означи како иницијализиран.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. object.
Примери
Пример #1 Означување на неиницијализиран мрзлив објект како иницијализиран
<?php
class Example
{
public string $prop1;
public string $prop2;
public string $prop3 = 'default value';
}
$reflector = new ReflectionClass(Example::class);
$object = $reflector->newLazyGhost(function ($object) {
echo "Initializer called\n";
$object->prop1 = 'initialized';
});
$reflector->getProperty('prop1')
->setRawValueWithoutLazyInitialization($object, 'prop1 value');
var_dump($object);
$reflector->markLazyObjectAsInitialized($object);
var_dump($object);
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
lazy ghost object(Example)#3 (1) {
["prop1"]=>
string(11) "prop1 value"
["prop2"]=>
uninitialized(string)
["prop3"]=>
uninitialized(string)
}
object(Example)#3 (2) {
["prop1"]=>
string(11) "prop1 value"
["prop2"]=>
uninitialized(string)
["prop3"]=>
string(13) "default value"
}
Пример #2 Означување на иницијализиран објект како иницијализиран
<?php
class Example
{
public string $prop1;
public string $prop2;
public string $prop3 = 'default value';
}
$reflector = new ReflectionClass(Example::class);
$object = $reflector->newLazyGhost(function ($object) {
echo "Initializer called\n";
$object->prop1 = 'initialized';
});
$reflector->getProperty('prop1')
->setRawValueWithoutLazyInitialization($object, 'prop1 value');
var_dump($object->prop3);
var_dump($object);
$reflector->markLazyObjectAsInitialized($object);
var_dump($object);
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
Initializer called
string(13) "default value"
object(Example)#3 (2) {
["prop1"]=>
string(11) "initialized"
["prop2"]=>
uninitialized(string)
["prop3"]=>
string(13) "default value"
}
object(Example)#3 (2) {
["prop1"]=>
string(11) "initialized"
["prop2"]=>
uninitialized(string)
["prop3"]=>
string(13) "default value"
}
Види Исто така
- Објектот на кој треба да се означи својството.
- класа (други внатрешни класи не се поддржани), или да се ресетира инстанца на овие класи за да стане мрзлива. Влезните точки за создавање мрзлив објект се - Постави ја суровата вредност на својството без да се активира мрзливо иницијализирање
- ReflectionClass::resetAsLazyProxy() - Присилува иницијализација на мрзлив објект
- (PHP 8 >= 8.4.0) - Проверува дали објект е мрзлив и неиницијализиран