php5 中文手册 
语言简介 中的变量部分
第五小节 变量名中的点
变量名中的点
通常,PHP 不会改变传递给脚本中的变量名。然而应该注意到点(句号)不是 PHP 变量名中的合法字符。至于原因,看看: <?php
$varname.ext;  /* 非法变量名 */
?>  
这时,解析器看到是一个名为 $varname 的变量,后面跟着一个字符串连接运算符,后面跟着一个裸字符串(即没有加引号的字符串,且不匹配任何已知的健名或保留字)'ext'。很明显这不是想要的结果。 出于此原因,要注意 PHP 将会自动将变量名中的点替换成下划线。 
最后一句 是翻译错误呢?还是我理解不了
出于此原因,要注意 PHP 将会自动将变量名中的点替换成下划线。 请专家解答!

解决方案 »

  1.   

    手册上说会自动替换成下划线,
    这个没有遇到过.实际情况应该是会产生一个Notice级别的错误,提示ext为未定义的常量.
    然后将ext当作常量本身的值来处理,
    也就是说相当于  $varname . "ext";
      

  2.   

    你是不是看少了点东西那是指HTML 表单(GET 和 POST)传入的变量
    newFile.php?varname.ext=1var_dump($_GET);array(1) { ["varname_ext"]=>  string(1) "1" }