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

PHP面向对象编程

Peter 其它
难度初级
时长 3小时14分
  • abstract class 抽象类
    查看全部
  • 面向对象 1,识别对象 2,识别对象的属性 3,识别对象的行为
    查看全部
  • 调用clone时自动调用__clone()方法 $james = new NbaPlayer(); //$ja0 对应内存地址(假设为 address0 )中存储的是 james对象的标识符 $james2 = clone $james; //当希望生成一个真正独立存储的 NbaPlayer() 对象,但新对象的 所有数据 都和 $james 对象中的 相同时,使用关键字 clone 当class NbaPlayer()中定义了 __clone()方法 后,使用clone关键字时,系统将调用 用户定义的__clone()方法 (此时可以对clone 后生成的新对象的属性进行修改) 想改变一个对象,但是又不想影响源对象,使用clone __clone()方法的使用。__clone()在 clone一个new的变量时 希望和clone过来的初始值不一样可以用这个函数在下面$this->name = "tbd";去实现克隆后的初始值不一样的效果。 魔术方法__clone()可以自定义复制后对象的属性初期值,使被复制的对象的一些属性不被复制过去。 使用&指向同一个堆栈空间,实际上还是一个对象,直接赋值就变成了两个对象,但是一个属性值改变时另外属性值也会发生改变,如果用clone进行复制的话,两个对象之间操作不受任何干扰,相互完全独立。 0.对象复制可以通过 clone 关键字来完成 1.当对象复制完成时,如果定义了 __clone() 方法,则复制生成的对象中的 __clone() 方法会被调用,可用于修改属性的值 1.$jame1= clone $jame; 2.$jame1不想复制$jame的所有内容,可以在$jame内使用魔术变量__clone() 在这里面可以自定义修改克隆的内容 $obj1 = $ojb; 不能实现对象复制,两个对象变量指向同一对象 $obj1 = clone $obj; 实现对象复制,变成值相同的两个对象 调用clone时自动调用__clone()方法
    查看全部
  • 3.__isset()方法:当【不可访问属性】调用isset()或empty()时,此方法被调用  ·调用示例:public function __isset($name){} 4.__unset()方法:当【不可访问属性】调用unset()时,此方法被调用  ·调用示例:public function __unset($name){} 对不可访问属性调用isset()和empty()时,会触发__isset()魔术方法,注意isset和empty不是相反的关系,isset判断的是值是否被定义过,empty认为没定义过的返回true http://img1.sycdn.imooc.com//58494123000180e112800720.jpg isset(),empty():__isset(); unset():__unset(); __get方法如果不返回值的话empty()就一直返回true,在empty()调用时会先调用__isset再调用__get,__isset返回false,empty()就与之相反取true而不会调用__get,__isset返回true,就会调用__get,当有返回值时相当于true,所以结果为false,这相当于一个或关系。empty(false|true) = true|false = true,empty(true|true)=false|false=false。
    查看全部
  • 接口里面的方法都是没有实现的,而类里面的方法都是有实现的。抽象类,允许类里面一部分方法不实现。
    查看全部
  • 在给不可访问属性赋值时,__set()会被调用 定义function __set($name,$value) 读取不可访问属性的值时,__get()会被调用 定义function __get($name) 当对不可访问属性调用isset()或empty()时,__isset()会被调用 当对不可访问的属性调用unset()时,__unset()会被调用 所谓不可访问属性,实际上就是在调用某个属性时发现这个属性没有被定义,这时候不同的操作会触发不同的魔术方法 这几个方法也被成为属性重载的魔术方法 属性重载只能在对象中进行。在静态方法中,这些魔术方法将不会被调用。所以这些方法都不能被 声明为 static。从 PHP 5.3.0 起, 将这些魔术方法定义为 static 会产生一个警告。 不可访问属性,也包括虽然跟定义了没有访问权限 格式: __get()方法:这个方法用来获取私有成员属性值的,有一个参数,参数传入你要获取的成员属性的名称,返回获取的属性值,这个方法不用我们手工的去调用,因为我们也可以把这个方法做成私有的方法,是在直接获取私有属性的时候对象自动调用的。 __set()方法:这个方法用来为私有成员属性设置值的,有两个参数,第一个参数为你要为设置值的属性名,第二个参数是要给属性设置的值,没有返回值。
    查看全部
  • 1.__call()方法:当对象访问不存在的方法名称时,此方法自动调用。 ①调用示例:public function __call($name,$argument){} ②注意:访问控制关键字必须为public;必须有两个参数:对象访问的方法名称($name)、方法包含的参数($argument,数组)。 2.__callStatic()方法:当对象访问不存在的方法名称时,此方法自动调用。 ①调用示例:public static function __callStatic($name,$argument){}<br> ②注意:同1-②;此方法为静态方法(static)。 3.这两种方法也被称为方法的重载。通过这两个方法,同一个方法的调用可以对应不同的方法的实现(同一个方法的静态调用、动态调用对应不同的方法实现) 如果不设置该魔术方法,调查不存在的方法将会报错 这是overloading覆盖,不是overwrite重写 __call()的第二个变量参数是调用'runTest'方法时传入的参数。以数组的形式组合在其中; http://img1.sycdn.imooc.com//58493a030001330912800720.jpg implode(,$arr)将数组用","分隔开输出
    查看全部
  • 1.__tostring()方法:对象被当作string(字符串)使用时(如echo $obj),此方法自动调用,此方法中须返回(return)一个字符串 2.__invoke()方法:对象被当作方法调用时(如$obj()),此方法自动调用 http://img1.sycdn.imooc.com//58ac50c70001656812800720.jpg
    查看全部
  • _tostring(),当对象被当做String使用时,这个方法会被自动调用,如: echo $obj; __invoke(),当对象被当成方法调用时,这个方法会被自动调用,如:$obj(4);__invoke()方法可以有多个参数,也可以没有参数,自行定义 __call(),当对象访问不存在的方法的时候,该方法会自动被调用,定义该方法时,有固定的写法:public function __call($name, $arguments){},第一个的参数传递的是调用的不存在的方法名称,第二个参数相当于一个数组,保存了调用方法时传递的参数. __callStatic(),当对象访问不存在的静态方法名称时,该方法会自动被调用,定义该方法时,有固定的写法:public static function __callStatic($name,$arguments){}, 可以看出,__call()和__callStatic()方法实现了重载(overload)功能。 __set($name,$value),在给不可访问的属性()属性没有定义或者是私有数据)赋值时会被调用 __get($name),读取不可访问的属性的值时会被调用 __isset($name),判断属性是否存在,当对不可访问的属性调用isset($name)(判断是否存在)或empty($name)(判断是否不存在)时会被 调用 __unset(),当对不可访问的属性调用unset()时会被调用 __clone(),当要复制一个对象给新的对象,并且两个对象分别指向两个地址,而不是引用的时候调用该方法。这个方法可以不用自己定义, 是原原本本的复制,也可以自己定义,修改某些属性值。如:新对象名 = clone 原对象名;
    查看全部
    0 采集 收起 来源:章节简介

    2017-04-09

  • _construct():构造方法;功能:给类的成员属性赋初值。 __destruct():析构方法; 功能:对象资源释放。 __tostring():快速获取字符串信息;功能:当我们调试程序时,需要知道是否得出正确的数据。比如打印一个对象时,看看这个对象都有哪些属性,其值是什么,如果类定义了toString方法,就能在测试时,echo打印对象体,对象就会自动调用它所属类定义的toString方法,格式化输出这个对象所包含的数据。 __invoke():当尝试以调用函数的方式调用一个对象时,__invoke方法会被自动调用。功能:防止用调用对象为成员方法报错。 __call():和__get相似带两参数。功能:可以在需要的时候调用私有方法和属性。
    查看全部
    0 采集 收起 来源:章节简介

    2017-04-09

  • 1.parent关键字 可以可用于 调用父类中 被子类重写的方法 2.self关键字 可以用于访问 类自身的 成员方法,静态成员(静态属性+静态方法) 和 类常量;但 不能用于 访问类自身的 非静态属性(非静态属性 会根据 不同的对象的赋值 而不同,非静态方法 不存在这个问题)!!! self 在 使用常量时 不需要在 常量const名称 前面添加$符号 3.static::关键字用于访问类自身定义的静态成员,访问静态属性时 需要在属性 前面 添加$符号。 4.常量属性const 不能使用对象访问,仅能使用类访问,在类本体内 可以使用“self::常量名”,在类本体外 可以使用“类名::常量名”
    查看全部
  • 1.abstract关键字用于定义抽象类 2.在抽象方法前面添加abstract关键字可以标明这个方法是抽象方法不需要具体实现{} 3.抽象类中可以包含普通的方法,有方法的具体实现。 4.继承抽象类的关键字是extends 5.抽象类不能被实例化,继承抽象类的子类需要实现抽象类中定义的抽象方法 6.抽象类比较特殊。但是它和接口一样。不能直接把对象实例化。通过共性来规范化类。 格式: abstract class classname 7.抽象方法abstract public function A(); http://img1.sycdn.imooc.com//58ac06450001e27512800720.jpg
    查看全部
  • * 重写和Final * 1. 子类中编写跟父类完全一致的方法可以完成对父类方法的重写 * 2. 对于不想被任何类继承的类可以在class之前添加final关键字 * 3. 对于不想被子类重写(overwrite, 修改)的方法,可以在方法定义前面添加final关键字
    查看全部
  • ::用于访问类的静态成员
    查看全部
  • 静态属性定义时在访问控制关键字后面添加static。
    查看全部

举报

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

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