PHP 类相关函数的使用详解

bool class_alias ( string $original , string $alias [, bool $autoload = TRUE ] ) — 为一个类创建别名
bool class_exists ( string $class_name [, bool $autoload ] )— 检查类是否已定义
string get_called_class ( void ) —获取静态方法调用的类名


代码如下:

class foo {
    static public function test(){
        var_dump(get_called_class());
    }
}
class bar extends foo {}
foo::test();
bar::test();

array get_class_methods ( mixed $class_name )— 返回由类的方法名组成的数组
array get_class_vars ( string $class_name )— 返回由类的默认属性组成的数组
string get_class ([ object $obj ] )— 返回对象的类名
array get_declared_classes ( void )— 返回当前脚本中已定义类的名字组成的数组
array get_declared_interfaces ( void )— 返回当前脚本中所有已声明的接口的名字数组
array get_object_vars ( object $obj )— 返回由对象属性组成的关联数组
string get_parent_class ([ mixed $obj ] )— 返回对象或类的父类名
bool interface_exists ( string $interface_name [, bool $autoload ] )— 检查接口是否已被定义
bool is_a ( object $object , string $class_name )— 如果对象属于该类或该类是此对象的父类则返回 TRUE
bool is_subclass_of ( object $object , string $class_name )— 检测对象是该类的子类实例化得到的
bool method_exists ( object $object , string $method_name )— 检查类的方法是否存在
bool property_exists ( mixed $class , string $property ) — 检查对象或类是否具有该属性

(0)

相关推荐

  • 浅谈PHP中类和对象的相关函数

    class_exists 判断一个类是否存在,参数为一个名字! interface_exists 判断一个接口是否存在,参数也是为一个名字! method_exists 判断一个方法是否存在! 需要两个:第一个对象变量,第二个是一个方法名! 返回一个布尔值! 判断某个属性是否存在,就是使用isset get_class 获得当前对象所属的类! 参数是一个对象! get_parent_class 获得对象的父类名! get_class_methods 需要一个参数为一个类名,返回一个索引数组,里面

  • PHP类和对象相关系统函数与运算符小结

    本文总结了PHP类和对象相关系统函数与运算符.分享给大家供大家参考,具体如下: 系统函数 class_exists() 判断某个类是否存在 interface_exists() 判断接口是否存在 get_class() / __CLASS__ 获取某个对象所处的类名 get_parent_class() 获取某个对象所属父类的类名 get_class_methods() 获取一个类所有方法,返回索引数组 get_class_vars() 获取一个类所有属性,下标为属性名 get_declared

  • PHP 类相关函数的使用详解

    bool class_alias ( string $original , string $alias [, bool $autoload = TRUE ] ) - 为一个类创建别名bool class_exists ( string $class_name [, bool $autoload ] )- 检查类是否已定义string get_called_class ( void ) -获取静态方法调用的类名 复制代码 代码如下: class foo {    static public fun

  • JS定义类的六种方式详解

    在前端开发中,经常需要定义JS类.那么在JavaScript中,定义类的方式有几种,分别是什么呢?本文就JS定义类的六中方式说明如下(案例说明): 1.工厂方式 function Car(){ var ocar = new Object; ocar.color = "blue"; ocar.doors = 4; ocar.showColor = function(){ document.write(this.color) }; return ocar; } var car1 = Car

  • Java AtomicInteger类的使用方法详解

    首先看两段代码,一段是Integer的,一段是AtomicInteger的,为以下: public class Sample1 { private static Integer count = 0; synchronized public static void increment() { count++; } } 以下是AtomicInteger的: public class Sample2 { private static AtomicInteger count = new AtomicIn

  • js es6系列教程 - 新的类语法实战选项卡(详解)

    其实es6的面向对象很多原理和机制还是ES5的,只不过把语法改成类似php和java老牌后端语言中的面向对象语法. 一.用es6封装一个基本的类 class Person{ constructor( uName ){ this.userName = uName; } sayName(){ return this.userName; } } 是不是很向php和java中的类, 其实本质还是原型链,我们往下看就知道了 首先说下语法规则: class Person中的Person就是类名,可以自定义

  • java枚举类的构造函数实例详解

    java枚举类的构造函数实例详解 首先,给出一个例题如下: enum AccountType { SAVING, FIXED, CURRENT; private AccountType() { System.out.println("It is a account type"); } } class EnumOne { public static void main(String[]args) { System.out.println(AccountType.FIXED); } } T

  • Java中Properties类的操作实例详解

    Java中Properties类的操作实例详解 知识学而不用,就等于没用,到真正用到的时候还得重新再学.最近在看几款开源模拟器的源码,里面涉及到了很多关于Properties类的引用,由于Java已经好久没用了,而这些模拟器大多用Java来写,外加一些脚本语言Python,Perl之类的,不得已,又得重新拾起.本文通过看<Java编程思想>和一些网友的博客总结而来,只为简单介绍Properties类的相关操作.  一.Java Properties类 Java中有个比较重要的类Properti

  • Java类的继承实例详解(动力节点Java学院整理)

    一.你了解类吗? 在Java中,类文件是以.java为后缀的代码文件,在每个类文件中最多只允许出现一个public类,当有public类的时候,类文件的名称必须和public类的名称相同,若不存在public,则类文件的名称可以为任意的名称(当然以数字开头的名称是不允许的). 在类内部,对于成员变量,如果在定义的时候没有进行显示的赋值初始化,则Java会保证类的每个成员变量都得到恰当的初始化: 1)对于  char.short.byte.int.long.float.double等基本数据类型的

  • 基于IntBuffer类的基本用法(详解)

    废话不多说,直接上代码 package com.ietree.basicskill.socket.basic.nio; import java.nio.IntBuffer; /** * Created by Administrator on 2017/5/25. */ public class BufferTest { public static void main(String[] args) { // 1 基本操作 /*//创建指定长度的缓冲区 IntBuffer buf = IntBuff

  • Mybatis逆向生成使用扩展类的实例代码详解

    1.背景介绍 用的mybatis自动生成的插件,然而每次更改数据库的时候重新生成需要替换原有的mapper.xml文件,都要把之前业务相关的sql重新写一遍,感觉十分麻烦,就想着把自动生成的作为一个基础文件,然后业务相关的写在扩展文件里面,这样更改数据库后只需要把所有基础文件替换掉就可以了 2.代码 2.1 BaseMapper.java 把自动生成的方法都抽到一个base类,然后可以写一些公共的方法 /** * @author 吕梁山 * @date 2019/4/23 */ public i

  • 对python:threading.Thread类的使用方法详解

    Python Thread类表示在单独的控制线程中运行的活动.有两种方法可以指定这种活动: 1.给构造函数传递回调对象 mthread=threading.Thread(target=xxxx,args=(xxxx)) mthread.start() 2.在子类中重写run() 方法 这里举个小例子: import threading, time class MyThread(threading.Thread): def __init__(self): threading.Thread.__in

随机推荐