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

面向对象PHP中如何通过构造函数访问并操作公共对象属性

在Shipments类的构造函数中给公共数组$clean_key添加元素的实现方法

嘿,这事儿其实挺简单直接的,你只需要在构造函数里直接通过$this->clean_key来操作这个公共数组就行——毕竟它是类的公共属性,类内部的所有方法(包括构造函数)都能直接访问和修改它。

先给你看修改后的完整代码示例,我把添加元素的逻辑加进去了:

class Shipments { 
    // 定义公共数组属性
    public $clean_key = []; 

    public function __construct($settings = array()) { 
        $use_access_key = $this->access_key(); 
        $this->ee = ee(); 
        $this->settings = $settings; 

        // --- 给clean_key添加元素的核心代码 ---
        // 方式1:直接追加元素(自动分配数字索引)
        $this->clean_key[] = '第一个待添加元素';
        $this->clean_key[] = '第二个待添加元素';

        // 方式2:指定自定义键名添加元素
        $this->clean_key['tracking_no'] = 'SHP-2024-001';
        $this->clean_key['carrier'] = '顺丰';

        // 如果你是想从SQL查询结果里提取数据添加(补全你原来的SQL片段):
        $query = ee()->db->select('*')
                         ->from('your_shipment_table') // 替换成你的实际表名
                         ->where('status', 'active') // 可根据需求加条件
                         ->get();
        
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                // 把每行的特定字段加入数组,比如取clean_key字段的值
                $this->clean_key[] = $row['clean_key'];
            }
        }
    }

    // 假设你已实现的access_key方法
    private function access_key() {
        // 这里是方法的具体逻辑
        return 'your_access_key_here';
    }
}

几个关键说明:

  1. 访问公共属性:因为$clean_key被定义为public,所以在类内部直接用$this->clean_key就能操作,不需要额外的getter/setter方法。
  2. 数组操作方式:和普通PHP数组的操作完全一致:
    • 用[]追加元素,数组会自动按数字索引递增;
    • 指定键名赋值时,会新增或覆盖对应键的元素。
  3. 从参数取值添加:如果你的元素来源是构造函数的$settings参数,也可以这么处理:
    // 把settings里的clean_keys合并到类的clean_key数组中
    if (!empty($settings['clean_keys']) && is_array($settings['clean_keys'])) {
        $this->clean_key = array_merge($this->clean_key, $settings['clean_keys']);
    }
    

这样不管你是加固定值,还是从参数、数据库查询结果里取数据,都能轻松把元素塞进$clean_key数组里啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:13:53