opp面向对象的 $this self parent 的区别以及 &的作用

opp是指面向对象。在面向对象中经常会用到$this, self,和parent.

哪么现在就来谈一谈它们的区别:

$this是指当前对前,self是指当前类,指向静态变量,因为静态变量只属于类的本身,并不单是某一实例对象的.

class test {
public $name;
 	public static $nick;
	public function __construct($name) {
		return $this->name = $name;
	}
}
$person = new  test(' i am tom');
echo $this->name; // i am tom
$person2 = new test('i am mike');
echo $this->name; // i am mike


所以说,$this 是指向当前对象的。self 是表示当前类。比如说根据上面的例子,类是test ,哪么self 就代表test,但self

只能在类的内部调用,不能在类的外部去调用 ,parent 代表父类 ,可以通过 parent :: method() 来调用父类的方法或属性。

最后来谈谈&,相信很多学者都遇到&,哪么&是什么?在php, 其实就是取得引用;

$a = 1;
$b = 2;
$a = $b;
echo $a; // 2
$a = &$b;
$b = 3;
echo $a; // 3
$a = 10 ;
echo $b; //10
这是为什么呢?其$a 和 $b都指向了同一个地址。当$a 变化时,$b也会变化,其实 $b就相当于$a的别名。哪么当&放在function 的前面呢?让我们为测试一下吧。

class person  {
	public $nick;
	public $name;
	publict function &getNick($nick) {
		return $this->nick = $nick;
	}
}
$person = new person();
$person->name =  &$person->getNick('i am tom');
echo $person->name; // 'i am tom';
$person->getNick('i am mike');echo $person->name; // i am mike;

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值