PHP 中可以有带空格的变量吗?

Can you have variables with spaces in PHP?

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

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

    $a['a space'] = 1;
    echo $a['a space']; // 1
    
echo "$two words"; // error since $two doesn't exist

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

这样做:

echo ${'two words'};

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