php面试题

php面试:面向对象一

2018-12-16  本文已影响7人  AISpider
伪变量$this

this是一个到主叫对象的 引用(引用)。谁调用了方法,方法中的this就指向谁,前提必须是实例化过的(new obj)。

<?php
class A
{
    function foo()
    {
        if (isset($this)) {
            echo '$this is defined (';
            echo get_class($this);
            echo ")\n";
        } else {
            echo "\$this is not defined.\n";
        }
    }
}
A::foo();  
#非静态变量不能这么调用,报错eprecated: Non-static method ,
#并且输出$this is not defined.
#原因:$this是一个到主叫对象的 引用(引用)。谁调用了方法,方法中的$this就指向谁,前提必须是实例化过的.
#双冒号::是静态变量的调用,并没有实例化,所以isset($this)==false

php在线面试题集:http://cainiaophp.com/
php面试讨论群:536633782

上一篇 下一篇

猜你喜欢

热点阅读