2013-03-28 3 views
0

В моем проекте PHP у меня есть 2 класса с именем User & Category следующим образом.PHP: A Класс как член внутри другого класса

class User{ 
    public $Id; 
    public $Name; 
    public $Category; 
} 

class Category{ 
    public $CategoryId; 
    public $CategoryName; 
} 

Мое требование, чтобы включать в себя как CategoryId & CategoryName внутри $Category в User при получении данных.

Поэтому, когда я обращаюсь к User - object, я могу получить как CategoryId & CategoryName пользователя.

Спасибо.

UPDATE

Как автоматизировать этот процесс? Когда я хочу загрузить User из базы данных, я хочу, чтобы User для загрузки его CategoryАвтоматически.

И когда я загружаю коллекцию User s (или все пользователи из базы данных), я хочу, чтобы все пользователи загружали свою собственную категорию.

+0

может ли пользовательский класс расширить категорию? – vodich

+2

Thanx @vodich. Могу ли я сделать это без расширения? –

+0

Не то, чтобы я могу думать ... – vodich

ответ

0

Это решение, которое я хотел.

// user.php 
<?php 
require_once 'category.php'; 

class User{ 
    public $Id; 
    public $Name; 
    public $Category; 

    public function __construct(){ 
     $this->Category=Category::getCategory($this->Id);  
    } 
} 
?> 

// category.php 
<?php 
class Category{ 
    public $CategoryId; 
    public $CategoryName; 

    public static function getCategory($UserId){ 
     $Category = //PDO operations; 
     return $Category; 
    } 
} 
?> 

Спасибо всем, кто ответил.

2

Конечно, вы можете хранить Category объект внутри из User «s $category memeber:

$user = new User; 
$cat = new Category; 

$cat->categoryId = 42; 
$cat->categoryName = "Meaning of Life"; 

$user->category = $cat; 

//access 
echo $user->category->categoryName; //Meaning of Life 
+0

Спасибо @Madara. Как автоматизировать этот процесс? Когда я хочу загрузить «Пользователь» из базы данных, я хочу, чтобы «Пользователь» загружал данные «Категория» ** Автоматически **. –

+0

@Seevali: используйте метод loadCategory() 'в классе' User', который извлекает и создает объект категории, а затем присваивает его полю. –

+2

в стороне от «смысла жизни» это также случай учебника кого-то, нарушающего Закон Деметра * –

Смежные вопросы