php循环插值可以吗?

问题描述 投票:0回答:1

我有以下代码:

$r.="<$starttag";foreach($ATTR as $attr) $r.=" {$attr}"; $r.=">$a<$endtag> ";

我想写成这样:

$r.="<$starttag {@$ATTR, } >$a<$endtag>";

或以任何其他方式避免退出正在插值的字符串 PHP 中是否有类似的可能性或者有什么技巧可以做到这一点?

php interpolation
1个回答
0
投票

我会使用

sprintf
来完成此操作,因为在我看来,它使代码更易于阅读:

// data for testing
$ATTR = [
    'attr1="attr1value"', 
    'attr2="attr2value"', 
    'attr3="attr3value"'
];

$starttag = "a";
$endtag = "a";
$a = "Value";

$r = "";
// end data for testing

$r .= sprintf(
  "<%s %s>%s</%s>",
  $starttag,
  implode(" ", $ATTR),
  $a,
  $endtag
); 

如果您不想走这条路,您可以对 $ATTR 数组的内爆值进行简单的连接,如下所示:

$r .= "<$starttag " . implode(" ", $ATTR) . ">$a<$endtag>";

© www.soinside.com 2019 - 2024. All rights reserved.