欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

如何知道一个类实例有什么方法和属性

程序员文章站 2022-05-30 10:41:55
...
怎么知道一个类实例有什么方法和属性?
怎么知道一个类实例有什么方法和属性?


------解决方案--------------------
例子 1. get_class_methods() 示例


class myclass {
// constructor
function myclass() {
return(TRUE);
}

// method 1
function myfunc1() {
return(TRUE);
}

// method 2
function myfunc2() {
return(TRUE);
}
}

$my_object = new myclass();

$class_methods = get_class_methods(get_class($my_object));

foreach ($class_methods as $method_name) {
echo "$method_name\n";
}

?>



运行结果:


myclass
myfunc1
myfunc2


例子 1. get_class_vars() 示例


class myclass {

var $var1; // 此变量没有默认值……
var $var2 = "xyz";
var $var3 = 100;

// constructor
function myclass() {
return(TRUE);
}

}

$my_class = new myclass();

$class_vars = get_class_vars(get_class($my_class));

foreach ($class_vars as $name => $value) {
echo "$name : $value\n";
}

?>



运行结果:


// 在 PHP 4.2.0 之前
var2 : xyz
var3 : 100

// 从 PHP 4.2.0 开始
var1 :
var2 : xyz
var3 : 100


------解决方案--------------------
搜索下php手册,里面有一个反射概念(reflection)

PHP code

abc;
    }
    
    
}

//Instantiate the object
$b = new a();

//Instantiate the reflection object
$reflector = new ReflectionClass('a');

//Display the object properties
$properties = $reflector->getProperties();
foreach($properties as $property)
{
    echo "\$b->", $property->getName(), " => ", $b->{$property->getName()}, "\n";
}

//Display the object methods
$methods = $reflector->getMethods();
foreach($methods as $method)
{
    echo "\$b->", $method->getName(), " => ", $b->{$method->getName()}(), "\n";
} 
如何知道一个类实例有什么方法和属性

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频