- 博客(42)
- 收藏
- 关注
转载 之变量分离/引用(Scope in PHP)
在前面的文章中我已经介绍了PHP的变量的内部表示(深入理解PHP原理之变量(Variables inside PHP)),以及PHP中作用域的实现机制(深入理解PHP原理之变量作用域(Scope inside PHP))。这节我们就接着前面的文章,继续介绍PHP中变量分离和引用的概念:首先我们回顾一下zval的结构:1. struct _zval_struct {2
2015-08-25 14:54:14 414
转载 之变量作用域(Scope in PHP)
我前面的文章(深入理解PHP原理之变量(Variables inside PHP))介绍了PHP变量的内部表示,但是,问题是,这些内部表示是如何和用户脚本中的变量联系起来的呢?也就是说,如果我在脚本中写下:1. 2. $var ="laruence";3. echo$var;4. ?>ZE是如何把我的变量var和内
2015-08-25 14:53:35 435
转载 之弱类型变量(Variables inside PHP)
在PHP中,所有的变量都是用一个结构-zval来保存的,在Zend/zend.h中我们可以看到zval的定义:1. typedefstruct _zval_struct {2. zvalue_valuevalue;3. zend_uintrefcount;4. zend_uchartype;
2015-08-25 14:53:10 272
转载 请手动释放你的资源(Pleaserelease resources manually)
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2012/07/25/2662.html· 转载请注明出处我从来不认为这个问题是个问题,直到昨天.昨天晚上的时候,我提交了一个RFC,关于引入finally到PHP,实现这个功能的出发点很简单,因为我看见不少人的需求,
2015-08-25 14:51:17 272
转载 我们什么时候应该使用异常?
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2012/02/02/2515.html· 转载请注明出处先说个题外话:在公司做了俩件事, 是我觉得很有意义的, 第一就是成立了一个PHP邮件组,第二就是成立了一个Hi群.目前俩者都有超过500 phpers在里面.我一
2015-08-25 14:50:50 378
转载 PHP的新特性finally
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2012/08/16/2709.html· 转载请注明出处最近,我提交的关于finally的RFC:Supports finally keyword已经提交到了PHP主干,今天就给大家介绍一下这个新特性的背景,和使用方法.关
2015-08-25 14:50:02 400
转载 深入理解PHP原理之异常机制
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2010/08/03/1697.html· 转载请注明出处PHP的异常机制的原理是什么?在PHP每一个可独立执行的op array最后的ZEND_HANDLE_EXCEPTION是用来干什么呢?让我们从一个问题说起,上周的时候, b
2015-08-25 14:47:52 279
转载 关于PHP浮点数你应该知道的(All ‘bogus’ about the float in PHP)
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2011/12/19/2399.html· 转载请注明出处PHP是一种弱类型语言,这样的特性, 必然要求有无缝透明的隐式类型转换, PHP内部使用zval来保存任意类型的数值, zval的结构如下(5.2为例):1. s
2015-08-25 14:47:23 274
转载 深入理解PHP原理之Session Gc的一个小概率Notice
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2011/03/29/1949.html· 转载请注明出处如果在ubuntu/Debian下,采用apt安装的PHP,那么在使用Session的时候,就可能会有小概率遇到这个提示.1. PHP Notice:se
2015-08-25 14:46:56 547
转载 可序列化单例模式的遗留问题答案
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2011/03/18/1916.html· 转载请注明出处在上一篇文章Serialize/Unserialize破坏单例的最后,我留下了一个问题, 为了让大家能思考, 我就单独再写一篇给出答案.上一篇中,我们说到, 为了实现
2015-08-25 14:46:00 314
转载 Serialize/Unserialize破坏单例
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2011/03/18/1909.html· 转载请注明出处我们经常采用如下方式定义单列:1. class Singleton {2. privatestatic$instance = NULL;3
2015-08-25 14:44:50 261
转载 深入理解PHP内存管理之谁动了我的内存
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2011/03/04/1894.html· 转载请注明出处首先让我们看一个问题:如下代码的输出,1. var_dump(memory_get_usage());2. $a ="laruence";3.
2015-08-25 14:44:09 264
原创 注意PHP对字符串的递增运算
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2010/07/30/1682.html· 转载请注明出处有同学问了一个问题:1. 2. for($i ='A';$i 'Z';$i++) {3. echo$i;4.
2015-08-25 14:42:16 379
转载 再一次, 不要使用(include/require)_once
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2012/09/12/2765.html· 转载请注明出处最近关于apc.include_once_override的去留,我们做了几次讨论, 这个APC的配置项一直一来就没有被很好的实现过.在这里,我想和大家在此分享下,这
2015-08-25 14:40:32 344
转载 深入理解PHP之require/include顺序
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2010/05/04/1450.html· 转载请注明出处在大型的Web项目中, include_path是一个模块化设计的根本中的根本(当然,现在也有很多基于autoload的设计,这个不影响本文的探讨),但是正是因为include_
2015-08-25 14:38:58 280
转载 深入理解ob_flush和flush的区别
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2010/04/15/1414.html· 转载请注明出处ob_flush/flush在手册中的描述,都是刷新输出缓冲区, 并且还需要配套使用, 所以会导致很多人迷惑…其实,他们俩的操作对象不同,有些情况下, flush
2015-08-25 14:37:53 533
转载 isset和is_null的不同
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2009/12/09/1180.html· 转载请注明出处今天有人问我isset和is_null啥区别,看手册上讲的话, isset和is_null的功能几乎完全”相反的一样”..是不是isset就是一个is_null的相反的别名?
2015-08-25 14:36:51 246
转载 PHP浮点数的一个常见问题的解答
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2013/03/26/2884.html· 转载请注明出处关于PHP的浮点数,我之前写过一篇文章: 关于PHP浮点数你应该知道的(All ‘bogus’ about the float inPHP)不过,我当时遗漏了一点,
2015-08-25 14:36:11 320
转载 isset和is_null的不同
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2009/12/09/1180.html· 转载请注明出处今天有人问我isset和is_null啥区别,看手册上讲的话, isset和is_null的功能几乎完全”相反的一样”..是不是isset就是一个is_null的相反的别名?
2015-08-24 21:44:19 291
转载 深入理解PHP原理之foreach
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2008/11/20/630.html· 转载请注明出处foreach是PHP中很常用的一个用作数组循环的控制语句。因为它的方便和易用,自然也就在后端隐藏着很复杂的具体实现方式(对用户透明)今天,我们就来一起分析分析,foreach是如
2015-08-24 21:07:19 1880
转载 深入理解PHP之数组(遍历顺序)
作者: Laruence( )本文地址: http://www.laruence.com/2009/08/23/1065.html转载请注明出处经常会有人问我, PHP的数组, 如果用foreach来访问, 遍历的顺序是固定的么? 以什么顺序遍历呢?比如:$arr['laruence'] = 'huixinchen';$arr['yahoo'] = 2007;
2015-08-24 20:26:43 263
转载 深入理解PHP原理之错误抑制与内嵌HTML
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2009/07/27/1020.html· 转载请注明出处PHP支持内嵌HTML的,那么对于PHP文件中, PHP标签外的HTML会怎么处理呢?它和直接输出HTML有什么区别么?PHP提供了一个错误抑制符’@',它是通过什么方式
2015-08-24 19:55:53 376
转载 PHP CLI模式下的多进程应用
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2009/06/11/930.html· 转载请注明出处PHP在很多时候不适合做常驻的SHELL进程,他没有专门的gc例程,也没有有效的内存管理途径.所以如果用PHP做常驻SHELL,你会经常被内存耗尽导致abort而unhappy.
2015-08-24 17:14:09 492
转载 数组非数字键名引号的必要性
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2009/04/24/695.html· 转载请注明出处我看到过很多人操作数组的时候,对于数组中的非数字键名不使用引号,1. $array[key] =$value;我可以理解有些人可能会觉得这样的代码很”整洁”
2015-08-24 17:13:37 351
转载 如何写出最快的循环
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2009/04/07/670.html· 转载请注明出处你知道怎么写出最快的循环么?刚刚在晓东郭的blog看到一个有趣的问题” PHP中 $i++ 和 ++$i的区别 “:1. 方式一:2. 3
2015-08-24 17:13:06 301
转载 PHP字符串比较
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2009/02/21/662.html· 转载请注明出处我们在代码中用的最多的逻辑是什么?你知道如下的几段代码的布尔结果分别是什么么?1. var_dump("1" =="1e0");2. var_dum
2015-08-24 17:12:31 351
转载 PHP4中模拟类的析构函数
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2008/09/04/498.html· 转载请注明出处最近做的一个项目是基于PHP4的,习惯了PHP5的面对对象,面对PHP4,难免会有很多不爽:不支持public, static, private, protected关键字,最
2015-08-24 17:11:54 419 1
转载 数组非数字键名引号的必要性
作者: Laruence( )本文地址: http://www.laruence.com/2009/04/24/695.html转载请注明出处我看到过很多人操作数组的时候, 对于数组中的非数字键名不使用引号, $array[key] = $value;我可以理解有些人可能会觉得这样的代码很”整洁”, 并且也能正常执行.更甚至,如果他很”幸运的”php配置的
2015-08-24 16:35:04 169
转载 PHP字符串比较
作者: Laruence( )本文地址: http://www.laruence.com/2009/02/21/662.html转载请注明出处我们在代码中用的最多的逻辑是什么?你知道如下的几段代码的布尔结果分别是什么么?var_dump("1" == "1e0");var_dump("1" == "0x1");var_dump("20" == "2e1");var_
2015-08-24 15:49:46 248
转载 PHP5多层继承顺序的bug
作者: Laruence( )本文地址: http://www.laruence.com/2008/08/24/427.html转载请注明出处今天guoxiaod提出了一个问题,如下:class a extends b {};class b extends c{};class c{};?> 会导致fatal error:PHP Fatal error: C
2015-08-24 11:33:37 365
转载 PHP源码分析之Global关键字
作者: Laruence( )本文地址: http://www.laruence.com/2008/08/24/377.html转载请注明出处闲来无事,就系统的从PHP的词法分析,语法分析,opcodes生成,执行,整个流程,详细的分析了global关键字的实现。当你在脚本中写下: $var = "laruence"; function sample
2015-08-24 11:27:38 344
转载 页面乱码问题根源浅析
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2008/04/17/110.html· 转载请注明出处这个问题已经遇到过俩次了,就是页面中明确指明了编码是UTF8,但是显示是乱码。虽然知道解决方法,也知道是Apache的原因,但是一直没有去找其所以然,今天趁机,就研究了一下。首先,
2015-08-24 11:01:33 372
原创 socket、fsockopen、curl、stream 区别
socket 水泥、沙子,底层的东西fsockopen 水泥预制件,可以用来搭房子curl 毛坯房,自己装修一下就能住了水泥、沙子不但可以修房子,还能修路、修桥、大型雕塑。socket也是,不但可以用于网页传输,还能传送其他东西,可以做聊天工具、下载器、ftp……几乎可以用网络传送的东西都能用它写出来,当然,需要掌握的知识也不少,例如建墙你就要知道怎么让墙笔直、不易倒、防冻、隔热等
2015-08-24 11:00:26 4452
转载 PHP的单引号和双引号
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2008/08/19/338.html· 转载请注明出处经常有人问我,听说在PHP中处理字符串用单引号会快,那么如果存在变量替换的时候,是使用单引号连接快呢,还是双引号快呢?简单的回答,显然是苍白无力的。今天我们来做个实验,看看到底单引号和双引
2015-08-24 10:59:07 322
转载 实现PHP的编译执行分离(separatingcompilation and execution)
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2008/08/14/250.html· 转载请注明出处刚刚在PHP群内和大家聊天,应承了大家要写一个关于如何实现PHP源码加密的文章,借着这会QA在冒烟的机会,就这个问题,我写点思路。我之前的文章介绍过, ZE(Zendengine)
2015-08-24 10:58:33 463
转载 深入理解Zend SAPIs(Zend SAPI Internals)
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2008/08/12/180.html· 转载请注明出处SAPI:Server abstraction API,研究过PHP架构的同学应该知道这个东东的重要性,它提供了一个接口,使得PHP可以和其他应用进行交互数据。本文不会详细介绍每个PHP的
2015-08-24 10:57:50 389
转载 PHP函数原理(Introspecting PHP Function)
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2008/08/12/164.html· 转载请注明出处在PHP中,函数分为俩种,· 一种是zend_internal_function, 这种函数是由扩展或者Zend/PHP内核提供的,用’C/C++’编写的,可以直接执行的函数。·
2015-08-24 10:57:05 380
转载 揭秘TSRM(Introspecting TSRM)
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2008/08/03/201.html· 转载请注明出处如果你曾经做过PHP的扩展,或者研究过PHP的源码,你就会看到这个东西到处都在。但是关于这个东西是什么,却鲜有资料叙及。对于这个东西是什么,最常见的回答就是“你不用关心这个是什么,你只
2015-08-24 10:55:43 426
转载 深入理解PHP原理之Opcodes
· 作者: Laruence( )· 本文地址: http://www.laruence.com/2008/06/18/221.html· 转载请注明出处最近要给Yahoo的同事们做一个关于PHP和Apache处理请求的内部机制的讲座,刚好写了些关于Opcodes的文字,就发上来了,这个文章基于 Sara Golemon大师的《Unde
2015-08-24 10:54:59 320
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人