php 类中$this问题

一个类中的变量

    public $id;

    
    public $group_id;

    
    public $parent_id;


    public $type;


    public $name;

    
    public $description;

    
    public $is_required;

    
    public $can_delete = '1';

    
    public $field_order;

    
    public $option_order;


    public $order_by;

    
    public $is_default_option;

    
    protected $default_visibility;

    
    protected $allow_custom_visibility;

    
    public $do_autolink;

    
    public $type_obj = null;

    
    public $data;

    
    protected $member_types;

public function __construct( $id = null, $user_id = null, $get_data = true ) {

        if ( ! empty( $id ) ) {
            $this->populate( $id, $user_id, $get_data );

        // Initialise the type obj to prevent fatals when creating new profile fields.
        } else {
            $this->type_obj            = bp_xprofile_create_field_type( 'textbox' );
            $this->type_obj->field_obj = $this;
        }
    }

其中一段

public function fill_data( $args ) {
        if ( is_object( $args ) ) {
            $args = (array) $args;
        }

        $int_fields = array(
            'id', 'is_required', 'group_id', 'parent_id', 'is_default_option',
            'field_order', 'option_order', 'can_delete'
        );

        foreach ( $args as $k => $v ) {
            if ( 'name' === $k || 'description' === $k ) {
                $v = stripslashes( $v );
            }

            // Cast numeric strings as integers.
            if ( true === in_array( $k, $int_fields ) ) {
                $v = (int) $v;
            }

            $this->{$k} = $v;
        }

        // Create the field type and store a reference back to this object.
        $this->type_obj            = bp_xprofile_create_field_type( $this->type );
        $this->type_obj->field_obj = $this;

    }

bp_xprofile_create_field_type是一个公共函数,返回数据是

{"name":"单选按钮","category":"多项资料","accepts_null_value":false,"supports_options":true,"supports_multiple_defaults":false,"supports_richtext":false,"field_obj":null}

请问函数fill_data 中$this到底是什么意思呢

$this代表刚刚生成的$this->{$k}数组吗?

牧羊人nacy
浏览 583回答 2
2回答

三国纷争

$this是一个指向调用方的引用,既然是引用,那么就跟实例有一样的效果,比如访问属性,方法,或者给属性赋值等。但$this并不是出现在某个类里面就代表该类的实例,比如说在继承的情况下,$this可能指向的是子类实例。

慕桂英546537

当前对象实例
打开App,查看更多内容
随时随地看视频慕课网APP