You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在核心PHP中实现Company与Employees类的一对多关联

核心PHP实现Company与Employees的一对多关联

1. 创建Company类

定义$name(公司名称)、$address(公司地址)属性,同时添加$employees数组存储下属员工,提供添加员工、获取员工列表及自身信息的方法:

class Company {
    private $name;
    private $address;
    private $employees = [];

    // 构造函数初始化公司信息
    public function __construct(string $name, string $address) {
        $this->name = $name;
        $this->address = $address;
    }

    // 添加员工
    public function addEmployee(Employee $employee) {
        $this->employees[] = $employee;
    }

    // 获取所有员工
    public function getEmployees(): array {
        return $this->employees;
    }

    // 获取公司信息
    public function getCompanyInfo(): array {
        return [
            'company_name' => $this->name,
            'company_address' => $this->address
        ];
    }
}

2. 创建Employee类

定义$name(员工姓名)、$phone(电话号码)、$email(邮箱)属性,提供获取员工信息的方法:

class Employee {
    private $name;
    private $phone;
    private $email;

    // 构造函数初始化员工信息
    public function __construct(string $name, string $phone, string $email) {
        $this->name = $name;
        $this->phone = $phone;
        $this->email = $email;
    }

    // 获取员工信息
    public function getEmployeeInfo(): array {
        return [
            'employee_name' => $this->name,
            'phone_number' => $this->phone,
            'email' => $this->email
        ];
    }
}

3. 实现一对多关联及使用示例

通过Company类的addEmployee方法关联员工,之后可直接通过公司对象获取自身及下属员工的所有信息:

// 创建公司实例
$company = new Company('Tech Corp', '123 Tech Street, Silicon Valley');

// 创建员工实例
$emp1 = new Employee('John Doe', '123-456-7890', 'john.doe@techcorp.com');
$emp2 = new Employee('Jane Smith', '987-654-3210', 'jane.smith@techcorp.com');

// 将员工关联到公司
$company->addEmployee($emp1);
$company->addEmployee($emp2);

// 获取公司信息
$companyInfo = $company->getCompanyInfo();
echo "公司信息:\n";
print_r($companyInfo);

// 获取下属员工信息
$employees = $company->getEmployees();
echo "\n下属员工信息:\n";
foreach ($employees as $emp) {
    print_r($emp->getEmployeeInfo());
}

运行上述代码后,会输出公司的基本信息,以及该公司下属所有员工的详细信息,完成一对多关联的需求。

内容的提问来源于stack exchange,提问作者Muhammad Yasir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 17:57:25