• php面向对象


    一、编程思想

    1.面向过程

    概括起来就是“自顶向下,逐步细化”,把一个复杂的问题分解成简单的问题一步一步做出来

    2.面向对象

    所谓的面向对象,就是在编程的时候尽可能的模拟现实世界!

    第一步:分析哪些动作是由哪些实体发出的

    第二步:定义这些实体,为其增加相应的属性和功能

    第三步:让实体去执行相应的功能或动作

    3.面向过程与面向对象的对比

    1,  都可以实现代码重用和模块化编程,面向对象的模块化更深,不仅仅是简单的将功能进行封装(封装成函数),更是对调用该功能的主体进行封装,实现某个主体具有个功能,在使用的过程中,先得到相应的主体,再使主体去实现相关的功能

    2,  面向对象的数据更封闭,也更安全

    3,  面向对象的思维方式更贴近现实生活,更容易解决大型的复杂的业务逻辑

    4,  从前期开发角度来看,面向对象要比面向过程更复杂,但是从维护和扩展的功能来看,面向对象要远比面向过程简单

    4.$this关键字

    代表当前对象,谁调用就代表谁

    二、魔术方法

    __cosntruct  创建对象时自动调用的构造方法

    __destruct   删除对象时自动调用的析构方法,比如删除对象时,可以把调用的资源释放

    __clone    克隆一个对象时自动调用,可以写一些代码来区分克隆对象

    __sleep   当序列化一个对象时自动调用,一般返回一个需要序列化的属性的数组

    __wakeup  当反序列化一个对象时调用,一般要在里面写上初始化代码(一般为不能序列化的资源类型)

    __get($name)  获得不可访问的属性的值的时候

    __set($name,$value)  为不可访问的属性赋值的时候     

    __unset($name)  删除不可访问的属性的时候

    __isset($name)  判断不可访问的属性是否存在的时候

    __call($name,$arr)$name为方法名,$arr为参数列表,   当调用一个不可访问的非静态方法(对象方法)的时候,会自动执行该魔术方法,这里的不可访问分为不存在或者没有访问权限两种情况

    __callstatic($name,$arr)$name为方法名,$arr为参数列表, 当调用一个不可访问的静态方法(对象方法)的时候,会自动执行该魔术方法,,这里的不可访问分为不存在或者没有访问权限两种情况

    __autoload不算是魔术方法,可以叫作魔术函数!一般注册自动加载方法使用spl_autoload_register($name),$name为方法名。把对象里的非静态方法注册使用spl_autoload_register(array($obj,$name)),$obj为对象名,$name为方法名

    把对象里的静态方法注册使用spl_autoload_register(array($class,$name)),$class为类名,$name为方法名,还有一个简单方法spl_autoload_register(“类名::静态方法名”);

    __invoke()   当把对象当做一个函数或方法来调用的时候,会自动执行该魔术方法!括号里面可以传递参数

     __toString()  将一个对象当做一个字符串来使用的时候,会自动触发该方法!

    三、魔术常量

    __DIR__   返回当前根目录路径

    __FILE__  返回当前文件路径

    __LINE__  返回当前行数

    __FUNCTION__ : 返回当前函数的名字

    __CLASS__   返回代表当前类名

    __METHOD__  返回当前的方法名!

    __NAMESPACE__:代表当前命名空间名!

  • 相关阅读:
    docker学习记录
    TCP/IP基础介绍
    JS对select操作
    js中删除table里所有行
    端口
    js中定时器的使用
    ASP.NET程序中常用的三十三种代码
    NHibernate学习(转)
    条面向对象设计的经验原则(转)
    客户端等select和input控件
  • 原文地址:https://www.cnblogs.com/zxz1987/p/6166489.html
Copyright © 2020-2023  润新知