PHP:如何从构造函数中调用方法?

PHP:如何从构造函数中调用方法?,php,class,methods,Php,Class,Methods,PHP已将get_称为_class();它将返回调用的类的名称。是否有函数返回被调用方法的名称?例如,我有一个父类: class Parent { public function __construct() { echo get_called_class(); // echos "Child" // how do I echo "myMethod" } } 然后我有一个孩子的父母: class Child extends Parent {

PHP已将get_称为_class();它将返回调用的类的名称。是否有函数返回被调用方法的名称?例如,我有一个父类:

class Parent
{
    public function __construct()
    {
        echo get_called_class(); // echos "Child"
        // how do I echo "myMethod"
    }
}
然后我有一个孩子的父母:

class Child extends Parent
{
    public function myMethod()
    {
    }
}
如果我打电话:

new Parent();
如何获取从_构造调用的方法的名称?在本例中为“myMethod”?如果我使用
\uu函数
它将返回
父项::\uu构造

编辑:我试图让被调用的类和方法自动传递给视图函数。因此,在控制器操作中,我可以:

$this->render();
而不是:

$this->render('account/new');
我的_构造将自动设置

$controller = "account"; // from get_called_class();
$action = "new"; // gotten how?!

我想你可以使用
\uuuuuuuuuuuuuuuuuuuuu方法


否则,正如其他人提到的,它应该返回_构造。

正如DCoder所写,您根本不需要调用myMethod()。
您构造的是父类对象,而不是子类对象,因此不可能以任何方式从子类中获取任何函数名或一般任何内容。

简单函数以“filename:[class->][function():]”的形式获取字符串


用法如下:

<?php
function debug($str) {
    echo get_caller_info() . $str . "<br>\n";
}
?>


摘自我最好的朋友。

你为什么要这样做?你为什么需要这个?它建议一种设计,当你创建一个对象时,_构造被调用…你的代码实际上并没有调用
myMethod
…我感觉你试图以错误的方式解决这个问题,但这个想法是有效的。我要做的是让视图查询类似于请求,以便它可以尝试确定模板。你的请求对象应该有一个控制器和一个它想要调用的方法,所以你的视图对象也应该查看请求来收集它自己的信息。对,我希望它返回“myMethod”而不是“\uuu construct”。在这种情况下,我认为这个函数可能更有用:我希望不使用debug\u backtrace,但这似乎是唯一的方法。
<?php
function debug($str) {
    echo get_caller_info() . $str . "<br>\n";
}
?>