2014-01-21 112 views
1

我下面就tutplus this tutorial,我碰到這個代碼片段傳來:這是一個PHP關聯數組嗎?

//check if the action exists in the controller. if not, throw an exception. 
    if(method_exists($controller, $action) === false) { 
     throw new Exception('Action is invalid.'); 
    } 

    //execute the action 
    $result['data'] = $controller->$action(); 
    $result['success'] = true; 

} catch(Exception $e) { 
    //catch any exceptions and report the problem 
    $result = array(); 
    $result['success'] = false; 
    $result['errormsg'] = $e->getMessage(); 
} 

//echo the result of the API call 
echo json_encode($result); 
exit(); 

我在PHP初學者,我在想,如果result是一個關聯數組?有人可以證實這一點嗎?如何才能說明關聯數組和非關聯數組之間的區別?

+1

是。因爲您要爲數組中的每個元素提供一個鍵名。 – Drumbeg

+1

它是一個關聯數組。它將鍵值「sucess」,「errormsg」與值相關聯。 –

+5

我建議閱讀文檔。 http://uk3.php.net/manual/en/language.types.array.php – Drumbeg

回答

2

$result是一個關聯數組,因爲您分配了一個鍵名。

「正常」數組沒有鍵名。

4

要檢查關聯數組或沒有,你可以使用此功能

function is_assoc($var) 
    { 
      return is_array($var) && array_diff_key($var,array_keys(array_keys($var))); 
    } 

    function test($var) 
    { 
      echo is_assoc($var) ? "I'm an assoc array.\n" : "I'm not an assoc array.\n"; 
    } 

    // an assoc array 
    $a = array("a"=>"aaa","b"=>1,"c"=>true); 
    test($a); 
+0

這是一種極大的方式讓初學者進行更多的自學,因爲他們開始想知道這些功能是做什麼的。 –

+0

是的。你從另一個角度來到這裏好嗎? – Drumbeg