php interface exists,php interface_exists、class_exists、method_exists和propert

本文详细介绍了PHP中的interface_exists、class_exists、method_exists和property_exists四个函数,用于判断接口、类、方法和属性是否存在。通过示例代码展示了它们的用法,并提供了__autoload的实现方式。了解这些函数有助于深入理解PHP的面向对象编程。
摘要由CSDN通过智能技术生成

下面我们一起来看在php 中PHP类和对象函数这 php interface_exists、class_exists、method_exists和property_exists详解,希望文章对各位同学会有所帮助。

1. interface_exists、class_exists、method_exists和property_exists:

顾名思义,从以上几个函数的命名便可以猜出几分他们的功能。我想这也是我随着对PHP的深入学习而越来越喜欢这门编程语言的原因了吧。下面先给出他们的原型声明和简短说明,更多的还是直接看例子代码吧。

bool interface_exists (string $interface_name [, bool $autoload = true ]) 判断接口是否存在,第二个参数表示在查找时是否执行__autoload。

bool class_exists (string $class_name [, bool $autoload = true ]) 判断类是否存在,第二个参数表示在查找时是否执行__autoload。

bool method_exists (mixed $object , string $method_name) 判断指定类或者对象中是否含有指定的成员函数。

bool property_exists (mixed $class , string $property) 判断指定类或者对象中是否含有指定的成员变量。

实例代码如下:

//in another_test_class.php

interfaceAnotherTestInterface {

}

classAnotherTestClass {

publicstaticfunctionprintMe() {

print "This is Test2::printSelf.n";

}

publicfunctiondoSomething() {

print "This is Test2::doSomething.n";

}

publicfunctiondoSomethingWithArgs($arg1,$arg2) {

print 'This is Test2::doSomethingWithArgs with ($arg1 = '.$arg1.' and $arg2 = '.$arg2.").n";

}

}

//in class_exist_test.php, 下面测试代码中所需的类和接口位于another_test_class.php,

//由此可以发现规律,类和接口的名称是驼峰风格的,而文件名的单词间是下划线分隔的。

//这里给出了两种__autoload的方式,因为第一种更为常用和方便,因此我们这里将第二种方式注释掉了,他们之间的差别可以查看manual。

function__autoload($classname) {

$nomilizedClassname=strtolower(preg_replace('/([A-Z]w*)([A-Z]w*)([A-Z]w*)/','${1}_${2}_${3}',$classname));

requirestrtolower($nomilizedClassname).".php";

}

//spl_autoload_register(function($classname) {

//    $nomilizedClassname = strtolower(preg_replace('/([A-Z]w*)([A-Z]w*)([A-Z]w*)/','${1}_${2}_${3}',$classname));

//    require strtolower($nomilizedClassname).".php";

/

(责任编辑:admin)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值