• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 3年前 (2022-01-24) 21次浏览 已收录 0个评论

怎么知道一个类实例有什么方法和属性?
怎么知道一个类实例有什么方法和属性?

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

<?php

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() 示例

<?php

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));

fo¥本文来%源[email protected]搞@^&代*@码)网5搞gaodaima代码reach ($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

<?phpclass a{ public $abc = 'kkk'; public function test() { echo $this->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";}


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:如何知道一个类实例有什么方法和属性

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址