你可以在PHP中使用带空格的变量吗?

时间:2015-04-22 08:56:16

标签: php variables space names

我在使用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']变量,其中出现两个问题:

  1. 我可以通过$以某种方式直接访问它吗?我已经在某个地方读过你需要用大括号({$two words}或我假设${two words})得到整个变量,但这并不起作用。
  2. 你真的可以在PHP中使用带空格的变量吗?我尝试使用包含空格的键创建一个关联数组,并且有效:

    $a['a space'] = 1;
    echo $a['a space']; // 1
    

1 个答案:

答案 0 :(得分:7)

echo "$two words"; // error since $two doesn't exist

这个问题是字符串插值规则将停止在变量名中无效的第一个字符处。它并不特定于变量变量,它特定于字符串插值。

这样做:

echo ${'two words'};

但是由于这很尴尬并且在与有效变量名称相同的情况下都不起作用(例如字符串插值),所以你真的不应该这样做。