При создании класа переместить внутрений неймспейс в отдельный масив

Кощей

if(!$needle) die("ooh");
При создании класа переместить внутрений неймспейс в отдельный масив

Изучаю Php Data Object .
Есть удобная вещь в этом пакете как PDO::FETCH_CLASS
Использую чтобы создавать массив объектов полученных из базы.
Каждый объект создается из заданного класса, имена колонок таблицы становятся атрибутами создаваемого объекта.
Вот кусок моего кода где я это использую
PHP:
        $conn = new PDO($conn_str, $user, $pass);
        $sql = 'SELECT * FROM types';
        $query = $conn->query($sql);
        $query->setFetchMode(PDO::FETCH_CLASS, 'Type', array());
        $result = $query->fetchAll();
        $query->closeCursor();
        
        Class Type {

       }
Внимание, знатоки, вопрос:
Что записать в Class Type чтобы полученный массив из базы был доступен в отдельном заданном атрибуте
 

ustas

Элекомист №1
Знатоки проигрывают читателям с счетом 1:0 в пользу последних, итак правильный ответ, все внимание на Кощея.
 

HraKK

Мудак
Команда форума
А чем так не подходит? Обьясни плз тогда поподробнее.
 

Кощей

if(!$needle) die("ooh");
HraKK
А, хорошо.

тут такое дело, выбираются записи из таблицы и сразу создаеься по ним клас. клас задается параметром
к примеру запрос возвращает
type_id - 1
title - shoes
category_id - 5

У созданого объекта будут атрибуты
$obj->type_id
$obj->shoes
$obj->category_id

Они автоматом заносятся при $query->setFetchMode(PDO::FETCH_CLASS, 'Type', array());

А я хочу чтобы они были доступны так
$obj->params[type_id]
$obj->params[shoes]
$obj->params[category_id]

Я так понимаю мне в класе Type нужно сделать обработчики которыми эти данные вносились бы в в отдельный масив, а не так просто задавались ко всему объекту
 

HraKK

Мудак
Команда форума
$obj->param = (array)$obj?:)

Вечно ты что-то плохого хочешь.
 

Кощей

if(!$needle) die("ooh");
HraKK
Я понял чего хочу, вот:
PHP:
Class Type {
    
    protected $params;
    
    public function __set($variable, $value)
    {
        $this->params[$variable] = $value;
    }
    
    public function __get($variable)
    {
        return $this->params[$variable];
    }

}
-~{}~ 30.08.08 02:05:

HraKK
Кстати такого тоже хочется. Задать чтобы когда к объекту обращаются как к массиву то чтобы отдавался $param. Анологично с перловым wantarray
 

cDLEON

Онанист РНРСlub
А я хочу, что бы ПХП вместо меня зарабатывал !
Такое возможно? И что б по-больше чем зарабатывают СИшники и Джавашники. Такое возможно ?
ЗЫ. Блин, кощей, ну вот зачем тебе этот изврат ? Ну ниужели так станет удобнее ? Помоему - только процессорное время отнимешь.
 

HraKK

Мудак
Команда форума
Внимание! Индусский код:
PHP:
class a
{	
	public $a =1;
}
$a = new a();
$a = (array)$a;
$a['f'] = 2;
$a = (object) $a;
var_dump( $a);
 

AmdY

Пью пиво
Команда форума
я понял, это чёрная пиар акция нового сорта травы. вас ещё мучает опрос "бить или не быть", забейте. забейте наш косяк и вопросы, мучающие вас, станут ещё завёрнутее.

Кощей
ты думаешь
$obj->type_id удобнее $this->params['type_id ']
если захочется $obj['type_id'] юзай spl и наследавание или как посоветовал HraKK, но ради бога, перестань усложнять себе жизнь.
у меня уже от этих вопросов мурашки по телу бегают, причём здоровые такие !!!
 

Кощей

if(!$needle) die("ooh");
cDLEON
Это не усложнение, если в возвращаемом с базе хеше будет значение совпадающие с внутрикласовым оно работу класса может побить.
 

HraKK

Мудак
Команда форума
ыыыыч!ы ыыыы! ыЫЫЫыыыы!
ржу нэ магу...
Афтар пешы исчо!
 

Кощей

if(!$needle) die("ooh");
HraKK
Ну это да) Просто сам PDO это делает, и он запихивает сразу в объект

-~{}~ 30.08.08 15:24:

флоппик
Это что
 
Сверху