我在使用PHP中的变量变量,所以我提出了代码:
$a = 'two words';
$$a = 'something';
echo $$a; // outputs something
echo "$two words"; // error since $two doesn't exist
我只是想了解如果我们有一个包含空格的字符串,PHP会如何表现,并尝试从中创建一个变量变量。它似乎仍然存储带有空格的变量,因为我做了var_dump($GLOBALS);
而且我有这个:
'a' => string 'two words' (length=9)
'two words' => string 'something' (length=9)
我可以访问“两个字”'通过$GLOBALS['two words']
变量,其中出现两个问题:
$
以某种方式直接访问它吗?我已经在某个地方读过你需要用大括号({$two words}
或我假设${two words}
)得到整个变量,但这并不起作用。 你真的可以在PHP中使用带空格的变量吗?我尝试使用包含空格的键创建一个关联数组,并且有效:
$a['a space'] = 1;
echo $a['a space']; // 1
答案 0 :(得分:7)
echo "$two words"; // error since $two doesn't exist
这个问题是字符串插值规则将停止在变量名中无效的第一个字符处。它并不特定于变量变量,它特定于字符串插值。
这样做:
echo ${'two words'};
但是由于这很尴尬并且在与有效变量名称相同的情况下都不起作用(例如字符串插值),所以你真的不应该这样做。