Ich habe zwei Funktionen, die ich verwenden, um Schrägstriche aus einem tief verschachtelten Objekt/Array-Kombination hinzuzufügen oder zu entfernen. Die erste "Ebene" des Arrays ist immer ein Objekt, aber einige seiner Eigenschaften können Arrays oder Objekte sein.PHP übergeben durch Verweis in rekursive Funktion nicht funktioniert
Hier sind meine zwei Funktionen:
function objSlash(&$obj, $add=true)
{
foreach ($obj as $key=>$field)
{
if (is_object($field))
objSlash($field, $add);
else if (is_array($field))
arrSlash($field, $add);
else if ($add)
$obj->$key = addslashes($field);
else
$obj->$key = stripslashes($field);
}
return;
}
function arrSlash(&$arr, $add=true)
{
foreach ($arr as $key=>$field)
{
if (is_object($field))
objSlash($field, $add);
else if (is_array($field))
arrSlash($field, $add);
else if ($add)
$arr[$key] = addslashes($field);
else
$arr[$key] = stripslashes($field);
}
return;
}
wie so bezeichnet zu werden:
objSlash($obj, false);
Allerdings ist die Funktion der Schrägstriche aus dem verschachtelten Array nicht abstreifen. Das Objekt in die Funktion übergeben wird, wie folgt aus:
stdClass Object
(
[id] => 3
[lines] => Array
(
[0] => Array
(
[character] => Name
[dialogue] => Something including \"quotes\"
)
)
)
Was habe ich falsch gemacht? Irgendwo entlang der Linie fehlt eine Referenz ...
Danke, '& $ field' hat funktioniert! – DisgruntledGoat