1. get_class — 返回对象的类名
string get_class ([ object $obj ] )
返回对象实例 obj 所属类的名字。如果 obj 不是一个对象则返回 FALSE。
Note: 在 PHP 扩展库中定义的类返回其原始定义的名字。在 PHP 4 中 get_class() 返回用户定义的类名的小写形式,但是在 PHP 5 中将返回类名定义时的名字,如同扩展库中的类名一样
- //Note: 自 PHP 5 起,如果在对象的方法中调用则 obj 为可选项。
- //Example#1 使用 get_class()
- <?php
- class foo {
- function foo()
- {
- // implements some logic
- }
- function name()
- {
- echo "My name is " , get_class($this) , "/n";
- }
- }
- // create an object
- $bar = new foo();
- // external call
- echo "Its name is " , get_class($bar) , "/n";
- // internal call
- $bar->name();
- ?>
上例将输出:
Its name is foo My name is foo
2.get_class_methods — 返回由类的方法名组成的数组
说明
array get_class_methods ( mixed $class_name )
返回由 class_name 指定的类中定义的方法名所组成的数组。如果出错,则返回 NULL。
Example#1 get_class_methods() 示例
- <?php
- class myclass
- {
- // constructor
- function myclass()
- {
- return(true);
- }
- // method 1
- function myfunc1()
- {
- return(true);
- }
- // method 2
- function myfunc2()
- {
- return(true);
- }
- }
- $class_methods = get_class_methods('myclass');
- $class_methods = get_class_methods(new myclass());
- foreach ($class_methods as $method_name) { echo "$method_name/n";
- }
- ?>
上例将输出:
myclass myfunc1 myfunc2
get_class_vars — 返回由类的默认属性组成的数组
说明
array get_class_vars ( string $class_name )
返回由类的默认公有属性组成的关联数组,此数组的元素以 varname => value 的形式存在。
- <?php
- class myclass {
- var $var1; // 此变量没有默认值……
- var $var2 = "xyz";
- var $var3 = 100;
- private $var4; // PHP 5
- // constructor
- function myclass() {
- // change some properties
- $this->var1 = "foo";
- $this->var2 = "bar";
- 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
- class Memd extends Memcached {
- /**
- * 获取Memcached内置属性与函数
- * @param int $flag default 1
- */
- public function getMemcachedVar($flag = 1) {
- $r = new ReflectionClass($this);
- switch($flag) {
- case 1:
- return $r->getConstants();
- case 2:
- return $r->getMethods();
- }
- }
- }
- $cls = new Memd();
- $info = $cls->getMemcachedVar(1);
- print_r($info);
- class Reflection
- {
- public static mixed export(Reflector r [,bool return])
- //导出一个类或方法的详细信息
- public static array getModifierNames(int modifiers)
- //取得修饰符的名字
- }
②ReflectionException类
该类继承标准类,没特殊方法和属性。
③ReflectionFunction类
- class ReflectionFunction implements Reflector
- {
- final private __clone()
- public object __construct(string name)
- public string __toString()
- public static string export()
- //导出该函数的详细信息
- public string getName()
- //取得函数名
- public bool isInternal()
- //测试是否为系统内部函数
- public bool isUserDefined()
- //测试是否为用户自定义函数
- public string getFileName()
- //取得文件名,包括路径名
- public int getStartLine()
- //取得定义函数的起始行
- public int getEndLine()
- //取得定义函数的结束行
- public string getDocComment()
- //取得函数的注释
- public array getStaticVariables()
- //取得静态变量
- public mixed invoke(mixed* args)
- //调用该函数,通过参数列表传参数
- public mixed invokeArgs(array args)
- //调用该函数,通过数组传参数
- public bool returnsReference()
- //测试该函数是否返回引用
- public ReflectionParameter[] getParameters()
- //取得该方法所需的参数,返回值为对象数组
- public int getNumberOfParameters()
- //取得该方法所需的参数个数
- public int getNumberOfRequiredParameters()
- //取得该方法所需的参数个数
- }
④ReflectionParameter类:
- class ReflectionParameter implements Reflector
- {
- final private __clone()
- public object __construct(string name)
- public string __toString()
- public static string export()
- //导出该参数的详细信息
- public string getName()
- //取得参数名
- public bool isPassedByReference()
- //测试该参数是否通过引用传递参数
- public ReflectionClass getClass()
- //若该参数为对象,返回该对象的类名
- public bool isArray()
- //测试该参数是否为数组类型
- public bool allowsNull()
- //测试该参数是否允许为空
- public bool isOptional()
- //测试该参数是否为可选的,当有默认参数时可选
- public bool isDefaultValueAvailable()
- //测试该参数是否为默认参数
- public mixed getDefaultValue()
- //取得该参数的默认值
- }
⑤ReflectionClass类:
- class ReflectionClass implements Reflector
- {
- final private __clone()
- public object __construct(string name)
- public string __toString()
- public static string export()
- //导出该类的详细信息
- public string getName()
- //取得类名或接口名
- public bool isInternal()
- //测试该类是否为系统内部类
- public bool isUserDefined()
- //测试该类是否为用户自定义类
- public bool isInstantiable()
- //测试该类是否被实例化过
- public bool hasConstant(string name)
- //测试该类是否有特定的常量
- public bool hasMethod(string name)
- //测试该类是否有特定的方法
- public bool hasProperty(string name)
- //测试该类是否有特定的属性
- public string getFileName()
- //取得定义该类的文件名,包括路径名
- public int getStartLine()
- //取得定义该类的开始行
- public int getEndLine()
- //取得定义该类的结束行
- public string getDocComment()
- //取得该类的注释
- public ReflectionMethod getConstructor()
- //取得该类的构造函数信息
- public ReflectionMethod getMethod(string name)
- //取得该类的某个特定的方法信息
- public ReflectionMethod[] getMethods()
- //取得该类的所有的方法信息
- public ReflectionProperty getProperty(string name)
- //取得某个特定的属性信息
- public ReflectionProperty[] getProperties()
- //取得该类的所有属性信息
- public array getConstants()
- //取得该类所有常量信息
- public mixed getConstant(string name)
- //取得该类特定常量信息
- public ReflectionClass[] getInterfaces()
- //取得接口类信息
- public bool isInterface()
- //测试该类是否为接口
- public bool isAbstract()
- //测试该类是否为抽象类
- public bool isFinal()
- //测试该类是否声明为final
- public int getModifiers()
- //取得该类的修饰符,返回值类型可能是个资源类型
- //通过Reflection::getModifierNames($class->getModifiers())进一步读取
- public bool isInstance(stdclass object)
- //测试传入的对象是否为该类的一个实例
- public stdclass newInstance(mixed* args)
- //创建该类实例
- public ReflectionClass getParentClass()
- //取得父类
- public bool isSubclassOf(ReflectionClass class)
- //测试传入的类是否为该类的父类
- public array getStaticProperties()
- //取得该类的所有静态属性
- public mixed getStaticPropertyValue(string name [, mixed default])
- //取得该类的静态属性值,若private,则不可访问
- public void setStaticPropertyValue(string name, mixed value)
- //设置该类的静态属性值,若private,则不可访问,有悖封装原则
- public array getDefaultProperties()
- //取得该类的属性信息,不含静态属性
- public bool isIterateable()
- public bool implementsInterface(string name)
- //测试是否实现了某个特定接口
- public ReflectionExtension getExtension()
- public string getExtensionName()
- }
⑥ReflectionMethod类:
- class ReflectionMethod extends ReflectionFunction
- {
- public __construct(mixed class, string name)
- public string __toString()
- public static string export()
- //导出该方法的信息
- public mixed invoke(stdclass object, mixed* args)
- //调用该方法
- public mixed invokeArgs(stdclass object, array args)
- //调用该方法,传多参数
- public bool isFinal()
- //测试该方法是否为final
- public bool isAbstract()
- //测试该方法是否为abstract
- public bool isPublic()
- //测试该方法是否为public
- public bool isPrivate()
- //测试该方法是否为private
- public bool isProtected()
- //测试该方法是否为protected
- public bool isStatic()
- //测试该方法是否为static
- public bool isConstructor()
- //测试该方法是否为构造函数
- public bool isDestructor()
- //测试该方法是否为析构函数
- public int getModifiers()
- //取得该方法的修饰符
- public ReflectionClass getDeclaringClass()
- //取得该方法所属的类
- // Inherited from ReflectionFunction
- final private __clone()
- public string getName()
- public bool isInternal()
- public bool isUserDefined()
- public string getFileName()
- public int getStartLine()
- public int getEndLine()
- public string getDocComment()
- public array getStaticVariables()
- public bool returnsReference()
- public ReflectionParameter[] getParameters()
- public int getNumberOfParameters()
- public int getNumberOfRequiredParameters()
- }
⑦ReflectionProperty类:
- class ReflectionProperty implements Reflector
- {
- final private __clone()
- public __construct(mixed class, string name)
- public string __toString()
- public static string export()
- //导出该属性的详细信息
- public string getName()
- //取得该属性名
- public bool isPublic()
- //测试该属性名是否为public
- public bool isPrivate()
- //测试该属性名是否为private
- public bool isProtected()
- //测试该属性名是否为protected
- public bool isStatic()
- //测试该属性名是否为static
- public bool isDefault()
- public int getModifiers()
- //取得修饰符
- public mixed getValue(stdclass object)
- //取得该属性值
- public void setValue(stdclass object, mixed value)
- //设置该属性值
- public ReflectionClass getDeclaringClass()
- //取得定义该属性的类
- public string getDocComment()
- //取得该属性的注释
- }
⑧ReflectionExtension类
- class ReflectionExtension implements Reflector {
- final private __clone()
- public __construct(string name)
- public string __toString()
- public static string export()
- //导出该扩展的所有信息
- public string getName()
- //取得该扩展的名字
- public string getVersion()
- //取得该扩展的版本
- public ReflectionFunction[] getFunctions()
- //取得该扩展的所有函数
- public array getConstants()
- //取得该扩展的所有常量
- public array getINIEntries()
- //取得与该扩展相关的,在php.ini中的指令信息
- public ReflectionClass[] getClasses()
- public array getClassNames()
- }
- __CLASS__ 获取当前类名(在此之前我用get_class - -!)
- __FUNCTION__ 当前函数名(confirm)
- __METHOD__ 当前方法名 (bankcard::confirm)
相关推荐
- **反射函数**: 如 `JAVA_METHOD`、`REFLECT` 用于调用Java方法。 - **用户定义表函数 (UDTF)**: 可以生成多行输出,适用于将一行数据拆分成多行的情况。 ##### 9. **窗口函数** - 用于在数据集的不同窗口上执行...
### HIVE常用函数参考手册知识点概述 #### 一、函数分类 Hive中的函数可以根据其功能和作用范围分为几大类: 1. **简单函数**:这类函数通常针对单条记录进行操作,如数学运算、逻辑运算等。 2. **聚合函数**:...
4. **常用PHP函数**:如字符串操作函数、数组函数、日期和时间函数、文件系统函数等,这些都是PHP开发中常见的工具。 5. **会话机制**:理解如何使用session和cookie来跟踪用户状态,实现用户登录和购物车功能。 6...
这些专题包括了PHP与ajax的结合使用、PHP的运算符使用、网络编程技巧、基本语法、操作Office文档技巧、日期和时间处理、面向对象程序设计、字符串操作、MySQL数据库操作等,这些都是PHP开发者在进行Web开发时常用的...
**动态语言**是指那些可以在运行时改变其结构的语言,比如可以添加新的函数、对象或修改现有代码。常见的动态语言包括Objective-C、C#、JavaScript、PHP和Python等。这些语言的特点在于它们允许开发者在程序运行过程...
这个压缩包里有PHP、MySQL和Java的两本不同版本的手册,使得在编程过程中可以快速查阅各种技术和函数用法。 PHP手册: PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,主要用于Web开发,可嵌入到HTML...
PHP 5允许C扩展覆盖对象语法的几乎每一个方面,并且还允许PHP代码覆盖一部分最常用的功能。这一节将详细介绍可以在PHP代码中控制的重载功能。 ##### 属性与方法重载 PHP支持属性访问和方法调用的重载,这是通过实现...
C/C++ 是两种常用的编程语言,它们在计算机科学中占有重要的地位。C 语言是一种底层、高效且灵活的语言,适用于系统编程、嵌入式开发以及编写操作系统等。C++ 是 C 语言的扩展,增加了面向对象编程(OOP)的概念,如...
- 常用组件功能:提供标准化的PHP代码集合,便于快速开发。 - 安装配置指南:本地环境中部署PEAR库的具体步骤。 - **Ajax技术解析** - 异步加载原理:通过JavaScript异步请求数据更新页面局部内容。 - JSON数据...
- **解析:** PHP中的反射类应为`ReflectionClass`(首字母大写),用于反射类的信息和操作。 32. **条件控制语句:** - **正确答案:** 对 - **解析:** `else`语句可以单独使用,也可以与`if`语句一起使用。`...
- 在反射或者类操作中,经常会用到`__CLASS__`和`__METHOD__`来获取当前类名或方法名,这对于编写通用函数非常有用。 4. **命名空间识别**: - 在处理命名空间相关的代码时,`__NAMESPACE__`可以帮助我们确定当前...
本文通过具体实例分析了PHP中实现懒加载的多种方法,包括反射类ReflectionClass的使用、魔术方法__autoload()的应用,以及使用spl_autoload_register()注册自定义的自动加载函数等。下面详细介绍这些知识点。 首先...
在互联网应用日益广泛的今天,PHP作为最常用的Web开发语言之一,其安全性问题显得尤为重要。本文将详细介绍16种常见的PHP网站攻击类型及其防御策略。 #### 1. 命令注入(Command Injection) **攻击原理**:攻击者...
这份"面试经验等多文档"的压缩包可能包含了Java、.NET、JavaScript、jQuery和PHP等多个技术领域的面试题及解答,这些都是软件开发领域最常用的技术栈。下面我们将详细探讨这些技术的相关知识点。 首先,Java是一种...
10. **PHP基础**:语法特性、函数库、面向对象编程、PHP与MySQL交互等。 这份资源将帮助学习者和求职者全面了解Java开发的各个方面,通过实际的面试题目进行自我检测和提升,同时也提供了Linux和PHP的基本知识,以...