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;