我一直收到以下错误,我想知道如何修复?
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的变量上,通过符号-而不是添加=,您将得到致命的不受支持的操作数错误。举个例子,添加该符号,您将看到错误
- $this->vars
- 这个->$vars
- $this->$vars
只有数字1是正确的,2&3不是