PHP $this返回对象
在一个类中$this代表整个对象,里面到底包含了怎样的信息?哪种情况要这么用:return$this;...
在一个类中 $this代表整个对象,里面到底包含了怎样的信息?哪种情况要这么用:return $this;
展开
5个回答
2013-04-18
展开全部
$this 就是”指这“的意思, 比方说你有个类叫“aaa”
当你实例化aaa这个类 $a = new aaa(); 之后 $this 就是指向 $a 对象。
this就是指向当前对象实例的指针,不指向任何其他对象或类。
至于什么情况下要用return $this,应该没有这样, 我只知道有一些地方会用到&$this取该对象的地址然后进行对象复制。 具体你可以去看下dedecms的mysql类,我记得那里面对数据的操作就是这样用的。
当你实例化aaa这个类 $a = new aaa(); 之后 $this 就是指向 $a 对象。
this就是指向当前对象实例的指针,不指向任何其他对象或类。
至于什么情况下要用return $this,应该没有这样, 我只知道有一些地方会用到&$this取该对象的地址然后进行对象复制。 具体你可以去看下dedecms的mysql类,我记得那里面对数据的操作就是这样用的。
2013-04-18
展开全部
哈哈 故事GG 又是我 看来没人回答你了! 我来回答吧 记得采纳哦!
$this包含了本类定义的所有属性 php 可以通过 get_class_vars(get_class($this))来查看类属性
return this就是返回当前这个类的一个实例 this 就是代表当前这个类的一个实例.
return this 一般不做单独使用 使用它的时候通常会使用一个很生僻的 函数(手册木有哦)
clone() 方法来重写原本的属性和方法。__clone() 方法只会在对象被克隆的时候自动调用
如: class someClass{
public function method1(){
print 'asdasdas';
}
public function getInstence(){
return $this;
}
}
$a = new someClass;
$b = $a->getInstence();
$b->method1();
$c = clone($a);
嘎嘎!采纳吧!
$this包含了本类定义的所有属性 php 可以通过 get_class_vars(get_class($this))来查看类属性
return this就是返回当前这个类的一个实例 this 就是代表当前这个类的一个实例.
return this 一般不做单独使用 使用它的时候通常会使用一个很生僻的 函数(手册木有哦)
clone() 方法来重写原本的属性和方法。__clone() 方法只会在对象被克隆的时候自动调用
如: class someClass{
public function method1(){
print 'asdasdas';
}
public function getInstence(){
return $this;
}
}
$a = new someClass;
$b = $a->getInstence();
$b->method1();
$c = clone($a);
嘎嘎!采纳吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2018-05-07
展开全部
return $this 你只需要知道它就是返回 本对象
给你写一个简单的实例吧
/**
* sum 类用于计算两个数的和.
*/
class sum{
private $num1;
private $num2;
public function num1($n){
$this->num1=$n;
return $this;
}
public function num2($n){
$this->num2=$n;
return $this;
}
public function sum(){
return $this->num1+$this->num2;
}
}
$sum=new sum();
$sum->num1(10)->num2(5)->sum();
$sum->num1(10) 它将数值1 赋给了成员属性 返回本对象 即 $sum
后面的操作就等于是 $sum->num2(5) 再返回 $sum
这两就给两个成员属性赋好值了,只需要再调用一下 sum 方法就可以得到两个数的值
返回本对象,一般在操作数据库的时候用的比较多,连贯操作如:
$mysql->where()->order()->limit()->select()
给你写一个简单的实例吧
/**
* sum 类用于计算两个数的和.
*/
class sum{
private $num1;
private $num2;
public function num1($n){
$this->num1=$n;
return $this;
}
public function num2($n){
$this->num2=$n;
return $this;
}
public function sum(){
return $this->num1+$this->num2;
}
}
$sum=new sum();
$sum->num1(10)->num2(5)->sum();
$sum->num1(10) 它将数值1 赋给了成员属性 返回本对象 即 $sum
后面的操作就等于是 $sum->num2(5) 再返回 $sum
这两就给两个成员属性赋好值了,只需要再调用一下 sum 方法就可以得到两个数的值
返回本对象,一般在操作数据库的时候用的比较多,连贯操作如:
$mysql->where()->order()->limit()->select()
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当你用到面向对象的多对多,一对多,多对一这种多级关联时,return $this就有意义,现在很多框架都采用了rails 的一些理念,特别的对数据库的操作时,多级集联优势就来了,而且利于理解,维护,最大的问题主要还是性能上可能会差点,但不是很大的项目,没问题的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$this代表当前对象的内存地址,可以调用对象的所有属性和方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询