StdClass - из обычного массива
При разработке расширений для Joomla - компонентов, модулей или плагинов, вы абязательно столкнетесь с объектом StdClass. Произойдет это хотя-бы потому, что все параметры настроек модуля, компонента, или плагина доступны именно в таком виде:
- <?php
- JParameter Object (
- [_raw] => source_sec=12, 9:34, 9:35, 10 nametext=Latest template=default.php
- [_elementPath] => Array ( [0] => W:\home\localhost\www\funky_dyk\libraries\joomla\html\parameter\element )
- [_defaultNameSpace] => _default
- [data] => stdClass Object (
- [source_sec] => 12, 9:34, 9:35, 10
- [nametext] => Latest
- [template] => default.php
- )))
- )
- ?>
Такую картину можно увидеть используя функцией print_r(), передав ей в качестве аргумента параметры в виде объекта, которые доступны в каждом модуле и содержатся в переменной $params.
- <?php
- stdClass Object (
- [source_sec] => 12, 9:34, 9:35, 10
- [nametext] => Latest
- [template] => default.php
- )
- ?>
StdClass не достаточно хорошо документирован и является встроенным обьектом PHP используется в Zend машине. Поэтому прямо определить класс с именем StdClass в коде своего PHP приложения вы не можете, вы можете лишь создать экземпляр класса и определить его переменные.
Но в этой статье идет речь о том как из обычного массива сформировать объект stdClass, это может понадобится в joomla, например для передачи этого объекта в качестве аргумента в функцию и дальнейшей обработки со-держащихся в нем данных.
Вот пример в котором массив преобразуется в объект, такой пример называется - преобразование типов:
- <?php
- 'firstname'=>'Cleverscript',
- 'lastname' => 'Script'
- );
- $p = (object) $person;
- ?>
А этот пример содержит функцию преобразования многомерного массива в объект stdClass с помощью рекурсии:
- <?php
- function arrayToObject($array){
- foreach($array as $key => $value){
- $array[$key] = arrayToObject($value);
- }
- }
- return (object)$array;
- }
- else{
- return FALSE;
- }
- }
- 'firstname'=>'Cleverscript',
- 'lastname' => 'Script'
- );
- $p = arrayToObject($array);
- ?>
PS. И не забудьте подписатся на ленту новостей RSS

Комментарии
А этот пример содержит функцию преобразования многомерного массива в объект stdClass с помощью рекурсии:
З.Ы. в глаза просто бросается
Благодарю за тему, очень выручило. Вообще супер сайт с выгодной статистикой =)
Хочу узнать о покупке банера на этом портале. недорогое такси www*tax*is*at*ru (Москва) Наверху и можно слева в топиках. Ну или каких-либо других вкусных рекламных тем.
Расскажите, где заказать, какие возможности у вас?
Хочу оптом размещать ссылки, статьи и др. надеюсь эти сайты подойдут для ваших целей.
Я приобретала банеры на разных форумах всего за 2500 руб. в неделю за статьи.
Пожалуйста ответьте тут, напишите вашу цену. Нужно для отчёта ;)
Ещё рассмотрю предложения по заказу и покупке статей на вашем сайте. Куплю дорого!
P.S. Надеюсь на наше долгосрочное сотрудничество. Большое спасибо, жду ваших предложений желательно с порядком работы и ценой.
По поводу статей не уверен что они подойдут, баннеры с права, и в статьях растяжка по ширине поста, вверху или внизу, какие вам нужны размеры? от них зависит стоимость.
По-моему, проще одной строкой $obj = (object)$my_arr ay;
Поздравляю Вас с Новым 2011 Годом и Рождеством!
Пусть все проблемы и трудности останутся в прошлом, а наступающий год принесет стабильность, удачу и процветание!
Так же желаю Вам крепкого здоровья, новых сил что бы писать прекрасные статьи и блоги вцелом!!! С Новым ГОДОМ!!!