我想知道,插入PHP变量到字符串的正确方法是什么? 这种方式:

echo "Welcome ".$name."!"

或者这样:

echo "Welcome $name!"

这两种方法都可以在我的PHP v5.3.5中使用。后者更短更简单,但我不确定前者是更好的格式还是更合适。


当前回答

双引号字符串更优雅,因为您不必在每次需要插入变量时拆分字符串(就像您必须对单引号字符串做的那样)。

但是,如果需要插入函数的返回值,则不能将其插入双引号字符串中——即使使用大括号将其括起来!

//syntax error!!
//$s = "Hello {trim($world)}!"

//the only option
$s = "Hello " . trim($world) . "!";

其他回答

这只是趣味问题。 你想用什么就用什么。

大多数时候我用第二个,但这要看情况。

我还建议你找一个好的编辑器,它可以突出显示字符串中的变量

如果你想执行一个SQL命令,而你的变量是数组成员,那么你不应该在数组的[]中使用单引号(像这样:["]);例如,如果你使用这个字符串作为SQL命令,你会得到服务器错误500:

$con = mysqli_connect('ServerName', 'dbUsername', 'dbPassword');
mysqli_select_db($con, 'dbName')

//'ID' is auto increment field.
$sql = "INSERT INTO sampleTable (ID, TraceNo) VALUES ('','$sampleArray['TraceNo']')";
mysqli_query($con, $sql)

正确的字符串是:

//'ID' is auto increment field.
$sql = "INSERT INTO sampleTable (ID, TraceNo) VALUES ('','$sampleArray[TraceNo]')";

双引号字符串更优雅,因为您不必在每次需要插入变量时拆分字符串(就像您必须对单引号字符串做的那样)。

但是,如果需要插入函数的返回值,则不能将其插入双引号字符串中——即使使用大括号将其括起来!

//syntax error!!
//$s = "Hello {trim($world)}!"

//the only option
$s = "Hello " . trim($world) . "!";

从第一个开始,使用单引号!

它更容易阅读,这意味着其他程序员将知道发生了什么 它的工作速度略快,PHP解剖源代码时创建操作码的方式,基本上都会这样做,所以给它一个帮助! 如果你也使用单引号而不是双引号,你会进一步提高你的表现。

只有当你需要\r, \n, \t时,你才应该使用双引号! 在任何其他情况下使用它的开销都是不值得的。

您还应该检查PHP变量拼接,phpbench.com,以获得关于不同操作方法的一些基准测试。

不要连接。这是不需要的,我们的逗号作为echo可以接受多个参数

echo "Welcome ", $name, "!";

关于使用单引号或双引号,差异可以忽略不计,您可以使用大量字符串进行测试。