2012-02-21 12 views
7

पीएचपी एक समारोह निकालने कि इस तरह एक सरणी में परिवर्तित कर देंगे है अबphp चर "निकालने" के विपरीत

$var1 = 1; 
$var2 = 2; 

, मैं विपरीत की जरूरत है, मैं कुछ चर है:

$var3 = 'test'; 
$test = 'another'; 
$datax = 1; 

की जरूरत है कि होने के लिए:

$array = array(
'var3' => 'test', 
'test' => 'another', 
'datax' => 1 
); 

क्या PHP में ऐसा कुछ है?

+1

इन हैं जैसे वैश्विक विस्तार कर रहे हैं, आप पहले से ही '$ वैश्विक [ 'परीक्षण'] में पास है। $ ग्लोबल्स ['var3'] '[' $ GLOBALS' संदर्भ] (http://us3.php.net/manual/en/reserved.variables.globals.php) –

+3

यह मैन्युअल पृष्ठ पर 'कॉम्पैक्ट' सही कहता है 'निकालने के लिए]] (http://php.net/extract)। आपको यह क्यों नहीं मिला? – Gordon

+0

सही उत्तर "गुण वर्ग 3, परीक्षण और डेटाएक्स युक्त वर्ग बनाएगा", लेकिन दुर्भाग्य से SO परिप्रेक्ष्य में जो आपके प्रश्न का उत्तर नहीं होगा। – CodeCaster

उत्तर

16

देखें आप compact() उपयोग कर सकते हैं इस लक्ष्य को हासिल करने के लिए।

$var3 = 'test'; 
$test = 'another'; 
$datax = 1; 
$array = compact('var3', 'test', 'datax'); 

संदर्भ: http://php.net/manual/en/function.compact.php

+1

ओह बहुत बहुत धन्यवाद, मैंने कभी अनुमान लगाया नहीं होगा – EscoMaji

1

आप होना होगा वास्तव में सुनिश्चित करें कि आप ऐसा करने के लिए (यह वैश्विक क्षेत्र में स्वचालित रूप से बातें भी शामिल है) चाहता था, लेकिन आप

$my_vars = get_defined_vars(); 

उपयोग कर सकते हैं यदि आप इसे इससे अधिक चुनिंदा चाहते हैं, तो आप इसे इस तरह फ़िल्टर करने पर देख सकते हैं:

$my_vars = pack_vars(get_defined_vars()) 

function pack_vars ($defined_vars) 
{ 
    $packed = array(); 
    $ignored = array('dont_use_this', 'ignored_var', 'ignore_this_too'); 

    foreach ($defined_vars AS $key => $value) 
    { 
     if (!in_array($key, $ignored)) 
     { 
      $packed[$key] = $value; 
     } 
    } 
    return $packed; 
} 
,210
+0

पहले से ही 'पैक' – ThiefMaster

+0

डैन PHP नामक एक बिल्टिन फ़ंक्शन है। नामित :) – Joe

+0

फ़ंक्शन के अंदर get_defined_vars() फ़ंक्शन में उपलब्ध केवल वे चर लौटाता है। मैंने पहले फ्रेमवर्क का उपयोग किया है जो एक सरणी को नियंत्रक से वापस करने की अपेक्षा करता है। यह कार्य उपयोगी है। इसका उपयोग करने से पहले किसी अवांछित चर को अनसेट करना याद रखें - जैसे डेटाबेस परिणाम सेट। –

3

इस

$preDefined = (get_defined_vars()); 
$var3 = 'test'; 
$test = 'another'; 
$datax = "1"; 
$newDefined = array_diff(get_defined_vars(), $preDefined); 
print_r($newDefined); 
संबंधित मुद्दे