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' 变量,其中出现两个问题:
- 我可以通过
$
以某种方式直接访问它吗?我在某处读到,您需要将整个变量放在大括号中({$two words}
或我假设 ${two words}
),但这没有用。
你真的可以在 PHP 中使用带空格的变量吗?我尝试用包含空格的键制作一个关联数组并且有效:
$a['a space'] = 1;
echo $a['a space']; // 1
echo "$two words"; // error since $two doesn't exist
问题是字符串插值规则将在变量名称中的第一个无效字符处停止。它不特定于变量本身,它特定于字符串插值。
这样做:
echo ${'two words'};
但由于这相当尴尬,并且在所有与有效变量名相同的情况下都不起作用(例如字符串插值),所以您真的不应该这样做。
我在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}
或我假设${two words}
),但这没有用。 你真的可以在 PHP 中使用带空格的变量吗?我尝试用包含空格的键制作一个关联数组并且有效:
$a['a space'] = 1; echo $a['a space']; // 1
echo "$two words"; // error since $two doesn't exist
问题是字符串插值规则将在变量名称中的第一个无效字符处停止。它不特定于变量本身,它特定于字符串插值。
这样做:
echo ${'two words'};
但由于这相当尴尬,并且在所有与有效变量名相同的情况下都不起作用(例如字符串插值),所以您真的不应该这样做。