функция с переменной типа массив

Как делают я передаю массив через функцию, например:

$data = array(
    'color'  => 'red',
    'height' => 'tall'
);

something($data);

function something($data) {
    if ($data['color'] == 'red') {
        // do something
    }
}  

как я могу заставить функцию распознавать $data[color] и $data[height]?

1
задан Booski 8 June 2010 в 06:30
поделиться

3 ответа

Иногда самый простой ответ - правильный:

$data = array(
    'color'  => 'red',
    'height' => 'tall'
);


function something($data) {
    if ($data['color'] == 'red') {
        // do something
    }
} 

something($data);

В этом случае массивы не нуждаются в особой обработке, вы можете передать любой тип в функцию.

1
ответ дан 2 September 2019 в 23:58
поделиться

Это работает:

$data = array('color'  => 'red', 'height' => 'tall');

function something($data) {
    if ($data['color'] == 'red') {
        // do something
    }
}

something($data);

Как замечание, вам нужно заключить ваши строки в кавычки: $data['color'].

1
ответ дан 2 September 2019 в 23:58
поделиться

Возможно, вам нужно сделать некоторые проверки параметра, чтобы сделать функцию более надежной.

function something($data)
{
    if(is_array(data) and isset($data['color']))
    {
         if($data['color'] == 'red')
         {
            //do your thing
         }
    }
    else
    {
         //throw some exception
    }
}
0
ответ дан 2 September 2019 в 23:58
поделиться