我收到的PHP以下错误
通知未定义,偏移1:C:\瓦帕\ WWW \包括\ imdbgrabber.php线36
这是导致它的PHP代码:
<?php
# ...
function get_match($regex, $content)
{
preg_match($regex,$content,$matches);
return $matches[1]; // ERROR HAPPENS HERE
}
是什么错误呢?
我收到的PHP以下错误
通知未定义,偏移1:C:\瓦帕\ WWW \包括\ imdbgrabber.php线36
这是导致它的PHP代码:
<?php
# ...
function get_match($regex, $content)
{
preg_match($regex,$content,$matches);
return $matches[1]; // ERROR HAPPENS HERE
}
是什么错误呢?
如果preg_match
没有找到匹配, $matches
是一个空数组。 所以,你应该检查preg_match
找到了一个匹配的访问之前$matches[0]
例如:
function get_match($regex,$content)
{
if (preg_match($regex,$content,$matches)) {
return $matches[0];
} else {
return null;
}
}
如何重现此错误在PHP中:
创建一个空数组,并要求给出这样一个键的值:
php> $foobar = array();
php> echo gettype($foobar);
array
php> echo $foobar[0];
PHP Notice: Undefined offset: 0 in
/usr/local/lib/python2.7/dist-packages/phpsh/phpsh.php(578) :
eval()'d code on line 1
发生了什么?
你问一个数组给你给出一个关键,它不包含值。 它会给你NULL值,然后把上面的错误在错误日志。
它看起来数组中的钥匙,发现undefined
。
如何使错误不会发生呢?
请问如果键存在,你去要求它的价值首先之前。
php> echo array_key_exists(0, $foobar) == false;
1
如果密钥存在,则获得的价值,如果它不存在,没有必要查询它的价值。
在PHP中未定义的偏移误差是像Java 的ArrayIndexOutOfBoundException“。
例:
<?php
$arr=array('Hello','world');//(0=>Hello,1=>world)
echo $arr[2];
?>
错误:未定义偏移2
这意味着你指的是不存在的数组键。 “偏移”是指一个数值阵列的整数键,“指数”指的是一个关联数组的字符串键。
未定义偏移意味着有例如空数组项:
$a = array('Felix','Jon','Java');
// This will result in an "Undefined offset" because the size of the array
// is three (3), thus, 0,1,2 without 3
echo $a[3];
您可以使用一个循环(同时)解决的问题:
$i = 0;
while ($row = mysqli_fetch_assoc($result)) {
// Increase count by 1, thus, $i=1
$i++;
$groupname[$i] = base64_decode(base64_decode($row['groupname']));
// Set the first position of the array to null or empty
$groupname[0] = "";
}