2009-11-15 4 views
0

Я уверен, что об этом спрашивали раньше, но я не могу его найти. Документация PHP неясна в этом, и я не могу найти таких примеров. Является ли законным использовать переменные в объявлении массива, используя конструкцию array()? Не как ключи, а значения. Пример:Объявление массива с использованием переменных и конструкцией array() в PHP

function myFunc($value1, $value2, $value3) { 
    $myArr = array('value1' => $value1, 'value2' => $value2, 'value3' => $value3); 
    return $myArr; 
} 

Это законный?

+5

Приведенный пример полностью действителен. Почему вы не можете просто проверить это самостоятельно и сами получить ответ? :) –

+0

Ну, если не по какой-либо другой причине, теперь есть запись, которую можно найти в Интернете. Так что кто-то, кто пошел, как я, найдет его. –

ответ

4

Да, это законно. В противном случае вы получите ошибку.

+0

Я пока не могу его запустить, и я не буду на некоторое время. Я хотел убедиться, что это было законно, прежде чем я написал целую кучу большего кода на основе этого. Я просто не мог найти пример его использования в Интернете или в документации по PHP. И документация была немного расплывчата по этому вопросу. –

+0

@ Алкон: Вы правы. Отсутствие четкой языковой грамматики иногда действительно искажает. – Gumbo

3

оба ключа и значения могут быть произвольными выражениями *

$r = array(
    phpversion() => 1 + 2 - 3, 
); 
  • за исключением того, что ключи не могут быть массивы/объекты/ресурсы
1

Да, это абсолютно легально! Вы можете также использовать переменные для имен ключей:

$myArr = array($thekey => $theval); 

Ключ или значение для любой пары ключ/значение не должны быть в какой-либо конкретной форме, это просто необходимо оценить, чтобы примитивного типа (т.е. : число или строка). Конструкция array() просто ищет «упрощенные» значения, которые она передала; им все равно, что они и как они там попали.

Надеюсь, это поможет!