只有变量可以通过引用传递-php

只有变量可以通过引用传递-php,php,mysql,reference,Php,Mysql,Reference,我正在尝试此代码,但出现以下错误: Only variables can be passed by reference in xxx 剧本 class page { function insert($db, $of, $form, &$arr) { $i = 0; foreach(array_combine($form['value0'], $arr) as $val=>$v){ $sql->prepare("mysql

我正在尝试此代码,但出现以下错误:

Only variables can be passed by reference in xxx
剧本

class page {
  function insert($db, $of, $form, &$arr) {

      $i = 0;

      foreach(array_combine($form['value0'], $arr) as $val=>$v){

          $sql->prepare("mysqli query here");
          $sql->bind_param('ssss', $val, $of, $v[$i][0], $v[$i][1]);//error here
          $sql->execute();
          $i++;

      }
      return true;
  }
}
原因是什么,如何解决?谢谢

我想你正在使用。除第一个参数外,所有参数均通过引用传递。这意味着它们必须是变量,而不是字符串、数组元素等。我实际上不确定它为什么需要通过引用来实现这一点,但没关系。您可以非常轻松地修复它:

$v0 = $v[$i][0];
$v1 = $v[$i][1];
$sql->bind_param('ssss', $val, $of, $v0, $v1);
我猜你在用。除第一个参数外,所有参数均通过引用传递。这意味着它们必须是变量,而不是字符串、数组元素等。我实际上不确定它为什么需要通过引用来实现这一点,但没关系。您可以非常轻松地修复它:

$v0 = $v[$i][0];
$v1 = $v[$i][1];
$sql->bind_param('ssss', $val, $of, $v0, $v1);

我甚至不知道
sql
在错误行的何处被初始化,$of应该是$oferta吗?为什么你认为这会解决它?$of,但在这种情况下,是无关的,问题是关于引用(&$arr)。我甚至不知道
sql
在错误行的何处被初始化,$of应该是$oferta吗?你为什么认为这会解决它?$of,但对于这种情况,这是不相关的,问题是关于引用(&$arr)。“愚蠢的设计决策”,但它是这样的:我认为“因此可以在绑定之后但在执行之前分配值?”这将允许相同的
$sql
通过只更改引用变量的值来重复使用。。。同样,不是我设计它的方式。“愚蠢的设计决策”,但它是这样的:我假设“因此可以在绑定之后但在执行之前分配值?”这将允许相同的
$sql
重复使用,只需更改引用变量的值。。。再说一次,不是我设计它的方式。