你可以用PHP空间变量?(Can you have variables with spaces in

2019-10-22 18:09发布

我是瞎搞与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 

Answer 1:

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

这样做的问题是,串插规则将在第一个字符,这不是一个变量名有效制止。 它不是针对可变的变量,因此,它是特定的字符串插值。

这会做:

echo ${'two words'};

但由于这是相当尴尬,并在所有相同的情况下不工作作为有效的变量名做(如字符串插值),你真的不应该做这个不断。



文章来源: Can you have variables with spaces in PHP?