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.同时要注意路径问题

PHP面向对象学习七 总结的更多相关文章

  1. JavaScript之面向对象学习七(动态原型模式、寄生构造函数模式、稳妥构造函数模式创建自定义类型)

    一.动态原型模式 在面向对象学习六中的随笔中,了解到组合构造函数模式和原型模式创建的自定义类型可能最完善的!但是人无完人,代码亦是如此! 有其他oo语言经验的开发人员在看到独立的构造函数和原型时,很可 ...

  2. js面向对象学习 - 对象概念及创建对象

    原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...

  3. MyBatis学习七:spring和MyBatis整合

    <\mybatis\day02\16mybatis和spring整合-sqlSessionFactory配置.avi;> MyBatis学习七:spring和MyBatis整合.逆向工程 ...

  4. SVG 学习<七> SVG的路径——path(1)直线命令、弧线命令

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  5. Python面向对象学习 1 (什么是面向对象,面向对象的应用场景,待更新)

    程序设计的三种基本结构: 面向对象,面向过程,函数式编程   1,什么是面向对象编程    面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就 ...

  6. day 85 Vue学习七之vue-cookie

      Vue学习七之vue-cookie   通过vue如何操作cookie呢 参考链接:https://www.jianshu.com/p/535b53989b39 第一步:安装vue-cookies ...

  7. (转)MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码

    http://blog.csdn.net/yerenyuan_pku/article/details/71909325 什么是逆向工程 MyBatis的一个主要的特点就是需要程序员自己编写sql,那么 ...

  8. Java面向对象学习目录

    Java面向对象学习目录 以下为面向对象学习目录,有待补充的部分,我还会再后续的学习过程中加以补充与修改~ 一.面向对象编程思想 二.Java类及类中成员 属性 方法 构造器 代码块 内部类 面向对象 ...

  9. (转)Python之路,Day6 - 面向对象学习

    本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法.     引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战> ...

随机推荐

  1. AngularJS讲义-控制器

    在Angular中,控制器(Controller)就是基于JavaScript的构造方法,主要用来构造模型并建立模型和视图之间的数据绑定.控制器里面定义了应用程序的逻辑和行为. 通过ng-contro ...

  2. RAC NTP/CTSS

    本文總結主要參考: http://blog.itpub.net/23135684/viewspace-759693/ http://www.happyworld.net.cn/post/6.html ...

  3. phpcms调用一级栏目和二级栏目

    {loop subcat(,,,$siteid) $r}  {php $num++} <strong><a href=} <br /> {elseif $n!=$c} | ...

  4. Ubuntu下Chromium for Android 源码的编译

    转自:http://blog.csdn.net/leer168/article/details/9146689 一.环境Ubuntu10.4.4 -desktop-amd64 + VMware Wor ...

  5. 15 个 Android 通用流行框架大全

      1. 缓存 名称 描述 DiskLruCache Java实现基于LRU的磁盘缓存 2.图片加载 名称 描述 Android Universal Image Loader 一个强大的加载,缓存,展 ...

  6. 关于MFC OpenGL环境配置的一点总结

    复制include时要小心..看vs给你load哪一个..名字一样..东西可不一定一样哦 http://www.cppblog.com/wicbnu/archive/2010/09/30/128123 ...

  7. java 线程演示

    package unit8; public class Mainthread { public static void main(String[] args) { Thread t = new Thr ...

  8. 从零开始---控制台用c写俄罗斯方块游戏(1)

    从零开始---控制台用c写俄罗斯方块游戏(1) 很少写博文,一来自身知识有限,二来自己知道,已经有很多这样的博文了,三就是因为懒,文笔也一般,四来刚出来工作,时间也不多 之所以写这篇博文,是因为应群里 ...

  9. 一个java覆盖的例子

    // 覆盖class P{}class Q extends P{} class a{ static void m1(float x){ //静态方法不能被覆盖 System.out.println(& ...

  10. 移动Web开发规范

    1.字体设置 使用无衬线字体 body { font-family: "Helvetica Neue", Helvetica, STHeiTi, sans-serif; } 2.设 ...