我有以下功能来检查数组的键
public function check($arr, $key, $default = NULL) {
return isset($arr[$key]) && !empty($arr[$key]) ? $arr[$key] : $default;
}
$this->check($info, 'location'); //it's working
$this->check($info['birthday'], 'year'); //it's working
$this->check($_POST, 'email'); //it's working
$this->check($_POST, 'password'); //it's working
在出现多维数组之前一切正常
Notice: Array to string conversion in
答案 0 :(得分:0)
不是100%确定你在寻找什么,但请注意,如果你有电子邮件[] []字段,当你返回$ arr [$ key]时,你将返回一个数组。因此,在返回其值之前,您必须检查$ arr [$ key]是否为数组。
public function check($arr, $key, $default = NULL) {
if( isset($arr[$key]) && !empty($arr[$key]) || is_array($arr[$key])) {
if(is_array($arr[$key])) {
//apply here your second level check condition
} else return $arr[$key]; // returns its value (if it's not an array)
} else return $default;
}
希望有所帮助
相反,如果你试图建立一个函数检查,如果$ key包含在多维数组的某个地方,那么你必须这样做(这就是为什么我写的我不是100确定你正在寻找的东西
答案 1 :(得分:0)
将您的功能代码更改为:
public function check($arr, $key, $default = NULL) {
return isset($arr[$key]) ? $arr[$key] : $default;
}
如果您仍想检查空值(虽然isset足够):
public function check($arr, $key, $default = NULL) {
return isset($arr[$key]) && (!empty($arr[$key]) || is_array($arr[$key])) ? $arr[$key] : $default;
}
答案 2 :(得分:-2)
[2268:0812/115601:INFO:CONSOLE(18)] "Uncaught TypeError: Cannot read property 'on' of undefined", source: https://twist.moe/public/lib/snap.svg-min.js (18)
在上面的代码中,您使用BrowserWindow
(这是一个数组)作为字符串。