PHP 8.4.6 Released!

Клас __PHP_Incomplete_Class

(PHP 4 >=4.0.1, PHP 5, PHP 7, PHP 8)

Вступ

Створюється функцією unserialize() у спробі розпакувати невизначений клас або той, що відсутній у списку allowed_classes параметра options функції unserialize().

До PHP 7.2.0, застосування is_object() до класу __PHP_Incomplete_Class повертало false. Починаючи з PHP 7.2.0, повертається true.

Короткий огляд класу

class __PHP_Incomplete_Class {
}

Цей клас не має стандартних властивостей або методів. Після створення функцією unserialize(), об'єкт матиме розпаковані властивості і значення, а також властивість __PHP_Incomplete_Class_Name, котра міститиме назву розпакованого класу.

Приклади

Приклад #1 Створення за допомогою unserialize()

<?php

class MyClass
{
public
string $property = "myValue";
}

$myObject = new MyClass;

$foo = serialize($myObject);

/ розпакувати всі об'єкти як __PHP_Incomplete_Class
$disallowed = unserialize($foo, ["allowed_classes" => false]);

var_dump($disallowed);

/ розпакувати всі об'єкти, окрім MyClass2 та MyClass3, як об'єкт __PHP_Incomplete_Class
$disallowed2 = unserialize($foo, ["allowed_classes" => ["MyClass2", "MyClass3"]]);

var_dump($disallowed2);

/ розпакувати невизначений клас як об'єкт __PHP_Incomplete_Class
$undefinedClass = unserialize('O:16:"MyUndefinedClass":0:{}');

var_dump($undefinedClass);

Поданий вище приклад виведе:


object(__PHP_Incomplete_Class)#2 (2) {
  ["__PHP_Incomplete_Class_Name"]=>
  string(7) "MyClass"
  ["property"]=>
  string(7) "myValue"
}
object(__PHP_Incomplete_Class)#3 (2) {
  ["__PHP_Incomplete_Class_Name"]=>
  string(7) "MyClass"
  ["property"]=>
  string(7) "myValue"
}
object(__PHP_Incomplete_Class)#4 (1) {
  ["__PHP_Incomplete_Class_Name"]=>
  string(16) "MyUndefinedClass"
}

add a note

User Contributed Notes

There are no user contributed notes for this page.
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