为了账号安全,请及时绑定邮箱和手机立即绑定

php 类中$this问题

php 类中$this问题

PHP
牧羊人nacy 2019-03-14 17:09:19
一个类中的变量 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}数组吗?
查看完整描述

2 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

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

查看完整回答
反对 回复 2019-03-18
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

当前对象实例

查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 582 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信