php中$this的含义

php中$this是指一个变量,当一个对象调用一个方法的时候,$this指向的就是这个对象的本身,通常情况下面,这个$this就是调用这个方法的对象,但是有的时候,也可能是调用另外一个通过静态方法来调用的对象(因为如果使用new来调用,那肯定就是本身了)

<?php
 
class  A{
             function  foo(){
                         if( isset($this)){
                                     echo “this is defined:”;
                                     echo get_class($this).“<br/>” ;
                        } else{
                                     echo “this is not defined<br/>”;
                        }
            }
}
 
 
class  B{
             function bar(){
                        A:: foo();
            }
}
 
$a=new A;
$a->foo();
 
A::foo ();
 
$b=new B;
$b->bar();
 
B::bar ();//这个其实是类访问,不会对象本身
?>

输出结果是:

1

因为$this已经执行了B这个对象,所有我们是可以在A的对象里面使用$this关键字来访问B里面的方法。
在对象B中添加方法:
             function b_bar(){
                         echo “this is a b_bar<br/>”;
            }
在A的方法中添加如下:
if(get_class($this)==‘B’ ){
                                                $this->b_bar();
                                    }
这个可以调用B的房方法:
输出:2

共有 0 条评论

Top