代码拉取完成,页面将自动刷新
<?php
/**
* 使用反射 API 来还原类的原型
* Created by PhpStorm.
* User: Administrator
* Date: 2017/7/13
* Time: 17:42
*/
class Person4
{
public $name;
private $gender;
public function say()
{
echo $this->name . " is " . $this->gender . "\r\n";
}
public function __set($name, $value)
{
echo "Setting $name to $value \r\n";
$this->$name = $value;
}
public function __get($name)
{
if (!isset($this->$name)) {
echo '未设置';
$this->$name = '正在为你设置默认值';
}
return $this->$name;
}
protected function run($method)
{
echo $this->name . ' runned with' . $method;
}
}
// 反射获取类的原型
$obj = new ReflectionClass('Person4');
// 获取类的名称
$class_name = $obj->getName();
$methods = $properties = [];
// 获取类的所有属性
foreach ($obj->getProperties() as $value) {
$properties[$value->getName()] = $value;
}
// 获取类的所有方法
foreach ($obj->getMethods() as $value) {
$methods[$value->getName()] = $value;
}
echo "class {$class_name}\r\n{\n";
// 如果类有属性的话则进行排序
is_array($properties) && ksort($properties);
// 输出类的属性
foreach ($properties as $key => $value) {
echo "\t";
echo $value->isPublic() ? 'public' : '' , $value->isPrivate() ? 'private' : '' , $value->isProtected() ? 'protected' : '' , $value->isStatic() ? 'static' : '';
echo "\t{$key}\n";
}
echo "\n";
// 对类的方法进行排序
if (is_array($methods)) {
ksort($methods);
}
// 输出类的方法
foreach ($methods as $key => $value) {
echo "\t";
echo $value->isPublic() ? 'public' : '' , $value->isPrivate() ? 'private' : '' , $value->isProtected() ? 'protected' : '' , $value->isStatic() ? 'static' : '';
echo " function {$key}() {}\n";
}
echo "}\n";
/**
运行:
class Person4
{
private gender
public name
public function __get() {}
public function __set() {}
protected function run() {}
public function say() {}
}
*/
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。