PHP核心技术与最佳实践学习(一)面向对象

原创 2015年11月17日 20:47:44

类和对象

类是定义一系列属性和操作的模版
对象把属性具体化
对象就是数据,对象本身不包含方法,但是对象有一个指针指向一个类
类和对象不可分割,有对象就必然有一个类与其对应
特殊情况:由标量进行强制类型转换的object,没有一个类和它对应,这时PHP中有一个类叫stdClass就会收留这个对象

魔术方法

魔术方法用'__'开头
__construct 构造函数 __destruct 析构函数
__set 和 __get 对对象属性赋值或者取值
__call 和 __callStatic 调用不存在的方法或静态方法时调用
    __call($name , $arguments)要调用的方法名称和参数数组
__toString() 如果类定义了该方法,那么在echo 对象是会调用该方法

继承

继承与多态都是对类进行复用,一个是类级别的复用,一个是方法级别的复用
继承 class person{} class family extends person{}
    调用父类参数、方法 parent::$a parent::fun()
    调用自身参数、方法 self::$a self::fun()
如果声明类成员或方法为static 就可以不实例化类而直接访问
对于不是专门用于被继承的类,禁止其被继承,使用final修饰符
优秀考虑用组合关系提高代码的可重用性
底层代码多用组合,顶层/业务层代码多用继承
Traits既可以使单继承模式的语言获得多继承的灵活,又可以避免多继承带来的种种问题

多态

含义:同一类的对象收到相同消息时,会得到不同的结果。
真正意义:多态性是一种通过多种状态或阶段描述相同对象的编程方式,实际开发中,只要关心一个接口或基类的编程,而不是关心一个对象所属于的具体类。
多态的本质就是if else
通过接口可以实现PHP多态

接口

接口这样描述自己:对于实现我的所有类,看起来都应该像我现在这个样子
interface xxx {方法定义}  class yyy implements xxx{具体实现} yyy去具体实现xxx中的定义的方法
接口为抽象而生

反射

反射指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类、方法、属性、参数等详细信息,包括注释。

异常和错误处理

异常和错误是两个概念
PHP通常是无法自动捕获有意义的异常,它把所有不正常的情况都视为错误,只有你主动throw后,才能捕获异常。
PHP中通过重写异常类、手动抛出错误的方式进行异常处理
PHP错误就是会使脚本运行不正常的情况
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

读书随码《php核心技术与最佳实践》面向对象的形与本

<?php /** * Created by yijie wang on 2015-11-12 13:11:59 */ class Person { ...

《PHP核心技术与最佳实践》读书笔记(面向对象篇)

对象 php的对象是用数组模拟的,可以强制类型转换之后打印出来。print_r((array)$student); 由此可见对象是一堆数据。所以可以把一个对象存储起来,以便需要时用,也就是对象的序列化...

深入理解PHP高级技巧、面向对象与核心技术之调整浏览器缓存

缓存页面是保存页面的内容的一种方式,然后在产生请求时提供这个保存的页面版本,而不是服务器上的版本。 对于动态的、PHP驱动的站点,有时我们需要确保终端用户获得的是最新的版本。 利用PHP的header...

《php核心技术与最佳实践》笔记7

面向对象的设计原则 五大原则包括:单一职责原则,接口隔离原则,开放-封闭原则,替换原则,依赖倒置原则。 单一职责原则(SRP)的含义是:1.避免相同的原则分散到不同的类中;2.避免一个类承担太多的职责...

《php核心技术与最佳实践》笔记2

关于php中的魔术方法 魔术方法是以"__"开头的、具有特殊作用的一些方法​,可以看做php的语法糖。语法糖定义,还有语法盐,语法糖精,维基百科上都有。​ 语法糖(Syntactic sugar)...

《php核心技术与最佳实践》笔记6

关于PHP中的异常及错误处理 如果没有异常及错误处理机制,我们处理这些问题的时候,需要采用if...else的机制,这会使我们的代码变得冗长且不利于阅读,这时候,我们需要一些异常或者错误让我们必须去...

PHP核心技术与最佳实践之正则表达式匹配规则

PHP核心技术与最佳实践之正则表达式匹配规则 本文介绍几种常用的匹配规则。 1.     字符组 查找数字、字母、空白很简单,因为已经有了对应这些集合的元字符,但是如果匹配没有预定义元字符的字符...

PHP核心技术与最佳实践之Hash表冲突

PHP核心技术与最佳实践之Hash表冲突 接着上一篇文章,测试后输出value1value2.当 $ht->insert(‘key12’,’value12’); Echo $ht ->find(‘ke...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)