PHP में $$ (डॉलर डॉलर या डबल डॉलर) का क्या अर्थ है?


116

उदाहरण एक फ़ंक्शन के भीतर एक चर घोषणा है:

global $$link;

क्या $$मतलब है?



50
यह आपको दिखाता है कि सिस्टम को बनाए रखने के लिए आपको कितना $ $ $ मिलेगा?)
RCIX


यह एक नाम-आधारित डी-संदर्भ है। ${$link}बैश में कुछ इस तरह है
Ondra Novižka

जवाबों:


182

एक वाक्य रचना जैसे कि चर चर$$variable कहा जाता है ।


उदाहरण के लिए, यदि आप कोड के इस हिस्से पर विचार करते हैं:

$real_variable = 'test';
$name = 'real_variable';
echo $$name;

आपको निम्न आउटपुट मिलेगा:

test


यहाँ :

  • $real_variable परीक्षण होता है
  • $name आपके चर का नाम है: 'real_variable'
  • $$name" चर चर का अपना नाम$name " में निहित है
    • जो है $real_variable
    • और मूल्य है 'test'



@ झॉनी की टिप्पणी के बाद EDIT:

एक कर रहा है $$$?
खैर, जानने का सबसे अच्छा तरीका है ;-)

तो, चलो कोड के इस हिस्से की कोशिश करते हैं:

$real_variable = 'test';
$name = 'real_variable';
$name_of_name = 'name';

echo $name_of_name . '<br />';
echo $$name_of_name . '<br />';
echo $$$name_of_name . '<br />';

और यहाँ उत्पादन मुझे मिलता है:

name
real_variable
test

तो, मैं कहूंगा कि, हां, आप कर सकते हैं$$$ ;-)


10
जबकि मैं मानता हूं कि यह उपयोगी हो सकता है, वैसे भी अधिकांश समय सरणियों का उपयोग करना बेहतर होता है।
ओ ० '।

तो यह $ {$ मूल्य} करने के समान है?
चैम

3
@ पेटीएम: हाँ यह है ;; सिवाय इसके कि, कुछ मामलों में, {और }आवश्यक हैं (इस बारे में मैनुअल में एक उदाहरण है)
पास्कल मार्टिन

23

आंतरिक $ एक चर के लिए एक चर का समाधान करता है, और बाहरी एक स्ट्रिंग द्वारा चर का समाधान करता है।

तो, इस उदाहरण पर विचार करें

$inner = "foo";
$outer = "inner";

चर:

$$outer

स्ट्रिंग "foo" के बराबर होगा


भले ही स्वीकार किए गए anwser बहुत व्यापक है (परीक्षण मामलों सहित)। इस स्पष्टीकरण ने मेरे लिए यह स्पष्ट कर दिया
MariusJP



4

मैं दूसरों के बाद दोहराना नहीं चाहता, लेकिन एक जोखिम है $$:)

$a  = '1';
$$a =  2; // $1 = 2 :)

इसलिए इसका उपयोग सिर के साथ करें। :)


1

यह एक चर की सामग्री का दूसरे के नाम के रूप में मूल्यांकन करता है। मूल रूप से यह आपको वैरिएबल देता है जिसका नाम इसमें संग्रहीत है $link


1

यह मेरे लिए काम किया (वर्ग कोष्ठक में संलग्न):

$aInputsAlias = [
        'convocatoria'   => 'even_id',
        'plan'           => 'acev_id',
        'gasto_elegible' => 'nivel1',
        'rubro'          => 'nivel2',
        'grupo'          => 'nivel3',
    ];

    /* Manejo de los filtros */

    foreach(array_keys($aInputsAlias) as $field)
    {
        $key = $aInputsAlias[$field];

        ${$aInputsAlias[$field]} = $this->request->query($field) ? $this->request->query($field) : NULL;
    }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.