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

echo "Welcome ".$name."!"

或者这样:

echo "Welcome $name!"

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


当前回答

我使用点(.)连接字符串和变量。像这样,

echo "Hello ".$var;

有时,我使用花括号连接字符串和变量,看起来像这样-

echo "Hello {$var}";

其他回答

你应该选择第一个。他们没有什么不同,除了性能,第一个将是最快的第二个比较。

如果双引号内的变量PHP需要时间来解析变量。

检查这个单引号或双引号变量连接?

在php中单引号和双引号是否有性能上的优势?

我不明白为什么上面链接的这个答案会被点赞,为什么这个答案会被点赞。

我也说过了。

你也可以看这里

PHP中哪个更快,单引号还是双引号?

我知道这个问题已经有了一个选择的答案,但我发现这篇文章明显表明,字符串插值比串联更快。这可能对那些仍在犹豫的人有所帮助。

我使用点(.)连接字符串和变量。像这样,

echo "Hello ".$var;

有时,我使用花括号连接字符串和变量,看起来像这样-

echo "Hello {$var}";

如果你想执行一个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]')";

两种都可以。使用对你来说能见度更好的那个。说到可见性,你也可以查看printf。