php5 中文手册
语言简介 中的变量部分
第五小节 变量名中的点
变量名中的点
通常,PHP 不会改变传递给脚本中的变量名。然而应该注意到点(句号)不是 PHP 变量名中的合法字符。至于原因,看看: <?php
$varname.ext; /* 非法变量名 */
?>
这时,解析器看到是一个名为 $varname 的变量,后面跟着一个字符串连接运算符,后面跟着一个裸字符串(即没有加引号的字符串,且不匹配任何已知的健名或保留字)'ext'。很明显这不是想要的结果。 出于此原因,要注意 PHP 将会自动将变量名中的点替换成下划线。
最后一句 是翻译错误呢?还是我理解不了
出于此原因,要注意 PHP 将会自动将变量名中的点替换成下划线。 请专家解答!
语言简介 中的变量部分
第五小节 变量名中的点
变量名中的点
通常,PHP 不会改变传递给脚本中的变量名。然而应该注意到点(句号)不是 PHP 变量名中的合法字符。至于原因,看看: <?php
$varname.ext; /* 非法变量名 */
?>
这时,解析器看到是一个名为 $varname 的变量,后面跟着一个字符串连接运算符,后面跟着一个裸字符串(即没有加引号的字符串,且不匹配任何已知的健名或保留字)'ext'。很明显这不是想要的结果。 出于此原因,要注意 PHP 将会自动将变量名中的点替换成下划线。
最后一句 是翻译错误呢?还是我理解不了
出于此原因,要注意 PHP 将会自动将变量名中的点替换成下划线。 请专家解答!
这个没有遇到过.实际情况应该是会产生一个Notice级别的错误,提示ext为未定义的常量.
然后将ext当作常量本身的值来处理,
也就是说相当于 $varname . "ext";
newFile.php?varname.ext=1var_dump($_GET);array(1) { ["varname_ext"]=> string(1) "1" }