php中This关键字我不明白的地方

发布网友 发布时间:2022-04-06 07:52

我来回答

3个回答

懂视网 时间:2022-04-06 12:14

作用:

this是在实例化的时候用来确定指向谁。所以说,this就是指向当前对象实例的指针,不指向任何其他对象或类。

具体分析:

$this 的含义是表示实例化后的具体对象!$this->表示在类本身内部使用本类的属性或者方法。‘->’符号是“插入式解引用操作符”(infix dereference operator)。

举例:

比如我们声明一个User类!它只含有一个属性 $name;

<?php
class User
{
 public $_name;
}
?>

现在,我们给User类加个方法。就用getName()方法,输出$name属性的值吧!

<?php
class User
{
 public $name;
 function getName()
 {
  echo $this->name;
 }
}
$user1 = new User();
$user1->name = '张三';
$user1->getName(); //这里就会输出张三!
$user2 = new User();
$user2->name = '李四'; 
$user2->getName(); //这里会输出李四!
?>

上面创建了两个User对象。分别是 $user1 和 $user2 。

当调用 $user1->getName()的时候。上面User类中的代码 echo $this->name ; 就是相当于是 echo $user1->name;

如果您想了解更多相关教程,请访问gxlcms。

热心网友 时间:2022-04-06 09:22

注意php是弱类语言。。
他不需要事先定义变量的类型也不须事先声明才可以用。
所以$this->b=12 相当于你var $b=12。然后直接调用像你写的echo $this->b;

你的例子里面var $a=13; 就定义了a的值是13。在类里面你用
$this->a就表明你调用$a这个值;

其实$this就是在本类中直接调用属性。千万不能在后面加$符号;

不知道我的理解对你是否有帮助。。我学PHP也不久。。
搞java其实不错; java的面向对象这块很完善。而php则是在php5后才更进一步,并没有java的强

热心网友 时间:2022-04-06 10:40

同意楼上,就面向对象来讲确实是Java强大
————————————————
能够输出 $this->b;
是因为
$object->printThis();
中对他进行了赋值

如果你不$object->printThis();
而直接$object->printThis2();
那么他就是空值
————————————————————————
this 就是指向当前对象实例,不指向任何其它对象或类
self 指向类本身,不指向任何实例化的对象
parent是指向父类的指针,一般用来调用父类构造函数

你可以搜一下他们的区别 网上很多 结合例子就比较好理解

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com