为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
PHP面向对象编程_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

PHP面向对象编程

Peter 其它
难度初级
时长 3小时14分
  • __autoload(); 当实例化一个不存在的类时,自动调用此函数. 通过定义这个函数来启用类的自动加载。 function __autoload($class_name) { $path = str_replace('_', '/', $class_name); require_once $path . '.php'; } // 这里会自动加载Http/File/Interface.php 文件 $a = new Http_File_Interface(); serivalize 串行化:返回一个包含字节流的字符串 unserivalize 反串行化:重新把字符串变回php原来的值。 对象、数组都可以串行化。 串行化serialize可以把变量包括对象,转化成连续bytes数据. 可以将串行化后的变量存在一个文件里或在网络上传输. 然后再反串行化还原为原来的数据. 在反串行化类的对象之前定义的类,PHP可以成功地存储其对象的属性和方法. 有时你可能需要一个对象在反串行化后立即执行. 为了这样的目的,PHP会自动寻找__sleep和__wakeup方法. 当一个对象被串行化,PHP会调用__sleep方法(如果存在的话). 在反串行化一个对象后,PHP 会调用__wakeup方法. 这两个方法都不接受参数. __sleep方法必须返回一个数组,包含需要串行化的属性. PHP会抛弃其它属性的值. 如果没有__sleep方法,PHP将保存所有属性. 在程序执行前,serialize() 函数会首先检查是否存在一个魔术方法 __sleep.如果存在,__sleep()方法会先被调用, 然后才执行串行化(序列化)操作。这个功能可以用于清理对象,并返回一个包含对象中所有变量名称的数组。如果该方法不返回任何内容,则NULL被序列化,导致 一个E_NOTICE错误。与之相反,unserialize()会检查是否存在一个__wakeup方法。如果存在,则会先调用 __wakeup方法,预先准备对象数据。 __sleep方法常用于提交未提交的数据,或类似的操作。同时,如果你有一些很大的对象, 不需要保存,这个功能就很好用。__wakeup经常用在反序列化操作中,例如重新建立数据库连接,或执行其它初始化操作。
    查看全部
    1 采集 收起 来源:课程总结

    2017-02-11

  • class NbaPlayer{ public $name; } $james = new NbaPlayer(); $james -> name = 'James'; echo $james -> name.'<br />'; $james1 = clone $james; $james1 -> name = 'James1'; echo $james1 -> name.'<br/>'; echo $james -> name; 输出结果为:james还是james,james1变成了james1 如果是直接赋值:改变james1,james也跟着改变 想改变一个对象,但是又不想影响源对象,使用clone
    查看全部
  • 属性重载只能在对象中进行。在静态方法中,这些魔术方法将不会被调用。所以这些方法都不能被 声明为 static。从 PHP 5.3.0 起, 将这些魔术方法定义为 static 会产生一个警告。 不可访问属性,也包括虽然跟定义了没有访问权限 格式: __get()方法:这个方法用来获取私有成员属性值的,有一个参数,参数传入你要获取的成员属性的名称,返回获取的属性值,这个方法不用我们手工的去调用,因为我们也可以把这个方法做成私有的方法,是在直接获取私有属性的时候对象自动调用的。 __set()方法:这个方法用来为私有成员属性设置值的,有两个参数,第一个参数为你要为设置值的属性名,第二个参数是要给属性设置的值,没有返回值。
    查看全部
  • __call() 方法的重载 当对象访问不存在的方法名称时,__call()方法会被自动调用 格式:__call(string $function_name, array $arguments) 该方法有两个参数,第一个参数 $function_name 会自动接收不存在的方法名,第二个 $args 则以数组的方式接收不存在方法的多个参数。 __callStatic() 静态方法的重载,注意这个方法需要设定为static 当对象访问不存在的静态方法名称时,__callStatic()方法会被自动调用 格式: public static mixed __callStatic ( string $name , array $arguments ) $name 参数是要调用的方法名称。$arguments 参数是一个枚举数组,包含着要传递给方法 $name 的参数。 这两个方法在PHP里面也被成为方法的重载(overloading) 注意区分重写(overwrite) 通过这两个方法,同一个方法的名称的调用可以对应不同的方法实现
    查看全部
  • __tostring() 当对象呗当作String使用时,这个方法会被自动调用 echo $obj; __invoke(); 当对象被当作成员方法调用时,这个方法会被自动调用 $obj(4);
    查看全部
  • __construct() __destruct() __tostring() __invoke() __call() __callStatic() __get() __set() __isset() __unset() __clone()
    查看全部
    0 采集 收起 来源:章节简介

    2017-02-11

  • 接口里面的方法都是没有实现的,而类里面的方法都是有实现的 当接口中的某些方法对于所有的实现类都是一样的实现方法,只有部分方法需要用到多态的特性时,就会需要用到抽象类 abstract 关键字用于定义抽象类 在抽象方法前面添加abstract 关键字可以标明这个方法是抽象方法不需要具体的实现 抽象类中可以包含普通的方法,普通方法有方法的具体实现 继承抽象类的关键字是 extends 继承抽象类的子类需要实现抽象类中定义的抽象方法 抽象类不能被实例化 含有抽象方法的类肯定是抽象类,但不是所有的抽象类都必须包含抽象方法
    查看全部
  • 因为接口的方法实现可以有很多,所以对于接口里面定义的方法的具体实现是多种多样的,这种特性我们称为多态。
    查看全部
  • 接口就是把不同类的共同行为进行了定义,然后在不同的类里面实现不同的功能。 interface 关键字用于定义接口 接口里面的方法不需要有方法的实现,就是不用加{} implements 关键字用于表示类实现某个接口 实现了某个接口之后,必须提供接口中定义的所有方法的具体实现 接口不能被实例化 可以使用instanceof 关键字来判断某个对象是否实现了某个接口 可以使用extends 关键字让接口继承接口 当类实现子接口时,父接口定义的方法也需要在这个类里面具体实现
    查看全部
  • 在子类中用 parent 关键字可以访问父类中被子类重写的方法 例:parent::test(); 在类的内部可以使用$this -> 方法名 的方式访问自身的成员方法,也可以使用self::方法名 的方式访问。 有一个成员叫常量成员,使用const关键字定义。 访问常量成员使用self::常量名的方式访问
    查看全部
  • 子类中编写跟父类完全一致的方法可以完成对父类方法的重写 在成员方法前面添加 final 关键字能够让这个方法不能在子类中被重写 对于不想被任何类继承的类可以在 class之前添加 final 关键字
    查看全部
  • 静态 static
    查看全部
  • 当需要所有的实例共用一个成员的时候,会用到静态属性、静态方法 静态属性、静态方法定义时在访问控制关键字后面添加static关键字即可。 在类中使用静态成员的时候,用self关键字后面跟上::操作符即可,注意:在访问静态成员属性的时候,::后面需要跟$符号,访问静态方法则不需要。 在类的外部访问时,不需要实例化,直接使用类名跟上::操作符的方式。 在类的内部使用parent 关键字就能够访问父类的静态成员 例:echo parent::$sValue;
    查看全部
  • 在php中可以用 extends 关键字来表示类的继承,后面跟父类的类名。 在php中 extends 后面只能跟一个类的类名,这就是php的单继承原则。
    查看全部
  • 注意: 当我们拿到一个对象,要做引用赋值的时候注意&符号的区别: 有&:相当于创建了两个名字而已,没有生成新的引用,还是同一个引用 没有&:相当于是两个引用
    查看全部
    0 采集 收起 来源:本章小结

    2018-03-22

举报

0/150
提交
取消
课程须知
1、本门课程是立志想成为优秀程序员的必修课 2、基本概念部分适合所有人学习 3、实践部分则需要有基本的PHP知识,这样会更加有利于你对面向对象的理解和掌握
老师告诉你能学到什么?
1、面向对象的基本概念 2、面向对象的基本思路 3、面向对象的基本原则 4、类的概念和PHP实践 5、继承的概念和案例实践 6、接口的概念和案例实践 7、多态的概念和案例实践 8、PHP中的魔术方法基本实践
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!