如何在PHP中使用范围分辨率运算符get_class()?

时间:2011-07-09 09:00:07

标签: php

示例:

<?php
class X {
    function foo() {

        echo "Class Name:".get_class($this)."<br>";
        echo get_class($this)::$private_var; //not working
        echo Y::$private_var; //works
        Y::y_method();  //works
        get_class($this)::y_method(); //not working
    }

    function bar() {
        $this->foo();
    }
}

class Y extends X {

    public static $private_var = "Variable of Y Class";
    public function y_method()
    {
        echo "Y class method";
    }
}

$y = new Y();
$y->bar();

?>

1 个答案:

答案 0 :(得分:0)

您必须将类名存储在变量中,然后使用它。

$class = get_class($this);
echo $class::$private_var;