form提交后跳转到新的页面上,我想在新的页面上显示form当中的变量,用如下的方式报错:
echo "your selection is. $_POST['location']";
但是如果修改成
echo "your selection is". $_POST['location'];
就ok,不知道是什么原因
我在有些资料上看到,PHP会对被双引号括注的内容进行变量解析,所以我想知道上面第一种方法有什么错误?谢谢

解决方案 »

  1.   

    echo "your selection is. $_POST[location]";就可以$_POST['location']中的单引号在做怪
      

  2.   

    echo "your selection is. $_POST['location']";改为echo "your selection is. {$_POST['location']}";
      

  3.   

    to yiwusuo() :
    谢谢回复。我试过了,你的做法可行的,但是第一种写法当中的单引号有什么问题呢?我看到好多的例子当中在取得form当中的变量的时候要么用的是单引号,要么用的是双引号。那么规范的做法应该是怎样的呢?谢谢。
      

  4.   

    to PleaseDoTellMeWhy(Allah bless you!) :
    谢谢你的热心回复。我用你的代码测试过,我本来想要显示我在前一个form当中的字段的内容(selection),但是现在发现页面试图跳转到selection所代表的另外一个页面上,我刚刚开始学习PHP,很想知道你的代码中的{$_POST['location']}是一种什么样的用法。在此感谢。
      

  5.   

    echo "your selection is. $_POST['location']";
    echo "your selection is". $_POST['location'];你这两句不一样哦
    echo "your selection is $_POST['location']";
    echo "your selection is ". $_POST['location'];
    这样才一样
    .在字符串操作的时候是作为连接符的,你第一句.在双引号内是不起任何作用的
    另:数组下标用单引号,双引号,甚至不引号都可以,只是单引号单纯的把引号包括的内容当作字符串处理,如果填写变量就不行了.
      

  6.   

    to fyxw(7级乱射):
    感谢你的热心回复,但是你知道吗,我刚才试过,你的2条语句中的第一种同样会报出错误的
    (跟我前面遇到的错误相同),错误的内容大致如下:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in XXXXXXX谢谢。
      

  7.   

    echo "your selection is. $_POST['location']";
    改为 echo "your selection is. $_POST[\"location\"]";
      

  8.   

    to xiong_song():
    你好,谢谢回复,但是按照你的代码改的话,仍然有问题,报错如下:
    Parse error: syntax error, unexpected T_CHARACTER, expecting T_STRING or T_VARIABLE or T_NUM_STRING in XXXXXXX on line XX
      

  9.   

    PHP中单引号永远是被直译的.也就是输入什么就是什么
    比如
    echo '$str'会直接输出$str同样的道理
    用有单引号的用{}括起来最好
      

  10.   

    $_POST[ 'location '] 为什么location要用单引号括起来,因为它不是变量,是字符串
    "your   selection   is.   $_POST[ location ] ";  而这里的location为什么没用单引号括起来,因为location同样不是变量,但他在双引号内就被解释成字符串不需要用单引号来标明它是个字符串