Signatur
Beschreibung
wddx_serialize_vars() nimmt die Namen von PHP-Variablen als Zeichenketten entgegen und gibt ein vollständiges WDDX-Paket als XML-String zurück. WDDX (Web Distributed Data Exchange) ist ein XML-basiertes Protokoll zum plattformübergreifenden Datenaustausch zwischen Webanwendungen, das Skalare, Arrays und Objekte abbilden kann.
Im Unterschied zu wddx_serialize_value(), das einen einzelnen Wert serialisiert, können bei wddx_serialize_vars() mehrere Variablennamen als Argumente übergeben werden. Die Funktion liest die Werte aus dem aktuellen Scope und bündelt sie in einem WDDX-<struct>-Element, wobei die Variablennamen als Schlüssel dienen.
Die Funktion ist besonders dann nützlich, wenn mehrere benannte Variablen gesammelt und als strukturierte XML-Nachricht weitergegeben werden sollen, etwa bei der Kommunikation mit anderen Sprachen (ColdFusion, Perl, Python) oder Legacy-Systemen, die WDDX verstehen.
Wichtig: Die WDDX-Erweiterung (ext/wddx) wurde in PHP 7.4 als deprecated markiert und in PHP 8.0 vollständig entfernt. Sie steht in modernen PHP-Versionen nicht mehr zur Verfügung. Für neue Projekte sollte stattdessen json_encode() oder ein XML-basiertes Format wie SimpleXML verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $var_name Pflicht | string | Name der ersten zu serialisierenden Variable als Zeichenkette (z. B. 'meinArray'). Die Variable muss im aktuellen Scope sichtbar sein. |
|
| $var_names | string | Optionale weitere Variablennamen als zusätzliche Argumente. Die Funktion akzeptiert beliebig viele Zeichenketten-Argumente. |
Rückgabewert
false zurückgegeben.Beispiele
Serialisierung einzelner Variablen in ein WDDX-Paket
<?php
// Nur verfügbar in PHP < 8.0 (ext/wddx)
$name = 'Max Mustermann';
$alter = 42;
$hobbys = ['Lesen', 'Programmieren', 'Wandern'];
$paket = wddx_serialize_vars('name', 'alter', 'hobbys');
echo $paket;
?>
WDDX-Paket deserialisieren und prüfen
<?php
// Nur verfügbar in PHP < 8.0 (ext/wddx)
$stadt = 'Berlin';
$einwohnerzahl = 3_769_000;
$xml = wddx_serialize_vars('stadt', 'einwohnerzahl');
if ($xml === false) {
echo 'Serialisierung fehlgeschlagen.';
} else {
// Paket wieder einlesen
$daten = wddx_deserialize($xml);
var_dump($daten);
}
?>
// Wichtig · Fallstricke
Deprecation & Entfernung: Die WDDX-Erweiterung wurde in PHP 7.4 als veraltet (deprecated) markiert und in PHP 8.0 vollständig aus dem Kern entfernt. wddx_serialize_vars() steht in PHP 8.0 und neuer nicht mehr zur Verfügung. Ein Aufruf führt zu einem fatalen Fehler.
Für moderne Projekte empfiehlt sich json_encode() als einfache, portable Alternative zum Datenaustausch. Wer XML benötigt, kann auf SimpleXMLElement oder DOMDocument zurückgreifen.
Die Variablen müssen im aktuellen Scope der aufrufenden Funktion definiert sein. Variablen aus einem äußeren Scope (z. B. globale Variablen innerhalb einer Funktion ohne global-Deklaration) werden nicht gefunden und führen zu einem Fehler.