ตัวอย่างคือการประกาศตัวแปรภายในฟังก์ชัน:
global $$link;อะไร$$หมายถึง?
${$link}ใน Bash
                ตัวอย่างคือการประกาศตัวแปรภายในฟังก์ชัน:
global $$link;อะไร$$หมายถึง?
${$link}ใน Bash
                คำตอบ:
ไวยากรณ์เช่น$$variableที่เรียกว่าVariable เปลี่ยนแปลง
ตัวอย่างเช่นหากคุณพิจารณาโค้ดส่วนนี้:
$real_variable = 'test';
$name = 'real_variable';
echo $$name;
คุณจะได้รับผลลัพธ์ต่อไปนี้:
test
ที่นี่:
$real_variable มีการทดสอบ$name มีชื่อตัวแปรของคุณ: 'real_variable'$$nameหมายความว่า " ตัวแปร thas มีชื่ออยู่ใน$name "
$real_variable 'test'แก้ไขหลังจากความคิดเห็นของ @ Jhonny:
การทำ$$$?
วิธีที่ดีที่สุดที่จะรู้คือลอง ;-)
ลองใช้โค้ดส่วนนี้:
$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
ฉันจะบอกว่าใช่คุณทำได้$$$ ;-)
{และ}จำเป็น(มีตัวอย่างในคู่มือเกี่ยวกับเรื่องนี้)
                    $ ภายในแก้ไขตัวแปรให้เป็นสตริงและด้านนอกจะแก้ไขตัวแปรด้วยสตริงนั้น
ลองพิจารณาตัวอย่างนี้
$inner = "foo";
$outer = "inner";
ตัวแปร:
$$outerจะเท่ากับสตริง "foo"
<?php
$a = 'hello';
$$a = 'world'; // now makes $hello a variable that holds 'world'
echo "$a ${$a}"; // "hello world"
echo "$a $hello"; // "hello world"
?>
สร้างชื่อตัวแปรแบบไดนามิก เช่น
$link = 'foo';
$$link = 'bar';    // -> $foo = 'bar'
echo $foo;
// prints 'bar'
(หรือที่เรียกว่าตัวแปรตัวแปร )
ฉันไม่ต้องการทำซ้ำหลังจากคนอื่น แต่มีความเสี่ยงในการใช้$$:)
$a  = '1';
$$a =  2; // $1 = 2 :)
ดังนั้นใช้มันด้วยหัว :)
จะประเมินเนื้อหาของตัวแปรหนึ่งเป็นชื่อของอีกตัวแปรหนึ่ง $linkโดยทั่วไปจะช่วยให้คุณมีตัวแปรที่มีชื่อถูกเก็บไว้ใน
สิ่งนี้ได้ผลสำหรับฉัน (ใส่ในวงเล็บเหลี่ยม):
$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;
    }