0

嗨朋友们,我是php新手,我正在尝试学习类我正在尝试使用以下代码获取类中描述的所有函数*名称*任何人都可以告诉我如何打印函数输出

<?php
    class dog {
                    public function bark() {
                    print "Woof!\n";
                    }

                    public function legs() {
                    print "four!\n";
                    }
             }

    class poodle extends dog {
      public function yip() {
            print "Yipppppppp!\n";
        }
    }

    $poppy = new poodle;

    //$poppy->bark();
    $class_methods = get_class_methods(new poodle());
    //echo    $class_methods;
        foreach($class_methods as $class_methods1)
        {
        echo $class_methods1.'<br/>';
        }

?> 
4

3 回答 3

1

这应该有效:

$poodle = new poodle();
$class_methods = get_class_methods($poodle);
//echo    $class_methods;
foreach($class_methods as $class_method)
{
    echo $class_method.'\'s Output: '.$poodle->$class_method()."<br />"; 
}

一般来说:

如果你有一个值,$test = "abc"你可以将它(在 php 中)评估为变量名或函数等:

$test = "abc";
$test() // equal to abc() - if function abc exists.

echo $$test // equal to echo $abc - if $abc is defined.

$anotherTest = new $test(); // equal to new abc() - if class exists.
于 2013-01-18T10:21:05.953 回答
0
$poppy = new poodle;

$class_methods = get_class_methods($poppy);

foreach($class_methods as $class_method_name)
{
    echo $class_methods_name.' => '
        // Either:
        .$poppy->$class_method_name()
        // OR (prefered method, but more typing)
        .call_user_func(array($poppy, $class_method_name))

        .'<br/>';

}
于 2013-01-18T10:19:50.050 回答
0

可以使用变量代替方法名称来执行您想要的操作。注意:您不需要echo方法调用的结果,因为您的方法都是print一些东西,但它们实际上并没有返回任何东西。

演示

$poppy = new poodle;

$class_methods = get_class_methods($poppy);

foreach($class_methods as $class_methods1)
{
   $poppy->$class_methods1() . '<br/>';
}

输出

Yipppppppp!
Woof!
four!
于 2013-01-18T10:21:11.677 回答