Start · Sprachen · PHP · Referenz · wddx_add_vars

wddx_add_vars

Funktion

Fügt einem geöffneten WDDX-Paket eine oder mehrere PHP-Variablen als WDDX-kodierte Elemente hinzu.

seit PHP 4.0.0 Kategorie: xml

Signatur

wddx_add_vars(resource $packet_id, mixed $var_name, mixed ...$var_names): bool

Beschreibung

wddx_add_vars() serialisiert eine oder mehrere PHP-Variablen und fügt sie einem zuvor mit wddx_packet_start() eröffneten WDDX-Paket hinzu. Die Funktion arbeitet mit einem Paket-Handle (resource), das über den gesamten Aufbau des Pakets hinweg geöffnet bleiben muss, bis es mit wddx_packet_end() abgeschlossen wird.

Der Variablenname wird als Zeichenkette übergeben; die Funktion liest den tatsächlichen Wert aus dem aktuellen Scope über den übergebenen Namen. Es können mehrere Variablennamen in einem einzigen Aufruf angegeben werden. Alternativ kann auch ein Array von Variablennamen übergeben werden.

WDDX (Web Distributed Data eXchange) ist ein XML-basiertes Format für den plattformübergreifenden Datenaustausch zwischen Webapplikationen. Die inkrementelle Methode über wddx_packet_start() / wddx_add_vars() / wddx_packet_end() eignet sich besonders, wenn Variablen aus verschiedenen Bereichen oder Schleifen schrittweise zusammengetragen werden sollen.

Hinweis: Die gesamte WDDX-Erweiterung wurde mit PHP 7.4 als veraltet markiert (deprecated) und mit PHP 8.0 vollständig entfernt. Für neue Projekte sollte stattdessen serialize(), json_encode() oder eine XML-Bibliothek verwendet werden.

Parameter

Name Typ Default Beschreibung
$packet_id Pflicht resource Das WDDX-Paket-Handle, das zuvor von wddx_packet_start() zurückgegeben wurde.
$var_name Pflicht mixed Name der PHP-Variable als Zeichenkette (z. B. 'meinArray') oder ein Array von Variablennamen, die dem Paket hinzugefügt werden sollen.
$var_names mixed Beliebig viele weitere Variablennamen als zusätzliche Argumente. Jeder weitere Name wird ebenfalls aus dem aktuellen Scope serialisiert und dem Paket hinzugefügt.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück, false wenn die Variable nicht gefunden werden konnte oder ein anderer Fehler aufgetreten ist.

Beispiele

Mehrere Variablen schrittweise zu einem WDDX-Paket hinzufügen

<?php
// Nur in PHP < 8.0 verfügbar (WDDX wurde in 8.0 entfernt)
$name  = 'Max Mustermann';
$alter = 42;
$stadt = 'Berlin';

// Paket öffnen
$pid = wddx_packet_start('Benutzerdaten');

// Variablen einzeln hinzufügen
wddx_add_vars($pid, 'name');
wddx_add_vars($pid, 'alter', 'stadt');

// Paket abschließen und WDDX-XML ausgeben
$wddx = wddx_packet_end($pid);
echo $wddx;
<wddxPacket version='1.0'><header comment='Benutzerdaten'/><data><struct><var name='name'><string>Max Mustermann</string></var><var name='alter'><number>42</number></var><var name='stadt'><string>Berlin</string></var></struct></data></wddxPacket>

Variablenliste als Array übergeben

<?php
// Nur in PHP < 8.0 verfügbar
$produkt = 'Laptop';
$preis   = 999.99;
$lager   = 5;

$pid = wddx_packet_start('Produktdaten');

// Variablennamen als Array übergeben
$felder = ['produkt', 'preis', 'lager'];
wddx_add_vars($pid, $felder);

$xml = wddx_packet_end($pid);
echo $xml;
<wddxPacket version='1.0'><header comment='Produktdaten'/><data><struct><var name='produkt'><string>Laptop</string></var><var name='preis'><number>999.99</number></var><var name='lager'><number>5</number></var></struct></data></wddxPacket>

// Wichtig · Fallstricke

Deprecation / Entfernung: Die WDDX-Erweiterung wurde in PHP 7.4 als veraltet (deprecated) eingestuft und in PHP 8.0 vollständig entfernt. Code, der wddx_add_vars() verwendet, ist auf PHP 8+ nicht mehr lauffähig. Für den Datenaustausch empfehlen sich stattdessen json_encode() / json_decode() oder serialize() / unserialize().

Die Funktion liest Variablen über ihren Namen aus dem aktuellen Scope. Existiert eine Variable mit dem angegebenen Namen nicht, gibt die Funktion false zurück und erzeugt einen PHP-Fehler. Tippfehler im Variablennamen sind ein häufiger Fallstrick.