我一直收到以下错误,我想知道如何修复?
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;
}
}
答案 0 :(得分:6)
+
可以以不同的方式使用,但为了避免并发症,只能在数值上使用它。
当你最初没有将$this->vars
设置为数组时,它将无效(thx to deceze);
见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);
答案 1 :(得分:5)
解决方案是错误的。您试图将两个具有不同类型的值相加。您正在使用正常值对数组求和;
$this->vars += $key;
$key
不应该是一个数组
或第二个选项;
$this->vars
应为数组
答案 2 :(得分:-1)
**问题是您未能将相同的标志添加到数据库中的变量信息**
地狱伙计我试图删除PHP - 致命错误:不支持的操作数类型在我们未能声明变量正确的情况下会发生此错误因此您将通过添加符号来解决此错误&#34; = 强>&#34;例如,如果您尝试这样输入:
$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而不是添加 = 的变量上的符号 - 获得致命的不支持操作数的错误。通过添加该符号来获取该示例`您将看到错误
答案 3 :(得分:-1)
致命错误不支持的操作数类型的问题是由于未能在变量之后将等号添加到mysql fetch数组中。尝试编写这样的语句并使用这些示例,如添加 - 或_你会看到致命的错误。
$query=mysql_query("SELECT * FROM user");
$fetch=mysql_fetch_array($query);
答案 4 :(得分:-8)
只有1号是正确的,2&amp; 3不是