php一些基础知识(很乱)

1. 命名空间: 声明命名空间的代码应该放在<?php 代码后的第一行, 作用封装和组织相关的php类,类似把相关的文件放在同一目录下一样
              子命名空间使用 \ 分割  
              同一空间的所有类没必要写在同一个php文件里

              厂商命名空间是最重要的命名空间,是最顶层的命名空间,用于识别品牌或组织,具有全局唯一性

2. 全局命名空间: 有些代码没有命名空间,而是在全局命名空间中,使用时要在类、函数、接口、常量前加上 \ 符号

3. 接口: 接口是两个面向对象之间的契约,目的不是让一个对象依赖另一个对象的身份,而是依赖另一个对象的能力
          接口把代码和依赖解耦,允许代码依赖任何实现接口的第三方代码。不关心第三方代码怎么样实现接口的,而关心有没有实现接口指定的方法。

4.  生成器简化版的迭代器,只能前进,不能倒退、快进或查找

5.  闭包===匿名函数,是Closure类的实例,闭包和字符串或整数一样是等值类型, 闭包对象实现了 __invoke 魔术方法,只要变量后有() php就会调用 __invoke 魔术方法

6.  Zend OPcache  字节码缓存,开启后能存储编译好的字节码,下次直接执行
    opcache.validate_timestamps = 0  参数为0是生成环境,代码改动不会影响执行结果  参数为1是开发环境,代码改动会立马生效,已测试验证过

7.  php 从5.4.0开始 内置的服务器对开发者是一个很好的工具,不需要搭建环境了, 但是不应该用于生成环境

8.  php不支持路由重写 需要借助Apache或nginx     

9.  DataTime 类提供了面向对象的接口,用于管理时间和日期,  createFromFormat() 静态方法可以按照自定义格式生成时间
        $datatime = DataTime::createFromFormat('自定义的格式','符合自定义格式的具体时间');

10. http://php.net/manual/zh  强制使用官方手册      

11. pdo: php database object php数据对象,php面向对象方式处理数据, dsn:data source name 数据源信息 mysql:host=127.0.0.1;dbname=xxx;port=3306;charset=utf8


12. 为避免处理多字节字符出错,可以安装mbstring 扩展, 不过通常情况下php文件要用utf-8的编码
    header('Content-Type: application/json;charset=utf-8');

13. 流的概念,最大的用处可以再流过程中处理数据,检索关键字、替换脏字等,很强大,要使用起来

14. 注册全局错误处理程序 set_error_handler() 

15. 设计模式和面向对象的关系 就相当于 for循环和面向过程的关系一样, 要重用,低耦合高内聚

16. 设计模式的目的就是复用、专一、解耦、解除依赖(不同职能类之间不能有依赖关系)

17. 一定要使用错误报告,在php.ini中设置或在类中加入: ini_set("display_errors","1");ERROR_REPORTING(E_ALL);

18. 接口不能传递变量但是可以传递常量, 接口中定义:const HOST = 'localhost'; 在实现类中使用: 接口名::HOST

19. 强制类型转换要绑定到接口而不绑定到实现类,解除依赖,任何一个实现类都可以被其他实现类替代

20. 设计模式是建立对象之间的通信链路又不破坏封装性

21. 为了保持类之间的松绑定,通常继承抽象类,且继承一层, 应该尽量使用对象的组合,而不类的继承

22. 设计模式不仅仅是描述类和对象之间的组织模式,还描述了类和对象之间的通信

23. 聚合和相识相似不过关系更强,接口或抽象类的作用是在模式中提供松绑定

24. 对象不应该和对象的创建过程紧密结合,出现了工厂模式

25. 克隆不会启动构造函数的动作,不能依赖于构造函数的输出或返回的结果

26. ——autoload 尝试加载未定义的类,在实例化非本文件类的时候自动加载以类名为名称的文件
    spl_autoload_register — 注册给定的函数作为 __autoload 的实现,如果没有实现,则默认调用spl_autolaod ,自动包含类名称的文件,
    spl_autoload_register 可以按顺序注册多个__autoload函数,且可以抛出异常,更加灵活

27.  适配器模式:类适配器(继承类实现接口,或接口实现多态),对象适配器

28.  装饰器模式,客户端包含组件接口的一个引用,松耦合,在为现有对象增加或删除功能时使用,
     一个抽象类继承另一个抽象类,并且第二个抽象类的构造函数中引用一个组件类型
     原来:一个接口,简单的类实现这个接口,实现基本功能
     现在:原来的接口,一个抽象类实现这个接口(装饰器),新的类继承这个抽象类,拥有接口类型的引用
           把简单类的对象传递给新的类就可以实现功能的改变,达到装饰器的效果

有机会好好整理下,不定时补充基础知识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值