क्या कोई मुझे समझा सकता है कि आप संदर्भ के रूप में कुंजी क्यों नहीं दे सकते?संदर्भ के अनुसार कुंजी और मूल्य दोनों को पास करने के विकल्प:
पूर्व:
if(is_array($where)){
foreach($where as &$key => &$value){
$key = sec($key);
$value = sec($value);
}
unset($key, $value);
}
फेंकता:
Fatal error: Key element cannot be a reference in linkstest.php on line 2
मैं array_map का उपयोग कर कुछ इसी तरह कर सकता हूँ? मैं बस एक एसोसिएटिव सरणी पर पुनरावृत्ति करना चाहता हूं, और मेरे सेक() फ़ंक्शन के साथ कुंजी और मान दोनों से बचें। मुझे समझने के लिए
सरणी नक्शा मुश्किल है:
मैं array_map साथ बहुत सी बातें की कोशिश की है, लेकिन मैं इसे चाबियाँ पर सीधे कार्य करने के लिए नहीं मिल सकता है।
क्या मुझे केवल फ़ोरैच लूप का उपयोग करने से सरणी मानचित्र का उपयोग करके कोई प्रदर्शन लाभ मिलेगा?
मैं foreach के बारे में क्या पसंद नहीं है कि मैं सरणी पर सीधे कार्य नहीं कर सकते हैं, और अस्थायी सरणियों बनाने और उन्हें unsetting से निपटने के लिए है:
foreach($where as $key => $value){
$where[secure($key)] = secure($value);
}
यह अगर यह कुछ पाता है असफल हो सकता है कुंजी में भागने, एक नया तत्व जोड़ने, और अनचाहे रखने के लिए।
तो क्या मैं इस तरह से कुछ अटक गया हूँ?
$temparr = array();
foreach($where as $key => $value){
$temparr[secure($key)] = secure($value);
}
$where = $temparr;
unset($temparr);
कोई विकल्प?
यह एक बड़ा पुराना * क्यों * योग्य है? क्या होगा यदि 'sec ($ key) 'परिणाम किसी अन्य मौजूदा कुंजी के मान में हैं? क्या आप मौजूदा कुंजी को अभी ओवरराइट करते हैं? आपको यह बताने की जरूरत है कि आपके आवेदन में क्यों एक कुंजी खतरनाक हो सकती है। – webbiedave
यह खतरनाक क्यों नहीं हो सकता है? आप फ़ॉर्म पर $ _POST कुंजी आसानी से बदल सकते हैं, या Tamperdata जैसे कुछ के साथ। कुछ चाबियाँ जो मैं mysql प्रश्नों में उपयोग करता हूं। – Ben
मैंने यह नहीं कहा कि वे नहीं हो सकते थे। मैंने कहा कि आपको यह बताने की जरूरत है कि * आपके आवेदन * में एक कुंजी खतरनाक क्यों हो सकती है। इससे हमें आपकी स्थिति के लिए उपयोग करने का सबसे अच्छा तरीका बताएगा। – webbiedave