我收到此错误
注意:第54行的coolFile中的数组到字符串转换
现在,第54行是以下
$result = $stmt->execute($par)
;
其中$par
是:
$par = array (
'eNo' => $no,
'eType' => $type,
'eString' => $string,
'eFile' => $file,
'eLine' => $line,
'eContext' => $context,
'eTime' => time(),
'eIp' => $_SERVER['REMOTE_ADDR']
);
$stmt
为$stmt = $pdo->prepare($sql);
,$pdo
是PDO
类的实例。
我感到有点困惑:PHP是否警告我必须将数组转换为字符串? 为什么他不能在希望将数组作为参数传递的函数中接受这样的数组?
答案 0 :(得分:1)
直接形成PHP set_error_handler
页面,处理函数的签名是:
handler ( int $errno , string $errstr [, string $errfile [, int $errline [, array $errcontext ]]] )
如您所见,PHP将向您发送一个上下文数组。如果您不需要它,请将其删除或找到使其成为标量值的方法。
errcontext
The fifth parameter is optional, errcontext, which is an array that points to the active symbol table at the point the error occurred. In other words, errcontext will contain an array of every variable that existed in the scope the error was triggered in. User error handler must not modify error context.
答案 1 :(得分:0)
基本上似乎set_error_handler()
的第五个参数是根据手册的数组:
第五个参数是可选的errcontext,它是一个数组,指向发生错误时的活动符号表。换句话说,errcontext将包含触发错误的作用域中存在的每个变量的数组。用户错误处理程序不得修改错误上下文。
所以问题不是主阵列,而是主阵列内的数组。 PS:我发誓我不知道,我很确定错误上下文是一个字符串。