PHP Incomplete Class
Klassen __PHP_Incomplete_Class
(PHP 4.0.1, PHP 5, PHP 7, PHP 8)
Introduktion
Skapas av `unserialize()` när man försöker avserialisera en odefinierad klass eller en klass som inte finns med i `allowed_classes` i `unserialize()`s options-array.
Innan PHP 7.2.0 skulle användning av `is_object()` på klassen __PHP_Incomplete_Class returnera `false`. Från och med PHP 7.2.0 kommer den att returnera `true`.
Klassöversikt
class __PHP_Incomplete_Class {
}
Denna klass har inga standardegenskaper eller metoder. När den skapas av `unserialize()` kommer objektet, förutom alla avserialiserade egenskaper och värden, att ha en egenskap `__PHP_Incomplete_Class_Name` som innehåller namnet på den avserialiserade klassen.
Exempel
Exempel #1 Skapad av unserialize()
<?php
class MyClass
{
public string $property = "myValue";
}
$myObject = new MyClass;
$foo = serialize($myObject);
// Avserialiserar alla objekt till __PHP_Incomplete_Class-objekt
$disallowed = unserialize($foo, ["allowed_classes" => false]);
var_dump($disallowed);
// Avserialiserar alla objekt till __PHP_Incomplete_Class-objekt förutom de av MyClass2 och MyClass3
$disallowed2 = unserialize($foo, ["allowed_classes" => ["MyClass2", "MyClass3"]]);
var_dump($disallowed2);
// Avserialiserar en odefinierad klass till ett __PHP_Incomplete_Class-objekt
$undefinedClass = unserialize('O:16:"MyUndefinedClass":0:{}');
var_dump($undefinedClass);
?>
Ovanstående exempel kommer att ge något liknande:
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"
}
Sidslut
Orginalhemsidan på Engelska : https://www.php.net/manual/en/class.php-incomplete-class.php
PHP
Språkreferens
Fördefinierade Gränssnitt och Klasser
Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorhjälp som har sponsrat Linux.se med webserver.