拼字符串的艺术


场景就是SQL的拼接,页面JS变量的拼接. 拼接有两种方式, 一种是拼字符串, 也是大部分人常用的方式. 还有一种就是我要推荐的, 数组的方式.

直接上代码吧, 这是字符串方式的:

$arr = array('a' => 1, 'b' => 2, 'c' => 3);
$tmp = '';
foreach ($arr as $k => $v){
	$tmp .= "$k=>'$v',";
}
$tmp = substr($tmp, 0, -1);

这是数组方式的:

$arr = array('a' => 1, 'b' => 2, 'c' => 3);
$tmp = array();
foreach ($arr as $k => $v) {
	$tmp[] = "{$k}=>'{$v}'";
}
$tmp = implode(',', $tmp);

开始,我还认为用数组的方式应该会明显慢于字符串方式呢.在写这篇文章的时候,我做了一些实验, 两种方式的效率不相上下. 而在内存占用方面,数组的略高几十字节.

上边的例子有点特殊, 所以,看起来感觉字符串拼接跟数组拼接差不多复杂的样子, 而很多时候是只需要一个implode就搞定了的~ Ps: 其实,array_walk array_map是好方法~ 在拼接SQL的时候很给力.


发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注