(PHP 4 >=4.0.1, PHP 5, PHP 7, PHP 8)
    Creada por unserialize(),
    cuando se intenta deserializar una clase no definida
    o una clase no listada en los allowed_classes
    del array options de unserialize().
   
    Antes de PHP 7.2.0, el uso de is_object() en la
    clase __PHP_Incomplete_Class devolvía false.
    A partir de PHP 7.2.0, true será devuelto.
   
    Esta clase no tiene propiedades ni métodos por omisión.
    Cuando es creada por unserialize(),
    además de todas las propiedades y valores deserializados
    el objeto tendrá una propiedad __PHP_Incomplete_Class_Name
    que contendrá el nombre de la clase deserializada.
   
| Versión | Descripción | 
|---|---|
| 8.0.0 | Esta clase es ahora final. | 
Ejemplo #1 Creada por unserialize()
<?php
class MyClass
{
    public string $property = "myValue";
}
$myObject = new MyClass;
$foo = serialize($myObject);
// deserializa todos los objetos en objeto __PHP_Incomplete_Class
$disallowed = unserialize($foo, ["allowed_classes" => false]);
var_dump($disallowed);
// deserializa todos los objetos en objeto __PHP_Incomplete_Class excepto aquellos de las clases MyClass2 y MyClass3
$disallowed2 = unserialize($foo, ["allowed_classes" => ["MyClass2", "MyClass3"]]);
var_dump($disallowed2);
// deserializa una clase no definida en objeto __PHP_Incomplete_Class
$undefinedClass = unserialize('O:16:"MyUndefinedClass":0:{}');
var_dump($undefinedClass);El ejemplo anterior mostrará:
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"
}
