पर काम नहीं कर रहा है मेरे पास दो कार्य हैं जिनका उपयोग मैं गहरा घोंसला वाले ऑब्जेक्ट/सरणी कॉम्बो से स्लैश जोड़ने या निकालने के लिए कर रहा हूं। सरणी का पहला "स्तर" हमेशा एक वस्तु है, लेकिन इसकी कुछ गुण सरणी या वस्तुएं हो सकती हैं।रिकर्सिव फ़ंक्शन में संदर्भ द्वारा PHP पास
यहाँ मेरी दो कार्य हैं:
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;
}
इसलिए की तरह बुलाया जा रहा है:
objSlash($obj, false);
हालांकि, समारोह नेस्टेड सरणी से स्लैश पट्टी नहीं है। फ़ंक्शन में पारित ऑब्जेक्ट इस प्रकार है:
stdClass Object
(
[id] => 3
[lines] => Array
(
[0] => Array
(
[character] => Name
[dialogue] => Something including \"quotes\"
)
)
)
मैंने क्या गलत किया है? रेखा के साथ कहीं एक संदर्भ गायब हो रहा है ...
धन्यवाद, 'और $ फ़ील्ड 'काम किया! – DisgruntledGoat