2014-04-17 109 views
0

每當我跑我得到一個錯誤未定義偏移警告在PHP

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

這個代碼我做在PHP中,這簡單的一件事是,產生的誤差

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; 
} 

雖然它返回的代碼正確的值,但它爲什麼仍然顯示錯誤

+0

了這條線列表中的錯誤($ RGBA [0],$ RGBA [1],$ rgba [2],$ rgba [3])= $ rgba [1]; – user3316523

+0

'$ color'是什麼? – putvande

+0

可能是你在'$ color'沒有設置時在代碼中調用'colorConverter'兩次 – ponciste

回答

1

它應該是因爲你沒有$ rgba數組,從一開始就有4個元素。

的Preg匹配所有返回2個元素01其中第二(1)是陣列我想是$rgba[1][0]$rgba[1][1]$rgba[1][2]等。您正試圖用其子元素覆蓋$rgba[1]

要麼宣佈新的數組,並用4個空元素填充,或list()不適數組元素應該有變量:

list($rgba1, $rgba2, $rgba3, $rgba4) = $rgba[1] ;