我想知道,插入PHP变量到字符串的正确方法是什么? 这种方式:
echo "Welcome ".$name."!"
或者这样:
echo "Welcome $name!"
这两种方法都可以在我的PHP v5.3.5中使用。后者更短更简单,但我不确定前者是更好的格式还是更合适。
我想知道,插入PHP变量到字符串的正确方法是什么? 这种方式:
echo "Welcome ".$name."!"
或者这样:
echo "Welcome $name!"
这两种方法都可以在我的PHP v5.3.5中使用。后者更短更简单,但我不确定前者是更好的格式还是更合适。
当前回答
双引号字符串更优雅,因为您不必在每次需要插入变量时拆分字符串(就像您必须对单引号字符串做的那样)。
但是,如果需要插入函数的返回值,则不能将其插入双引号字符串中——即使使用大括号将其括起来!
//syntax error!!
//$s = "Hello {trim($world)}!"
//the only option
$s = "Hello " . trim($world) . "!";
其他回答
双引号字符串更优雅,因为您不必在每次需要插入变量时拆分字符串(就像您必须对单引号字符串做的那样)。
但是,如果需要插入函数的返回值,则不能将其插入双引号字符串中——即使使用大括号将其括起来!
//syntax error!!
//$s = "Hello {trim($world)}!"
//the only option
$s = "Hello " . trim($world) . "!";
从php4开始,你可以使用字符串格式化器:
$num = 5;
$word = 'banana';
$format = 'can you say %d times the word %s';
echo sprintf($format, $num, $word);
来源:sprintf ()
我一直都喜欢这种方式,而且发现它容易得多。
echo "Welcome {$name}!"
如果你想执行一个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]')";
我知道这个问题已经有了一个选择的答案,但我发现这篇文章明显表明,字符串插值比串联更快。这可能对那些仍在犹豫的人有所帮助。