zoukankan      html  css  js  c++  java
  • php基础知识

    php基本概念:服务端脚本语言,底层是由c实现的

    php语言的整体架构:

    • Application:php程序
    • SAPI:服务端应用编程接口(让php和外围交换数据[PHP通过mod_php5.so模块和Apache相连])
    • Extensions扩展(扩展库)
    • Zend引擎(将php翻译成一种叫opcode的中间语言){实现了基本的数据结构(如hashtable、oo)、内存分配及管理、提供了相应的api方法供外部调用,是一切的核心}
    •   执行流程:
      1. 词法分析,将php代码转换成语言片段
      2. 语法分析,转化成有意义的表达式
      3. 将表达式编译成opcode
      4. 执行opcode

    cgi、php-cgi、fastcgi、php-fpm关系:

    1. Web Server 一般指Apache、Nginx、IIS、Lighttpd、Tomcat等服务器,
    2. Web Application 一般指PHP、Java、Asp.net等应用程序。
    • CGI:是 Web Server 与 Web Application 之间数据交换的一种协议。
    • FastCGI:同 CGI,是一种通信协议,但比 CGI 在效率上做了一些优化。同样,SCGI 协议与 FastCGI 类似。
    • PHP-CGI:是 PHP (Web Application)对 Web Server 提供的 CGI 协议的接口程序。
    • PHP-FPM:是 PHP(Web Application)对 Web Server 提供的 FastCGI 协议的接口程序,额外还提供了相对智能一些任务管理。

    swoole为什么可以加速

      swoole解决了重复加载文件的问题,还提供了其他功能(协程)

    require和include的区别

      require:发出警告报错,后续程序不会执行

      include:发出警告,后续程序会执行

      include_once、require_once:不确定文件是否被加载的时候用

    垃圾回收机制(释放的是堆内存,因为栈是内存地址)

      目的:是一种动态的储存分配方案

      申请流程:

    1. 每一个内存对象都会分配一个计数器
    2. 被引用+1,撤销unset后-1
    3. 当计算器值=0,对他进行摧毁

    php的自动加载原理和实现分类

       spl_autoload_register:自定义的加载方法,可以加载多次(推荐使用)

       __autoload():系统提供,不能改,..只能加载一次

      有异曲同工之妙

    composer加载php文件的原理

      namespace=》文件目录的映射

    1. 通过composer.json的autoload->psr4对地址进行映射绑定,记录在autoload_psr4文件,通过autoload_static记录命名空间的规则(长度记录)
    2. 在使用的时候,composer核心代码底层中通过spl_autoload_register加载不同组建的命名规则
  • 相关阅读:
    利用AspNetPager控件实现数据分页(存储过程)
    System.Reflection
    规范管理提高效率——国内主要api接口文档工具盘点
    文件管理命令
    操作系统磁盘分区
    实体类配置(Entity)
    SpEL语法
    杂乱无章
    从struts2源码学到的技巧
    Spring基于注解的缓存配置
  • 原文地址:https://www.cnblogs.com/8013-cmf/p/12619442.html
Copyright © 2011-2022 走看看