0

sprintf()在我的程序中使用来输出一些制表符和换行符。我注意到我的程序的一部分无法正常工作。

当我检查不工作的部分时,我注意到我使用了单引号'而不是双引号",并且程序实际上输出了 a\t而不是不可见的制表符空间。

我认为这两者是相似的,php 有两个分隔符的原因是我们能够在字符串中插入单引号或双引号,或者在echo不插入转义字符的情况下插入它们。

除了我发现的变量之外,分配变量会不会有所不同

$a = "qq";
$b = 'qq';

它们会以不同的方式存储在计算机的内存中吗?

4

3 回答 3

1

您可以参考手册,其中指定 php 中的单引号将大多数转义序列视为 litterals,与双引号相反:http: //php.net/manual/en/language.types.string.php

于 2012-05-16T09:51:34.217 回答
1
  • 单引号比双引号快
  • 双引号可以解析php变量。即$a=2;如果你使用echo "a is: $a"; 那么它将打印a is: 2但单引号将打印a is: $a
于 2012-05-16T10:04:59.480 回答
0
if you use single quotes for the format string (like you should do, since there 
aren't any variable conversions to do as long as you don't need any special chars), 
the given examples won't work because of the backslash before the $ (needs to be 
escaped in double quoted strings - but not in single quoted!) http://php.net/manual/en/function.sprintf.php
于 2012-05-16T10:00:54.563 回答