鍍金池/ 問答/PHP/ php 類中$this問題

php 類中$this問題

一個(gè)類中的變量

    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是一個(gè)公共函數(shù),返回?cái)?shù)據(jù)是

{"name":"單選按鈕","category":"多項(xiàng)資料","accepts_null_value":false,"supports_options":true,"supports_multiple_defaults":false,"supports_richtext":false,"field_obj":null}

請問函數(shù)fill_data 中$this到底是什么意思呢

$this代表剛剛生成的$this->{$k}數(shù)組嗎?

回答
編輯回答
情皺

$this是一個(gè)指向調(diào)用方的引用,既然是引用,那么就跟實(shí)例有一樣的效果,比如訪問屬性,方法,或者給屬性賦值等。但$this并不是出現(xiàn)在某個(gè)類里面就代表該類的實(shí)例,比如說在繼承的情況下,$this可能指向的是子類實(shí)例。

2018年4月22日 15:47
編輯回答
悶油瓶

當(dāng)前對象實(shí)例

2017年2月8日 05:58