обратный вызов — Как правильно передать и вернуть по ссылке между функциями внутри класса (PHP)

Я создаю класс, который содержит mysqli ссылка на объект с частной функцией для генерации параметров, которые необходимы bind_params функция, которая затем будет использоваться этой функцией:

call_user_func_array(array($stmt, 'bind_param'), $params);

Поскольку, bind_param нужно передать значение по ссылке, поэтому я создаю функцию, как это:

// $values is taken from $_POST's values
private function &params($values) {

// Generate first value for bind_params like: 'ssis'
$param_type = '';
foreach ($values as $value) {
$param_type .= gettype($value)[0];
}

// Generate the rest value for bind_params
$params[] = & $param_type;
for ($i = 0; $i < count($values); $i++) {
$params[] = & $values[$i];
}

// The returned values should be like { 'ssi', $str_value, $str_value, $int_value }
return $params;
}

Как я выполняю подготовленный оператор, выглядит так:

function insert_prepared($query, $posted) {
$params = &$this->params(array_values($posted));
$stmt = $this->mysqli->prepare($query);
if ($stmt) {
call_user_func_array(array($stmt, 'bind_param'), $params);
if ($stmt->execute()) {
return true;
} else {
return false;
}
}
}

Хорошо, теперь проблема в том, почему call_user_func_array(array($stmt, 'bind_param'), $params) все еще жалобы на ожидается, будет ссылка?

Сделал руководство сказал, что функция должна быть написана как function &params($values)?

Что я пропустил?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …