ตัวอย่างคือการประกาศตัวแปรภายในฟังก์ชัน:
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;
}