随笔分类 -  PHP

摘要:一、打开https://getcomposer.org/download/,按提示用命令行下载,或直接网页下载,如下图: 二、打开Macbook命令行工具,输入下面二行安装命令 创建目录:sudo mkdir -p /usr/local/bin 安装composer命令 安装为全局命令(移动comp 阅读全文
posted @ 2021-07-21 18:26 瑾琛 阅读(627) 评论(0) 推荐(0)
摘要:1、附近的人 //获取该点周围的4个点 $distance = 1;//范围(单位千米) $lat = 113.873643; $lng = 22.573969; define('EARTH_RADIUS', 6371);//地球半径,平均半径为6371km $dlng = 2 * asin(sin 阅读全文
posted @ 2021-07-08 11:11 瑾琛 阅读(237) 评论(0) 推荐(0)
摘要:github源码地址: git@github.com:ZQCard/design_pattern.git 1.简单工厂模式 特点:将调用者与创建者分离,调用者直接向工厂请求,减少代码的耦合.提高系统的可维护性与可扩展性. 缺点:当要修改类的时候,工厂类也需要做出相对应的更改,违反了开闭原则(对于扩展 阅读全文
posted @ 2021-06-24 19:28 瑾琛 阅读(52) 评论(0) 推荐(0)
摘要:需求:分别用 冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中 的值按照从小到的顺序进行排序。 $arr = [11,3,56,62,21,66,32,78,36,76,39,88,34]; 1、冒泡排序法介绍:冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排 阅读全文
posted @ 2021-03-25 14:41 瑾琛 阅读(91) 评论(0) 推荐(0)
摘要:首先,我们还是先了解下相关的数据结构,为下面的内容打好基础 哈希表 哈希表,顾名思义,即将不同的关键字映射到不同单元的一种数据结构。而将不同关键字映射到不同单元的方法就叫做哈希函数 理想情况下,经过哈希函数处理,关键字和单元是会进行一一对应的;但是如果关键字值足够多的情况下,就容易出现多个关键字映射 阅读全文
posted @ 2021-03-22 11:56 瑾琛 阅读(222) 评论(0) 推荐(0)
摘要:前言 平时经常听到大牛说到的gc,就是垃圾回收器,全称Garbage Collection。 早期版本,准确地说是5.3之前(不包括5.3)的垃圾回收机制,是没有专门的垃圾回收器的。只是简单的判断了一下变量的zval的refcount是否为0,是的话就释放否则不释放直至进程结束。 乍一看确实没毛病啊 阅读全文
posted @ 2021-02-26 18:05 瑾琛 阅读(184) 评论(0) 推荐(0)
摘要:抽象类 官方描述请查看文档,下面是官方描述的梳理版本: 定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。 (抽象类可以没有抽象方法,但是抽象类依然不能被实例化)被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。 阅读全文
posted @ 2021-02-26 18:03 瑾琛 阅读(98) 评论(0) 推荐(0)
摘要:上一小节我们简单介绍了从PHP代码解析为抽象语法树的过程,这一节我们再介绍下从 抽象语法树->Opcodes 的过程。 语法解析过程的产物保存于CG(AST),接着zend引擎会把AST进一步编译为 zend_op_array ,它是编译阶段最终的产物,也是执行阶段的输入,后面我们介绍的东西基本都是 阅读全文
posted @ 2021-01-28 14:48 瑾琛 阅读(339) 评论(0) 推荐(0)
摘要:词法解析、语法解析 这一节我们分析下PHP的解析阶段,即 PHP代码->抽象语法树(AST) 的过程。 PHP使用re2c、bison完成这个阶段的工作: re2c: 词法分析器,将输入分割为一个个有意义的词块,称为token bison: 语法分析器,确定词法分析器分割出的token是如何彼此关联 阅读全文
posted @ 2021-01-28 14:33 瑾琛 阅读(608) 评论(0) 推荐(0)
摘要:PHP代码的编译 PHP是解析型高级语言,事实上从Zend内核的角度来看PHP就是一个普通的C程序,它有main函数,我们写的PHP代码是这个程序的输入,然后经过内核的处理输出结果,内核将PHP代码"翻译"为C程序可识别的过程就是PHP的编译。 那么这个"翻译"过程具体都有哪些操作呢? C程序在编译 阅读全文
posted @ 2021-01-28 14:32 瑾琛 阅读(160) 评论(0) 推荐(0)
摘要:常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变。常量默认为大小写敏感。通常常量标识符总是大写的。 常量名和其它任何 PHP 标签遵循同样的命名规则。合法的常量名以字母或下划线开始,后面跟着任何字母,数字或下划线。 PHP中的常量通过define()函数定义: def 阅读全文
posted @ 2021-01-28 14:26 瑾琛 阅读(106) 评论(0) 推荐(0)
摘要:2.4 全局变量 PHP中把定义在函数、类之外的变量称之为全局变量,也就是定义在主脚本中的变量,这些变量可以在函数、成员方法中通过global关键字引入使用。 function test() { global $id; $id++; } $id = 1; test(); echo $id; 2.4. 阅读全文
posted @ 2021-01-28 14:25 瑾琛 阅读(339) 评论(0) 推荐(0)
摘要:静态变量 PHP中局部变量分配在zend_execute_data结构上,每次执行zend_op_array都会生成一个新的zend_execute_data,局部变量在执行之初分配,然后在执行结束时释放,这是局部变量的生命周期,而局部变量中有一种特殊的类型:静态变量,它们不会在函数执行完后释放,当 阅读全文
posted @ 2021-01-28 12:28 瑾琛 阅读(111) 评论(0) 推荐(0)
摘要:2.2 数组 数组是PHP中非常强大、灵活的一种数据类型,它的底层实现为散列表(HashTable,也称作:哈希表),除了我们熟悉的PHP用户空间的Array类型之外,内核中也随处用到散列表,比如函数、类、常量、已include文件的索引表、全局符号表等都用的HashTable存储。 散列表是根据关 阅读全文
posted @ 2021-01-28 12:26 瑾琛 阅读(90) 评论(0) 推荐(0)
摘要:变量的内部实现 变量是一个语言实现的基础,变量有两个组成部分:变量名、变量值,PHP中可以将其对应为:zval、zend_value,这两个概念一定要区分开,PHP中变量的内存是通过引用计数进行管理的,而且PHP7中引用计数是在zend_value而不是zval上,变量之间的传递、赋值通常也是针对z 阅读全文
posted @ 2021-01-28 12:25 瑾琛 阅读(67) 评论(0) 推荐(0)
摘要:深入理解Zend执行引擎(PHP5) PHP:一种解释型语言 PHP经常会被定义为“脚本语言”或者是“解释型语言”,什么是“解释型语言”呢? 所谓“解释型语言”就是指用这种语言写的程序不会被直接编译为本地机器语言(native machine language),而是会被编译为一种中间形式(代码), 阅读全文
posted @ 2021-01-28 12:24 瑾琛 阅读(512) 评论(0) 推荐(0)
摘要:1.2 PHP的构成 源码下有几个主要的目录:SAPI、main、Zend、ext。 具体过程是:浏览器< >SAPI< >main< >Zend,Zend在解析的过程中会加载ext扩展 ●SAPI是PHP的应用接口层,为了适配不同的应用环境,是整个PHP框架最外层的一部分。最常用的SAPI是Cli 阅读全文
posted @ 2021-01-28 12:22 瑾琛 阅读(84) 评论(0) 推荐(0)
摘要:1.3 FPM 1.3.1 概述 FPM(FastCGI Process Manager)是PHP FastCGI运行模式的一个进程管理器,从它的定义可以看出,FPM的核心功能是进程管理,那么它用来管理什么进程呢?这个问题就需要从FastCGI说起了。 FastCGI是Web服务器(如:Nginx、 阅读全文
posted @ 2021-01-28 12:20 瑾琛 阅读(179) 评论(0) 推荐(1)
摘要:需求里结算首页需要按门店的首字母A-Z排序。我的数据结构原本是这样的: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 阅读全文
posted @ 2021-01-28 11:55 瑾琛 阅读(274) 评论(0) 推荐(0)
摘要:1,php闰年计算方法一:①、普通年能被4整除而不能被100整除的为闰年。(如2004年就是闰年,1900年不是闰年) ②、世纪年能被400整除而不能被3200整除的为闰年。(如2000年是闰年,3200年不是闰年) 1 2 3 4 5 6 7 8 9 10 11 12 $year=mt_rand( 阅读全文
posted @ 2021-01-27 19:04 瑾琛 阅读(603) 评论(0) 推荐(0)