我们知道 PHP 使用在变量名前面加上 “$” 符号的约定。PHP 还可以通过在名称前加上两个美元符号 ($$) 来声明动态变量。可以动态设置和使用变量(或动态变量)。
普通变量的声明是这样的 -
动态变量采用普通变量的值,并将其视为变量的名称。在上面的例子中,通过使用两个美元符号 “$$” - “good” 可以用作变量的名称 -
我们现在有两个变量:“$a”和“$$a”,内容为“morning”。因此,以下 echo 语句将产生相同的输出 -
两者都产生相同的输出 -
示例 1
看看下面的例子 -
它将产生以下输出 -
good morning
示例 2
让我们看另一个例子 -
在这里,您将获得以下输出 -
Value of $$x = bar
Value of foo = bar
使用多个 “$” 符号
请注意,“$” 符号的使用不限于两个。可以为任意数量的美元符号添加前缀。
假设有一个变量 “$x”,其值为 “a”。接下来,我们定义 $$x='as',然后 “$$x” 和 “$a” 将具有相同的值。同样,语句 $$$x='and' 实际上声明了一个值为 'and' 的 “$as” 变量。
例子
这是一个完整的示例,显示了多个 “$” 符号的使用。
当您运行此代码时,它将生成以下输出 -
$$a= World
$$$a= lang
$$$$a= php
$$$$$a= a
将动态变量与数组一起使用
将动态变量与数组一起使用可能会导致某些不明确的情况。对于数组 “a”,如果你写 $$a[1],那么解析器需要知道你是引用 “$a[1]” 作为变量,还是希望 “$$a” 作为变量,然后是该变量的 [1] 索引。
要解决这种歧义,请对第一种情况使用 ${$a[1]},对第二种情况使用 ${$a}[1]。
例子
请看下面的例子 -
它将产生以下输出 -
Linux
PHP
Intel
Linux
PHP
需要注意的是,这种技术不能在函数或类方法中与 PHP 的超全局数组(PHP 中的几个预定义变量是“超全局变量”,这意味着它们在整个脚本的所有范围内都可用)一起使用。变量 “$this” 是 PHP 中的一个特殊变量,不能动态引用。