
PHP/Zend
文章平均质量分 67
盘古大叔
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
spl_autoload_register 实现类的自动加载
include.php <?php $include = array('test'); set_include_path(get_include_path() . PATH_SEPARATOR .implode(PATH_SEPARATOR, $include)); class Loader { /** * 自动加载类 * @param $class 类名原创 2013-10-16 15:07:29 · 706 阅读 · 0 评论 -
【PHP内核】运算符:instanceof的内核实现
PHP中有个类型运算符instanceof 用于确定一个 PHP 变量是否属于某一类 class原创 2016-04-07 20:39:30 · 2267 阅读 · 0 评论 -
【PHP笔记】 zend常用数据结构及宏
1、zend_execute_data:opcode执行期间非常重要的一个结构,记录着当前执行的zend_op、返回值、所属函数/对象指针、符号表等 //Zend/zend_compile.h struct _zend_execute_data { const zend_op *opline; /* executed opline原创 2016-03-13 16:15:44 · 1667 阅读 · 0 评论 -
PHP7哈希表(数组)的内核实现
PHP7+内部哈希表,即PHP强大array结构的内核实现。哈希表是PHP内部非常重要的数据结构,除了PHP用户空间的Array,内核也随处用到,比如function、class的索引、符号表等等都用到了哈希表。关于哈希结构PHP7+与PHP5+的区别可以翻下[nikic]早些时候写的一篇文章,这里不作讨论。原创 2016-12-01 12:06:52 · 5873 阅读 · 1 评论 -
PHP函数执行超时控制扩展(for php7+)
函数级控制PHP函数的执行时间,超时终止执行,支持毫秒级配置,在call_user_func()基础上加了超时控制机制。 源码:https://github.com/pangudashu/timeout 版本 v1.0.0 环境&依赖 OS: linuxVersion: PHP 7.0.0及以上SAPI: php-fpm or cli 特性 通用:函数级控原创 2016-11-28 16:35:18 · 2414 阅读 · 1 评论 -
【PHP7内核剖析】3.3 Zend引擎执行过程
更多《PHP7内核剖析》系列文章:https://github.com/pangudashu/php7-internal3.3 Zend引擎执行过程Zend引擎主要包含两个核心部分:编译、执行:前面分析了Zend的编译过程以及PHP用户函数的实现,接下来分析下Zend引擎的执行过程。3.3.1 数据结构执行流程中有几个重要的数据结构,先看下这几个结构。原创 2017-03-31 09:44:32 · 9209 阅读 · 4 评论 -
【PHP7内核剖析】面向对象-类的实现及编译
更多《PHP7内核剖析》系列文章:https://github.com/pangudashu/php7-internal目录:3.4.1.1 类的结构及存储3.4.1.2 类常量3.4.1.3 成员属性3.4.1.4 成员方法3.4.1.5 类的编译3.4.1 类类是现实世界或思维世界中的实体在计算机中的反映,它将某些具有关联关系的数据以及这些数据上的操作封装在一起。在面向对象中类是对象的抽象,对象原创 2017-03-31 09:49:42 · 6105 阅读 · 0 评论 -
【PHP内核】语法:不同类型之间数值运算的实现
我们都知道php属于弱类型的语言,不同类型之间可以直接进行运算,比如加减乘除,但是php是构建在c语言之上的,它是如何实现这种复合类型运算的呢?很显然,内核帮我们作了类型转化,下面我们就从一个简单的例子具体看下zend引擎中都干了哪些事。(文中涉及的代码均来自php-7.0.4)原创 2016-03-23 14:41:17 · 2228 阅读 · 1 评论 -
【PHP内核】语法:IF判断的实现
面试PHP时经常碰到一种判断各种类型的空值是否为true的题:$a = ''; $a = null $a = false;if($a){...} if(isset($a)){...} if(empty($a)){...} ...由下面的例子我们来简单看下zend引擎中对if是怎么处理的:<?php $a = ''; //array(); if($a){ echo "Y"; }这里例子比较简单原创 2016-04-01 16:14:27 · 2134 阅读 · 0 评论 -
MessagePack介绍
1,今天在hacknews上看到很多人对messagepack的争论。首先了解什么是MessagePack:MessagePack is a binary-based efficient object serialization library. It enables to exchange structured objects between many languages like JSON. ...转载 2015-10-13 09:50:05 · 4998 阅读 · 0 评论 -
使用$this实现独特的调用方式
使用过thinkphp都知道其curd的连贯操作方式: $model->where($map)->limit()->select(); 这么调用是不是很酷^_^ 其实where、limit、select是类中普通的方法,不同的是中间的那些加了一个return $this 这种方式常用的场景是通过方法设置参数或者处理(不需要返回值) <?php class example {原创 2013-10-16 15:17:43 · 896 阅读 · 0 评论 -
smarty与js、css定界符冲突解决方法
smarty的默认定界符是{ },在使用中js、css可能与之冲突,因为smarty引擎把js中{ }之间的内容也当做smarty语句来处理 解决方法: 1.更改smarty定界符,{%%}。(麻烦,而且习惯了使用{}) 2.使用{literal} {/literal}包含js、css,这样告诉smarty引擎中间代码非smarty语句 3.将{}换行隔开,如 img{bor原创 2013-10-16 17:02:02 · 1401 阅读 · 0 评论 -
php保留小数
number_format(2/3,1);原创 2013-11-26 11:24:37 · 669 阅读 · 0 评论 -
PHP代码优化技巧
1.如果一个方法能被静态,那就声明他为静态的,速度可提高1/4; 2.echo的效率高于print,因为echo没有返回值,print返回一个整型; 3.在循环之前设置循环的最大次数,而非在在循环中; 4.销毁变量去释放内存,特别是大的数组; 5.避免使用像__get, __set, __autoload等魔术方法; 6.requiere_once()比较耗资源; 7.在inclu转载 2013-12-03 10:43:34 · 1060 阅读 · 0 评论 -
php反射api
官方文档:http://www.php.net/manual/en/reflectionclass.getmethod.php 反射简单的理解就是根据实例化的对象查看类的信息,通过对象反射类 <?php class test { public function index() { return "dd"; } } $test = new test();原创 2014-01-15 17:10:56 · 810 阅读 · 0 评论 -
jsonp实现跨域读写cookie
关于jsonp的介绍、json与jsonp的区别可以看一下这篇文章http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html javascript是无法跨域读写cookie的,如果想在其他域写cookie一般可以隐藏一个iframe去访问这个域,让它来写入,jsonp提供给我们一个更好的选择,可以通过原创 2014-02-11 15:46:21 · 15910 阅读 · 0 评论 -
PHP posix_getpid 取得当前服务器进程号
<?php echo posix_getpid(); //8805 ?> 注:此函数只有在linux下有效原创 2014-02-27 09:55:56 · 3916 阅读 · 0 评论 -
php字符串查找函数zend_memnstr
Zend/zend_operators.h:static inline char * zend_memnstr(char *haystack, char *needle, int needle_len, char *end) { 字符首指针 char *p = haystack; 最后一个字符 char ne = needle[needle_le原创 2015-07-02 10:55:44 · 1572 阅读 · 0 评论 -
【PHP7内核剖析】3.4 面向对象-对象的实现
更多《PHP7内核剖析》系列文章:https://github.com/pangudashu/php7-internal3.4.2 对象对象是类的实例,PHP中要创建一个类的实例,必须使用 new 关键字。类应在被实例化之前定义(某些情况下则必须这样,比如3.4.1最后那几个例子)。3.4.2.1 对象的数据结构对象的数据结构非常简单:typedef struct _zend_object原创 2017-04-12 09:48:13 · 1443 阅读 · 0 评论