PHP-致命错误:不支持的操作数类型


PHP - Fatal error: Unsupported operand types

我一直收到以下错误,我想知道如何修复?

Fatal error: Unsupported operand types in C:'wamp'www'tuto'core'Controller.php on line 23

这是23号线。

$this->vars +=  $key;

下面是完整的代码。

public function set($key,$value=null){
    if(is_array($key)){
        $this->vars +=  $key;
    }else{
        $this->vars[$key]= $value;
    }
}

+可以以不同的方式使用,但为了避免复杂性,只在数值上使用。

当您最初没有将$this->vars设置为数组时,它将不起作用(thx表示欺骗);看见http://codepad.viper-7.com/A24zds

相反,尝试初始化阵列并使用array_merge:

public function set($key,$value=null){
    if (!is_array($this->vars)) {
        $this->vars = array();
    }
    if(is_array($key)){
        $this->vars = array_merge($this->vars, $key);
    }else{
        $this->vars[$key] = $value;
    }
}

示例:

<?php
$test = null;
$t    = array('test');
//$test += $t prints the fatal here
$test = array('one');
$test += $t;
// will only print '0 => one'
print_r($test);

$test = array_merge($test, $t);
// will print both elements
print_r($test);

解决方案在错误中。您正在尝试对两个具有不同类型的值求和。您正在对具有正常值的数组求和;

$this->vars +=  $key;

$key不应该是阵列

或者第二种选择;

$this->vars应该是一个数组

**问题您未能将等号添加到将信息传递到数据库的变量**

该死的家伙,我试图删除PHP-致命错误:不支持的操作数类型这个错误将在我们未能声明变量正确时发生,所以你将通过添加符号"="来解决这个错误

$sa="SELECT * FROM `anquiz` WHERE user_id = $a";
$af=mysql_query($sa); 
while($cv-mysql_fetch_array($af)){
    $d1=$cv['id'];
    $d2=$cv['answer'];//student answer
    $d4=$cv['quiz_id'];// quiz id 
    $d5=$cv['user_id'];// user id insert his file
    $d6=$cv['time'];

在携带mysql_fetch_array的变量上,通过符号-而不是添加=,您将得到致命的不受支持的操作数错误。举个例子,添加该符号,您将看到错误

  1. $this->vars
  2. 这个->$vars
  3. $this->$vars

只有数字1是正确的,2&3不是