有没有一种更简单的方法可以将PHP数组打印成字符串?

有没有一种更简单的方法可以将PHP数组打印成字符串?,php,arrays,string,Php,Arrays,String,正如你所知,一个好的程序员是一个懒惰的程序员,但我就是懒惰。我的问题是:有没有一种更简单的方法可以从PHP echo语句中的MySQL查询打印出数组元素 我通常这样做: echo "string start " . $array['element'] . " string end"; 它工作得很好,我只想用一种更短的方式打印出来,因为echo将变量的['element']位视为字符串。我可以使用列表获取所有元素,但这不是我想要的 那么,有什么答案吗 谢谢你的阅读 James使用{}围绕数组进行

正如你所知,一个好的程序员是一个懒惰的程序员,但我就是懒惰。我的问题是:有没有一种更简单的方法可以从PHP echo语句中的MySQL查询打印出数组元素

我通常这样做:

echo "string start " . $array['element'] . " string end";
它工作得很好,我只想用一种更短的方式打印出来,因为echo将变量的['element']位视为字符串。我可以使用列表获取所有元素,但这不是我想要的

那么,有什么答案吗

谢谢你的阅读


James

使用{}围绕数组进行字符串插值,或者使用sprintf

<?php
    $array = array('foo'=>'bar');

    echo "Print it with {}: {$array['foo']}";
    echo "\n";
    echo sprintf("Print it with sprintf: %s", $array['foo']);

使用{}环绕数组进行字符串插值,或者使用sprintf

<?php
    $array = array('foo'=>'bar');

    echo "Print it with {}: {$array['foo']}";
    echo "\n";
    echo sprintf("Print it with sprintf: %s", $array['foo']);

我肯定我明白你想做什么

如果您想要一个较短的版本,请按如下方式连接:

echo "string start $array[element] string end";
这也适用于:

echo "string start {$array['element']} string end";

我肯定我明白你想做什么

如果您想要一个较短的版本,请按如下方式连接:

echo "string start $array[element] string end";
这也适用于:

echo "string start {$array['element']} string end";

实际上你可以这样做

echo "string start $array[element] string end";

PHP允许双引号字符串中的变量。尽管如此,请不要

你实际上可以这么做

echo "string start $array[element] string end";
$s = 'string start ';
$e = ' string end';
$v = $arr['element'];

// Now you need only 14 keystrokes:
echo $s.$v.$e;

PHP允许双引号字符串中的变量。尽管如此,请不要

由于我非常不喜欢在字符串中插入变量,我更喜欢使用带有几个参数的echo:

$s = 'string start ';
$e = ' string end';
$v = $arr['element'];

// Now you need only 14 keystrokes:
echo $s.$v.$e;
echo 'string start ', $array['element'], ' string end';

除此之外,它比字符串连接更快。它能更好地处理表达式的回显结果,因为,在所有的前例中,它的优先级最低。

由于我非常不喜欢在字符串中插入变量,我更喜欢使用带有几个参数的回显:

echo 'string start ', $array['element'], ' string end';


除此之外,它比字符串连接更快。它能更好地处理表达式的回音结果,因为它的前例最少。

正如你所知,一个好的程序员是一个懒惰的程序员,但我就是懒惰。这两件事我都不知道。现在我觉得很有启发性。我不知道您在项目中做了多少回音,但如果回音很多,请考虑使用许多可用模板库中的一个来帮助您打印输出。是受欢迎的。除了受欢迎的Smarty之外,还有好的。Twig支持Smarty最不方便的一些东西:模板继承,并且比Smarty快。正如你所知,一个好的程序员是一个懒惰的程序员,但我就是懒惰。这两件事我都不知道。现在我觉得很有启发性。我不知道您在项目中做了多少回音,但如果回音很多,请考虑使用许多可用模板库中的一个来帮助您打印输出。是受欢迎的。除了受欢迎的Smarty之外,还有好的。Twig支持Smarty最不方便的一些功能:模板继承,并且比Smarty更快;回音$t。或者你可以定义't',$s.$v.$e;echo t.@nikic-我想我的懒惰是有限度的虽然实际的echo语句较短,但您的解决方案实际上使代码更长,并且内联使用更麻烦。不过还是谢谢你。你可以做得更好$t=$s.$v.$e;回音$t。或者你可以定义't',$s.$v.$e;echo t.@nikic-我想我的懒惰是有限度的虽然实际的echo语句较短,但您的解决方案实际上使代码更长,并且内联使用更麻烦。无论如何,谢谢。你是说即使是普通变量而不是数组也不应该在回音中打印?若然,原因为何?同样,上面的例子也可以,但我使用字符串作为元素名,除非你的意思是PHP将接受不带引号的数组元素?因为这是一个坏的因果报应。。。包括数组。将文字和变量分开,以保持代码可读性并简化重构,这是一个好主意。虽然没有人会杀了你,但我至少会避免,如果你在一个团队工作,它会为你工作,echo$array[element];与echo$array['element']相同;非常感谢!除了$array[element]或$array['element']之外,我还有其他的选择吗printf php.net/printf将是我的选择,不过还有几个额外的字节:p printfstart%s end,$array['element'];你是说即使是普通变量而不是数组也不应该打印在回音中?若然,原因为何?同样,上面的例子也可以,但我使用字符串作为元素名,除非你的意思是PHP将接受不带引号的数组元素?因为这是一个坏的因果报应。。。包括数组。将文字和变量分开,以保持代码可读性并简化重构,这是一个好主意。虽然没有人会杀了你,但我至少会避免,如果你在一个团队工作,它会为你工作,echo$array[element];与echo$array['element']相同;非常感谢!除了$array[element]或$array['element']之外,我还有其他的选择吗printf php.net/printf将是我的选择,不过还有几个额外的字节:p printfstart%s end,$array['element'];