组件

现代的 PHP 较少使用庞大的框架,而是更多地使用具有互操作性的专门组件制定解决方案。开发新 PHP 应用时,我很少直接使用 Laravel 或 Symfony,而是思考能把哪些现有的 PHP 组件结合…

PHP 内核中的 HashTable 分析

HashTable 是 PHP 的灵魂,因为在 Zend 引擎中大量地使用了 HashTable,如变量表、常量表、函数表等,这些都是使用 HashTable 保存的,另外 PHP 的数组也是使用 HashTable 实现的。 PH…

PHP 内核中的变量

PHP 变量在内核中的存储方式 在 Zend 引擎中是怎么可以做到一个变量保存任何的数据类型呢?打开 Zend/zend.h 头文件,会发现以下一些结构体: typedef struct _zval_struct zval; typed…

PHP 新特性

现代的 PHP 语言有很多令人兴奋的新特性,这些新特性让 PHP 语言变成了一个强大的平台,为构建 Web 应用和命令行工具提供了愉快的体验。 这些特性中有些不是必不可少的,不过能让我们…

PHP 笔试猴子选大王

猴子选大王是一个典型的编程问题,一般可用链表(可以用很大的数)或者 while 循环(使用此办法不能用太大的数)解决。 问题描述 n 只猴子围坐成一个圈,按顺时针方向从 1 到 n 编号。…

PHP 四种基础算法

一. 冒泡排序 冒泡排序步骤如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会…

PHP 加解密函数

超好用的一对 PHP 加解密函数。 /** * 加密函数 * @author zhuhz * @param string $string 需要加密的字符串 * @param string $key 密钥 * @return string 返回加密结果 */ function e…

PHP 实现 Hash 表

Hash 表(HashTable)又称散列表,通过把关键字 Key 映射到数组中的一个位置来访问记录,以加快查找的速度。这个映射函数称为 Hash 函数,存放记录的数组称为 Hash 表。 Hash 表结构 H…

Redis 使用与实践

Redis 是 Key-Value 类型的内存数据库,支持 String、List、Set、Sorted Set、Hash 等数据类型,支持 Snapshottiong(快照)和 Append-Only file(追加)两种数据持久化方式,支持主从…

PHP cURL 扩展库

cURL 是一个通用的库,并非 PHP 独有。PHP cURL 扩展库 是一个封装的函数库。可以用来模拟浏览器和服务器进行交互,功能比较强大。 1. 建立 cURL 请求 <?php // 1. 初始化 $ch …