zoukankan      html  css  js  c++  java
  • PHP面向对象学习七 总结

    1、对象描述的配置
    方法名 __tostring()
    我们可以直接打印对象句柄,从而获得该方法的基本信息或其他内容。
    class My{
    
    function __tostring ( ){
    
      echo "这是一个PHP分页类";
      
       } 
    }
    $p = new My();
    
    echo $p;
    输出结果:这是一个PHP分页类
    
    可以方便的了解类的信息
    2、对象方法的异常处理
    方法名 __call($funname,$arr_value)
    当正常运行时系统不会调用此方法,如果我们访问了一个不存在的方法时,系统就会自动执行__call(),通过里面的设置,可以反馈给我们相关错误信息。
    class My{
    
    function __call($n,$v){
    
      echo "错误的方法名:".$n;
    
      echo "错误的参数".Print_r($v);//因为参数不只一个,以数组的形式保存,所以用print_r打印。
      
       } 
    }
    当访问了不存在的方法时,系统就会自动提示:错误的方法名:fun 错误的参数...
    3、克隆对象的应用
    方法名 __clone() 
    通过克隆的方式我们可以在内存中生成两个一样的对象或升级原对象。
    <?php
    class my{
    public $name="我的类";
    function __tostring(){
    return "这是一个测试类";
    }
    
    function __call($n,$v){
    echo "不存在的方法:".$n;
    echo "<br/>错误的值:".print_r($v);
    }
    
    function __clone(){
    $this->name="clone后的类";//此时的$this访问的是clone后的对象。此方法可用于clone前的再加工
    }
    
    function __destruct(){
    echo "<br/>清理一个对象<br/>";
    }
    }
    $p=new my();
    //echo $p;//演示__tostring用法
    $p->fun();//演示访问不存在方法时的错误提示
    $b=$p;
    echo "<br/>".$b->name;
    $c=clone $p;
    echo "<br/>".$c->name;
    ?>
    4、自动载入对象的方法
    方法名 __autoload()
    function __autoload($classname){
     
      include($classname.".php");
     
       }
       $p=new Mypc();
      $d=new demo();
    当实例化Mypc和demo两个类时,就自动引入了Mypc.php和demo.php。当实例化Mypc时,$classname就变成了Mypc;当实例化demo时,$classname就变成了demo.同时要注意路径问题
  • 相关阅读:
    分布式事务的四种解决方案
    uber-go/guide 的中文翻译
    域名解析-CNAME
    Nginx节点存活状态检查
    Laravel核心解读--中间件(Middleware)
    Mac dyld: Library not loaded: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib
    前缀树算法实现路由匹配原理解析
    原创-实用salt部署文档(持续更新)
    线上案例-调参-设置滑动窗口提高视频云播放性能
    NGINX日志割切
  • 原文地址:https://www.cnblogs.com/xtmp/p/3619077.html
Copyright © 2011-2022 走看看