作为标题,$a
是A类,并调用foo函数。
$a->foo();
但是,A类有许多子类和子类。其中一些使用了许多特性,实现了许多接口。我不确定哪个子类$a
是。
我的问题是,我怎么知道调用哪个foo函数?我绝对可以通过使用不正确的参数来调用foo(),
$a->foo('error');
我会得到错误跟踪堆栈。 但是如何直接获取类名或特征名? 提前谢谢!
答案 0 :(得分:0)
检查此示例:
<?php
class Foo
{
protected $who;
public function printItem($string)
{
echo 'printItem (' . __CLASS__ . '): ' . $string . PHP_EOL;
$this->who = __CLASS__;
}
public function getClass()
{
echo $this->who . PHP_EOL;
}
}
class Bar extends Foo
{
public function printItem($string)
{
echo 'printItem (' . __CLASS__ . '): ' . $string . PHP_EOL;
$this->who = __CLASS__;
}
}
$a = new Foo();
$b = new Bar();
$a->printItem('baz'); // Output: 'printItem (Foo): baz'
$a->getClass(); // Output: Foo
$b->printItem('baz'); // Output: 'printItem (Bar): baz'
$b->getClass(); // Output: Bar
?>
您可以在以下网址阅读更多内容:
答案 1 :(得分:0)
Here is the demo ,try this
<?php
class myclass {
function myclass() {
return(true);
}
function myfunc1(){
return(true);
}
function myfunc2(){
return(true);
}
}
$class_methods = get_class_methods('myclass');
// or
$class_methods = get_class_methods(new myclass());
foreach ($class_methods as $method_name) {
echo "$method_name\n";
}
// output :myclass myfunc1 myfunc2