<?php
require("string.php");
switch($_GET["str"]){
    case "xx":
        echo $str1;//$str1是string.php里的已经赋值的变量
        break;
    case "uu":
        echo $str2;//$str2是string.php里的已经赋值的变量
        break;
    default:
        echo "在网址栏输入";   
}
在网址输入栏中的本页面地址后面加?str=xx,enter后为什么不输出$str1的变量

解决方案 »

  1.   

    代码没有问题,不知道你怎么测试的。
    是运行当前页面时,在后面加 ?str=xx ,不是在 string.php 
      

  2.   

    是运行当前页面时,不管加不加?str=xx,页面一直是default的值:在网址栏输入
    要不在你电脑上试试,谢谢
      

  3.   

    贴出你的测试url地址 看是否有问题
      

  4.   

    直接输出$_GET["str"]看看结果是什么?
    还有string.php的引用路径是不是弄错了?
      

  5.   

    print_r($_GET);  //是什么结果
      

  6.   

    $str在string.php里赋值了,那你switch这里为什么还判断$_GET['str']而不是$str?注意变量作用域问题,你这个switch块或者string.php里的赋值操作是在函数内部进行的。那么受到作用域问题影响另一个地方肯定无法输出值。这个应该不是受到php.ini的register_global的影响,因为lz说他已经手动赋值了。我觉得应该是作用域的问题。
      

  7.   


    我echo "aaaaaaaaaaaaaaaaaaaaaaa";
    照样没反应
      

  8.   

    设 string.php 为<?php
    $str1 = 'a';
    $str2 = 'b';测试你的代码,没有出现你说的现象
      

  9.   

    var_dump($_GET);
    看看有什么输出
      

  10.   


    我的应该地址输错了:http://localhost/lianxi/shili/bh.php?str="xx"
    xx两边不应该有"",还有地址xx不可以换成汉字,我刚才吧xx换成汉字就不行了,这是怎么回事啊?
      

  11.   


    对时url有问题只是我吧xx换成汉字又不行了,这是怎么回事
      

  12.   

    url地址栏的内容还是很讲究的 你去查一下  有一些特殊字符不能传 
    字符串不用引号的 直接    www.xxx.com?str1=abc&str2=def 就可以了
    至于中文的话  地址栏是不允许传中文的  最好不要用中文传 程序设计时 最好传个简单的值。比如ID这样的
    如果实在要用中文的话   要用相关函数进行打包才能传的