设为首页 收藏本站
查看: 1830|回复: 0

[经验分享] 学习小笔记

[复制链接]

尚未签到

发表于 2018-12-18 09:31:08 | 显示全部楼层 |阅读模式
  PHPStorm IDE
  开发字体选用:Source Code Pro , Courier New , Concolas
  

  

  php命名空间 :可以解决 不同类中 相同名字方法的冲突
  namespace test1;
  function test(){
  
  

  自动载入  :      
  function  __autoload($class){
     require  __DIR__.'/'$class.'.php';
  }
  

  spl_autoload_register(); 这个函数,可以允许多个 autoload 必须现在头一行
  例如 :
  spl_autoload_register('autoload1');
  spl_autoload_register('autoload2');
  function  autoload1($class){
     require  __DIR__.'/'$class.'.php';
  }
  function  autoload2($class){
     require  __DIR__.'/'$class.'.php';
  }
  require 以后 类名::方法名调用();
  例如:Test1::test();Test2::test();
  

  PSR-0规范
  

  1 php的命名空间必须于绝对路径一致
  2 类名与文件名一致 的首字母必须大写
  3 除了路口文件外,其他".php"必须只有一个类不能有可执行代码 例如:echo();
  __DIR__       魔术常量 获取当前文件的路径
  __FUNCTION__  魔术常量 获取当前方法
  __METHOD__    魔术常量 获取当前类名和方法
  BASEDIR       网站根目录
  

  spl 标准简介
  

  SplStack(); 先进后出  站式数据结构
  $stack=new SplStack();
  $stack->push("test1");   //先进 入站
  $stack->push("test2");   //先进
  echo $stack->pop();      //后出 出站 test2
  echo  $stack->pop();     //后出      test1
  

  SplQueue(); 先进先出  队列式数据结构
  $SplQueue=new SplQueue();
  $SplQueue->enqueue("test1");   //先进
  $SplQueue->enqueue("test2");   //先进
  echo $SplQueue->dequeue();           //先出 test1
  echo $SplQueue->dequeue();           //先出 test2
  

  SplMinheap();   堆式数据结构
  $SplMinheap=new SplMinheap();
  $SplMinheap->insert('test1');
  $SplMinheap->insert('test2');
  echo $SplMinheap->extract();   test1
  echo $SplMinheap->extract();   test2
  

  $sqlFixedArray();    固定尺寸的数组 (固定长度)
  $array= new $sqlFixedArray(10);(括号中设置数据长度)
  $array['0']=1;
  $array['8']=8;
  

  PHP链试 操作的实现  好处就是可以用一行代码来实现很多的功能
  

  $ob->where()->order()->limit()->select();
  

  PHP 面向对象高级特性
  

  PHP 魔术方法的使用
  1 __get/__set               //将对象的首信进行接管
  2 __call/__callStatic       //用来控制PHP的方法调用/控制类的静态方法调用
  3 __toString               //将一个PHP对象转换成字符串
  4 __invoke                 //将PHP当成函数来使用
  

  打印出来的结果是 不管下标1-7有没有值 都会打印出来 没值的自动给个空值
  

  

  PHPstorm 配置安装
  http://blog.csdn.net/ikscher/article/details/43672365
  

  三种 基本设计模式
  

  工厂模式 : 工厂方法或者类 来生成对像,而不是在代码中直接new 代替new
  好处 :就是万一发生更改 只改一个工厂模式类就可以了
  

  单例模式 : 使某个类的对象仅允许创建一次
  好处 :无论需要多少个实例对象 实际上只连接了数据库一次
  

  注册模式 : 全局共享交换对象  与工厂模式配合更好
  好处 :全局共享交换对象
  

  注册树与工厂模式共同试用 可以减少 对内存资源的浪费。因为调用的是同一个对象。还可以添加数据对
  

  象映射模式 减少对数据库的直接操作 操作的是类库的属性
  

  适配器模式
  

  让不同的接口封装成统一的API
  PHP 类是单继承,也就是不支持多继承,当一个类需要多个类的功能时,继承就无能为力了,为此 PHP 引
  

  入了类的接口技术。
  

  如果一个抽象类里面的所有方法都是抽象方法,且没有声明变量,而且接口里面所有的成员都是 public
  

  权限的,那么这种特殊的抽象类就叫 接口 。
  
  接口使用关键字 interface 来定义,并使用关键字 implements 来实现接口中的方法,且必须完全实现。
  
  策略模式 将一组特定的行为和算法封装成类,以适应某些特定的上下文环境,这种模式就是策略模式
  

  例如判断用户的男女给予不同的需求
  先写出 男的需求 然后再写出女的需求
  根据传输的值 决定调用那个需求 而不再用繁琐的判断来实现 更改的话只要再写一种需求就好了
  

  数据对象影射模式
  1 数据对象映射模式,是将对象和数据存储映射起来,对一个对象的操作会映射为对数据储存的操作
  

  观察者模式 当一个对象状态发生改变时,依赖它的对象会全部接到通知 并自动更新 用处 当一个事件发
  

  生的时候 与其关联的都可以写在观察者类里
  

  原型模式 与工厂模式作用类似,都是用来创建对象的
  与工厂模式的实现不同,原型模式是事先创建好一个原型对象,然后通过clone原型对象来创建新的对象。
  

  这样就免去了类创建时的初始化操作
  原型模式适用于大对象的创建。创建一个大对象需要很大的开销,如果每次new就会消耗很大,原型模式仅
  

  需内存拷贝即可。
  用处:比如建立的一个类对象中涉及到很多循环之类的 在new了以后 下次调用的时候 直接克隆这个对象
  

  而不是继续new
  

  装饰器模式 装饰器模式(Decorator),可以动态的添加修改类的功能 一个类提供了一项功能,如果在修改
  

  并添加了额外的功能,传统的编辑模式,需要写一个子类继承它,并重新实现类的方法
  使用装饰器模式,仅需在运行时添加一个装饰器对象即可实现,可以实现最大的灵活性。
  

  迭代器模式 在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素
  相比于传统编程模式,迭代器模式可以隐藏遍历元素的所需要的操作
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-652692-1-1.html 上篇帖子: PHP 模拟多进程 下篇帖子: 手动编译Mysql5.6.10 手动编译php 支持fastcgi
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表