为什么 return "ConcreteClass1" 使用双引号?echo $class2->prefixValue('FOO_') ."\n"; 使用单引号传值,然后又使用双引号换行。不是说要单引号和双引号通一吗?? 我就是越学越不明白了??难到 是两个人一起写的程序??那位高手可以指点一二,先谢谢了

解决方案 »

  1.   

    echo $class2->prefixValue('FOO_') ."\n"; 使用单引号传值,然后又使用双引号换行。其实改成这样也可以
    echo $class2->prefixValue("FOO_") ."\n";并不影响使用.
    不过,使用单引号的效率要比双引号的效率要高一点,所以在$class2->prefixValue('FOO_')部分就使用了单引号.
    至于."\n";部分的双引号,是因为如果使用了.'\n';那就不会在页面上出现一个回车符了(这么说可能比较糊涂,楼主可以这么试一下---
    echo "\n" . "\n" . "\n" . '<br>';
    echo '\n' . '\n' . '\n' . '<br>';然后运行后看一下网页的源文件就会明白了
    )
      

  2.   

    to lzkd(浪子快刀)为什么 return "ConcreteClass1" 要使用双引号?
      

  3.   

    一般情况下使用双引号,但需要单引号配合,楼主在PHP征途中慢慢就会明白
      

  4.   

    <?php
    $content = 'abc""def';
    $content = str_replace('""',//此处用""""就不行,但用"\"\""可以
    "两个双引号",$content);
    echo $content;
    ?>
    <br>
    <?php
    $content = 'abc""def';//此处"abc""def"就不行,但"abc\"\"def"可以
    $content = str_replace('""',
    "两个双引号",$content);
    echo $content;
    ?>
    <br>
    <?php
    $content = "abc''def";//此处"abc""def"就不行,但"abc\"\"def"可以
    $content = str_replace("''",//此处''''就不行,但'\'\''可以
    "两个单引号",$content);
    echo $content;
    ?>
    <br>
    <?php
    $content = 'abc\'\'def';//此处'abc''def'就不行
    $content = str_replace("''",//此处''''就不行,但'\'\''可以
    "两个单引号",$content);
    echo $content;
    ?>
    ......还能排列出很多
      

  5.   

    在php中,用单引号括起的内容被当做字符串常量解释。而用双引号括起的内容被当做“取值表达式”解释,其中的变量名用变量的值替换,文本格式符\t、\r、\n也在这里被替换成对应的ascii码。
    所以
    1、对于字符串常量,使用单引号和双引号是一样的。但后者略慢于前者
    2、对于字符串常量和php变量混合排列的情况,一般使用双引号括起,这样可使可读性加强
    3、双引号还具有将数值类型转换为字符串类型的功能,这在一些场合中是很有用的
    $a = 2;
    var_dump($a);//int(2)
    var_dump("$a");//string(1) "2"echo ('' == $a) ? 'yes' : 'no'; //yes
    echo ('' == "$a") ? 'yes' : 'no'; //no
      

  6.   

    to xuzuning(唠叨) echo ('' == $a) ? 'yes' : 'no'; //yes
    echo ('' == "$a") ? 'yes' : 'no'; //no这2个结果都是 no