继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

PHP中非常强大的对象工具

奋斗_0027
关注TA
已关注
手记 1
粉丝 2
获赞 10
自动加载类

__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();
打开App,阅读手记
3人推荐
发表评论
随时随地看视频慕课网APP