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. Linux 配置NFS,文件共享

    配置:   1.设定共享主机服务器    ---(注意防火墙) 编辑ipA端的/etc/exports 文件 [root@dbrac2 ~]# cat /etc/exports /media  192 ...

  2. 5-04用Sql语句创建表

    用Sql语句创建表的基本语法: USE E_Market--指向当前所操作的数据库 GO CREATE TABLE CommoditySort--创建表的名字 { sortID int IDENTIT ...

  3. [Linux] 安装JDK和Maven及hadoop相关环境

    紧接上一篇,继续安装hadoop相关环境 JDK安装:     1. 下载,下面这两个地址在网上找的,可以直接下载:         http://download.oracle.com/otn-pu ...

  4. [Java] arraycopy 数组复制(转)

    public class ArraycopyTest {     public static void main(String[] args)     {         //静态初始化两个长度不同的 ...

  5. python学习第三天

    小结: 总体上,python是解释型语言,开源比较好,速度较慢,装逼神器,解释器较常用的是CPython,安装后python进入运行环境 exit()退出 第一个hello world : print ...

  6. MFC 丢失MSVCR120D.dll 丢失mfc120ud.dll

  7. hdu2859 dp

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2859 题意:输入一个数n,接下来是一个由n*n个字母组成的矩阵,求以左下到右上的线为轴的最 ...

  8. loopback 04

    数据库相关 关系定义 relationship 定义关系之后的使用 relations: { "images": { "type": "hasMany ...

  9. css:删除:×的效果

    常常要使用的显示删除效果: DEMO

  10. Swift3.0语言教程比较、判断字符串

    Swift3.0语言教程比较.判断字符串 Swift3.0语言教程比较.判断字符串,在一个程序中字符串很多时,常常会做的操作就是对这些字符串进行比较和判断.本小节将讲解这些内容. 1.不区分大小写比较 ...