<?php
//据说变量可以在双引号中直接使用,真的吗?为什么语句一可以执行,而语句二不行呢?
$x=75;
echo "你的成绩是:$x 分<br />";
echo "你的成绩是:$x分<br />";//当然了,以下语句是可以直接执行的。
echo "你的成绩是:".$x."分<br />";
?>

解决方案 »

  1.   

    $x=75;
    echo "你的成绩是:{$x} 分<br />";
    echo "你的成绩是:{$x}分<br />";
      

  2.   

    echo "你的成绩是:$x fen<br />";echo "你的成绩是:$xfen<br />";
      

  3.   

    本帖最后由 xuzuning 于 2011-04-01 15:19:54 编辑
      

  4.   

    歧义
    虽然php理论上不能用中文做变量名,但在utf-8的情况下,php并未能有效识别“$x分”  会被误认为一个有效变量楼上的例子就是说明这点,区别只是他的例子是全英文变量名
      

  5.   

    双引号中的变量在编译的时候,会分析哪些字符是变量的名字
    php中空格不能做为变量字符,而中文可以,所以
    语句一能正确编译变量$x,但是语句二会认为 $x分 是变量,所以无法正常输出建议双引号中变量用{}包含,见1楼
      

  6.   

    PHP理论上变量名可以是中文,只是不规范,不推荐使用
      

  7.   

    变量名与 PHP 中其它的标签一样遵循相同的规则。一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。按照正常的正则表达式,它将被表述为:'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'。GBK中文的构成一般为[\x81-\xf7][\x40-\xfe]或者[\xf8-\xfe][\x40-\xa0]
    好明显GBK后一个字节相当一部分并不在\x7f-xff的范围,乱用会有问题的