为了账号安全,请及时绑定邮箱和手机立即绑定

PHP中非常强大的对象工具

标签:
PHP
自动加载类

__autoload是一个强大的工具,但是也存在一些局限性。尤其是,在一个进程中你只能定义它一次。当php引擎遇到试图实例化未知类的操作时会调用此方法。

function __autoload( $classname )  {
    include_once("$classname.php");
}
$product =  new  ShopProduct(  'The Darkening',  'Harry',  'Hunter',  12.99  );
查找类

• class_exista()接收表示类的字符串返回布尔值
• get_declared_classes()获取当前脚本进程中定义的所有类,以数组方式返回
• get_class()检测对象的类,以字符串的形式返回对象的类名。
• instanceof检测对象是不是给定类型的实例
• get_class_methods()得到类中的所有方法,返回数组格式。
• is_callable()检测类中的方法是否可以被调用,返回布尔值。

了解类属性

• get_class_vars()接收类名返回属性的键值对数组

了解继承

• get_parent_class()查找类的父类
• Is_subclass_of()检测类是否是另一个类的派生类,不会告诉你类实现的接口。
• Class_implements()接收一个类名或对象返回他实现的接口。

方法的调用与重载

普通的方法调用

$product = getProduct();//获取对象
$method =  "getTitle";  //定义方法名
print $product->method;

call_user_func(array(对象,方法名),可选参数)方式的调用 。为了避免当调用的方法不存在时产生错误,可以使用 __call() 方法来避免。该方法在调用的方法不存在时会自动调用,程序仍会继续执行下去。

class  Ass{
  function __call($function_name, $args){
    echo "你所调用的函数:$function_name(参数:<br />";
    var_dump($args);
    echo ")不存在!";
  }
}
$ass=new  Ass();
$ass->a();
点击查看更多内容
3人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消