Хранение многомерного массива в качестве переменной объекта, добавление дополнительных ключей в массив - PullRequest
1 голос
/ 20 декабря 2010

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

Вот что у меня есть:

$object->pathsArray = array(
    "key1" => array('path' => '/some/path/to/some/file.php', 'action' => 'index'),
    "key2" => array('path' => '/some/path/to/some/class.php', 'action' => 'method2')
);

А вот то, что я предполагал, будет работать, но не сработало:

$object->pathsArray['key3'] = array('path' => '/some/path/to/some/method/or/script.php', 'action' => 'method3');

Мой первый обходной путь:

$newPathsArray = array("key3" => array('path' => '/some/path/to/some/method/or/script.php', 'action' => 'method3'));   
$object->pathsArray = array_merge($object->pathsArray, $newPathsArray);

Еще один обходной путь, который ДОЛЖЕН работать:

$tempPathsArray = $object->pathsArray;
$tempPathsArray['key3'] = array('path' => '/some/path/to/some/method/or/script.php', 'action' => 'method3');
$object->pathsArray = $tempPathsArray;

Итак, мой вопрос: Существует ли более простой синтаксис (т. Е. Однострочное решение), или я вынужден ввести временную. переменная, добавить к этому, затем объединить / повторно присвоить значение объекту?

1 Ответ

0 голосов
/ 21 января 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...