PHP 객체 지향 프로그래밍에서 클래스의 객체 조작
클래스의 메서드는 다른 클래스의 객체를 매개변수로 받아 그 객체들을 조작할 수 있습니다. 예제를 통해 살펴보겠습니다. 다음과 같은 클래스가 있다고 가정해 봅시다:
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
사용자 객체 집합을 조작하는 클래스를 만들기로 결정했다고 가정해 보겠습니다:
<?php
class UsersCollection {
}
?>
사용자 객체들을 비공개 속성의 배열 형태로 저장하겠습니다:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
}
?>
배열에 새 사용자를 추가하는 메서드를 만들어 보겠습니다:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
public function add($user) {
$this->users[] = $user;
}
}
?>
이제 모든 사용자의 이름을 출력하는 메서드를 만들어 보겠습니다:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
public function add($user) {
$this->users[] = $user;
}
public function show() {
foreach ($this->users as $user) {
echo $user->getName() . '<br>';
}
}
}
?>
우리 클래스의 동작을 살펴보겠습니다. 먼저 그 객체를 생성해 보겠습니다:
<?php
$uc = new UsersCollection();
?>
이제 우리 컬렉션에 사용자 몇 명을 추가해 보겠습니다:
<?php
$uc->add(new User('john'));
$uc->add(new User('eric'));
$uc->add(new User('kyle'));
?>
이제 모든 사용자의 이름을 출력하는 메서드를 호출해 보겠습니다:
<?php
$uc->show();
?>
직원 배열을 포함하는 EmployeesCollection
클래스를 만드세요.
이 클래스에 새 직원을 추가하는 메서드를 만드세요.
이 클래스에 모든 직원을 출력하는 메서드를 만드세요.
이 클래스에 모든 직원의 총 급여를 계산하는 메서드를 만드세요.
이 클래스에 모든 직원의 평균 급여를 계산하는 메서드를 만드세요.