为什么PHP会取代。如果为';美元中有一把钥匙吗?

为什么PHP会取代。如果为';美元中有一把钥匙吗?,php,Php,可能重复: 示例:test.php?foo.bar=1 print_r($_GET); // Array ( [foo_bar] => 1 ) 这里有一段引用自 传入变量名中的点 通常情况下,PHP不会更改变量的名称 传递到脚本中。但是,应该注意的是,圆点 (句点,句号)不是PHP变量名称中的有效字符。 因此,请看一下: <?php $varname.ext; /* invalid variable name */ ?> Now, what the 现在,什么是

可能重复:

示例:test.php?foo.bar=1

print_r($_GET);

// Array ( [foo_bar] => 1 ) 
这里有一段引用自

传入变量名中的点

通常情况下,PHP不会更改变量的名称 传递到脚本中。但是,应该注意的是,圆点 (句点,句号)不是PHP变量名称中的有效字符。 因此,请看一下:

<?php $varname.ext;  /* invalid variable name */ ?> Now, what the
现在,什么是
parser sees是一个名为$varname的变量,后跟字符串 串联运算符,后跟空字符串(即无引号 与任何已知关键字或保留字“ext”不匹配的字符串。 显然,这并没有达到预期的效果。因此,它 需要注意的是,PHP将自动替换中的任何点 带下划线的传入变量名


如果设置了register\u globals指令,则$\u GET中的数组键必须用作变量名,php变量名中不允许使用点、空格以及各种其他字符。由于担心您已经设置了该指令,php会替换php手册中的那些“无效”字符,这些字符根据以下问题准确无误:

注意: 变量名中的点和空格转换为下划线。例如变成$_请求[“a_b”]


来源:

您是否可以始终将名称作为值传递?test.php?1=foo.bar