php中未定义的偏移警告

时间:2014-04-17 12:45:47

标签: php

每当我运行代码时,我都会在php中执行这个简单的操作

Notice: Undefined offset: 3 in C:\xampp\htdocs\colorconverter.php on line 37

这是生成该错误的代码

function colorConverter($color)
{
         preg_match_all("/(\d+\.+\d+)/", $color, $rgba);
         list($rgba[0], $rgba[1], $rgba[2], $rgba[3]) = $rgba[1] ;


        $rgbaValues = array("RED"=>$rgba[0], "GREEN"=>$rgba[1], "BLUE"=>$rgba[2], "ALPHA"=>$rgba[3]);
        return $rgbaValues; 
} 

虽然它返回正确的值,但为什么它仍然显示错误

1 个答案:

答案 0 :(得分:1)

应该是因为你没有从一开始就有4个元素的$ rgba数组。

Preg match all返回2个元素01,其中第二个(1)是数组,我猜是$rgba[1][0]$rgba[1][1],{{1 }} 等等。您正尝试使用其子元素覆盖$rgba[1][2]

声明新数组并用4个空元素填充它,或者不在$rgba[1]中应用数组元素应该有变量:

list()