是否可以使用像list这样的函数/语言结构来连接到str变量


Is it possible to use a function/language construct like list to concat to a str variable?

是否有一种更优雅的方式来连接多个变量,而不是PHP中的'过程'方法?

例如,让我们考虑这种情况:

$sql_columns = $sql_values = '';
foreach ($this->_data as $column => $value)
{
    // How i d like to do it
    // list ($sql_columns, $sql_values) .= array(", $column", ', ?'); #Error
    // procedural method
    $sql_columns .= ", $column";
    $sql_values  .= ', ?';
}

你可以这样做:

$sql_columns = implode(', ', array_keys($this->_data));
$sql_values = rtrim(str_repeat('?, ', count($this->_data)), ', ');

可以操作数组、数组的键和值。implode PHP Manual有助于连接值。array_fill PHP Manual可以生成问号。一些快速输入代码:

$columns = array_keys($this->_data);
$sql_columns = implode(', ', $columns);
$sql_values = implode(', ', array_fill(0, count($columns), '?'));

http://php.net/manual/en/function.join.php

$sql_columns = implode(', ', array_keys($this->_data));