-
从PHP的源码中深入了解stdClass类
本文为大家讲解的是php中的stdClass类,感兴趣的同学参考下. 在百度百科中,对于stdClass的定义如下: stdClass在PHP5才开始被流行。而stdClass也是zend的一个保留类...
PHP 2014-12-31 23:48:04 -
深入了解PHP类Class的概念
本文为大家讲解的是深入了解PHP类Class的概念,感兴趣的同学参考下. 日常环境由无数实体组成:植物、人群、交通工具、食物……实在是太多了,光是把它们列出来都要花上几个小时的时间。每个实体都由一组性质和行为来定义 例如,一个交通工具可以定义有颜色、轮胎数、制造商、型号和容量等性质,并定义有停止、前进、转弯和鸣笛等行为...
PHP 2014-12-27 14:54:08 -
php自动加载机制的深入分析
本文为大家讲解的是php中自动加载机制的深入分析进解,感兴趣的同学参考下。 一、php中实现自动加载的方法 1.使用require,include,require_once,include_once手工进行加载...
PHP 2014-12-24 22:00:07 -
深入解析PHP内存管理之谁动了我的内存
本文为大家讲解的是深入解析PHP内存管理之谁动了我的内存,感兴趣的同学参考下。 首先让我们看一个问题: 如下代码的输出, var_dump(memory_get_usage()); $a = "laruence"; var_dump(memory_get_usage()); unset($a); var_dump(memory_get_usage()); 输出(在我的个人电脑上, 可能会因为系统,PHP版本,载入的扩展不同而不同): int(90440) int(90640) int(90472) 注意到 90472-90440=32, 于是就有了各种的结论, 有的人说PHP的unset并不真正释放内存, 有的说, PHP的unset只是在释放大变量(大量字符串, 大数组)的时候才会真正free内存, 更有人说, 在PHP层面讨论内存是没有意义的. 那么, 到底unset会不会释放内存? 这32个字节跑哪里去了? 要回答这个问题, 我将从俩个方面入手: 这32个字节去哪里了 首先我们要打破一个思维: PHP不像C语...
PHP 2014-12-23 07:12:03 -
大快人心!网络广告或将“一键关闭”
站长搜索(www.adminso.com):大快人心!网络广告或将“一键关闭” 站长搜索讯 12月22日消息,你是否曾经饱受网络广告怎么也关不掉的折磨?是否因以假乱真的广告关闭标志而濒临崩溃?那么现在好消息来啦!我国拟修法对网络广告确保“一键关闭”了。据新华社新华视点微博消息,针对网络逐渐成为广告发布的重要媒介,实践中网络广告违法、影响用户使用网络广告行为的规范,22日审议的广告法修订草案规定,互联网广告不得影响用户正常使用,在互联网页面以弹出等形式发布的广告,应当显著标明关闭标志,确保一键关闭...
业界动态 2014-12-22 17:09:07 -
深入理解PHP之数组(遍历顺序)
本文为大家讲解的是深入理解PHP之数组(遍历顺序) ,感兴趣的同学参考下. 经常会有人问我, PHP的数组, 如果用foreach来访问, 遍历的顺序是固定的么? 以什么顺序遍历呢? 比如: <?php $arr['laruence'] = 'huixinchen'; $arr['yahoo'] = 2007; $arr['baidu'] = 2008; foreach ($arr as $key => $val) { //结果是什么? } 又比如: <?php $arr[2] = 'huixinchen'; $arr[1] = 2007; $arr[0] = 2008; foreach ($arr as $key => $val) { //现在结果又是什么? } 要完全了解清楚这个问题, 我想首先应该要大家了解PHP数组的内部实现结构……… PHP的数组 在PHP中...
PHP 2014-12-19 09:48:08 -
PHP设计模式之解释器模式的深入解析
本文以示例的形式向大家介绍了PHP设计模式之解释器模式的深入解析,感兴趣的同学参考下。 解释器(Interpreter)模式,它包括一个具有复合类分层结构的文法表现,规则是映射到类,跟随在文法后面的表达式可以被转换成一个抽象的语法树,除了复合模式的实例对象图外,没有别的内容...
PHP 2014-12-19 08:57:07 -
PHP中的Session和Cookie深入分析
本文为大家讲解的是PHP中的Session和Cookie深入分析,感兴趣的同学参考下。 在一个页面设置一个cookie时,必须刷新或到下一个页面才可以用 $_COOKIE 得到变量的值. 原因是因为当页面第一次被浏览器访问载入时,页面中的 cookie 会被设置,将其发送存储到客户端指定的存储位置,所以$_COOKIE没有接收到客户端发送过来的 cookie 变量的值,当刷新或到下一个页面时,客户端会在页面程序在服务器端运行之前,发送与该地址相对应的 cookie到服务器端,所以 $_COOKIE 可以得到的值! 说白了就是当每一个页面被访问时,如果客户端找到了与访问地址相对应的 cookie 时,会在程序在服务器端运行之前发送这个 cookie 到服务器端. (个人对此的看法) 本人表达能力不强,如有不明,还请抱歉! php中设置cookie数组的时候,不可以用像php中的那个添加数据的方法: <?php setcookie('my_cookie[]', 1); setcookie('my_cookie[]', ...
PHP 2014-12-19 02:36:04 -
震撼人心的年度视频,带你回顾精彩的2014
站长搜索(www.adminso.com):震撼人心的年度视频,带你回顾精彩的2014 站长搜索讯 2014即将过去,也到了各大媒体开始盘点的时候了,百度百科用一个激动人心的视频带我们回顾了这精彩的一年。这一年,有灾难,也有离别,我们收获了眼泪,同样也收获了喜悦;一年中诞生了很多新发明,出现了很多新转变...
业界动态 2014-12-18 08:39:04 -
深入理解PHP原理之Session Gc的一个小概率Notice
PHP Notice: session_start(): ps_files_cleanup_dir 如果在ubuntu/Debian下, 采用apt安装的PHP, 那么在使用Session的时候, 就可能会有小概率遇到这个提示. PHP Notice: session_start(): ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied (13) in /home/laruence/www/htdocs/index...
PHP 2014-12-16 08:54:05 -
深入解析PHP垃圾回收机制对内存泄露的处理
本文为大家深入解析了PHP垃圾回收机制对内存泄露的处理方法,感兴趣的同学参考下。 上次说到了refcount和is_ref,这里来说说内存泄露的情况 $a = array(1, 2, &$a); unset($a); 在老的PHP版本中,这里就会出现内存泄露,分析如下: 执行第一行,可以知道$a和$a[2]指向的zval refcount=2,is_ref=1 然后执行第二行,$a将会从符号表中被删除,同时指向的zval的refcount--,此时refcount=1,因为refcount!=0,故此zval不会被当做垃圾回收,但是此时我们却失去了$a[2]指向这个zval的入口,因此这个zval成了一块内存垃圾 同样的道理可以发生在类内部引用里,例如 $a = new Man(); $a->self = &$a; unset($a); 那么如何解决这种问题呢,新的GC机制采用了一个算法来解决这个问题 PHP有一个root buffer用来存储zval的节点信息,当root...
PHP 2014-12-15 13:21:08 -
深入PHP变量存储的详解
本文是对PHP变量的存储进行了详细的分析介绍,感兴趣的朋友参考下 1.1.1 zval结构 Zend使用zval结构来存储PHP变量的值,该结构如下所示: typedef union _zvalue_value { long lval; /* long value */ double dval; /* double value */ struct { char *val; int len; } str; HashTable *ht; /* hash table value */ zend_object_value obj; } zvalue_value; struct _zval_struct { /* Variable information */ zv...
PHP 2014-12-15 07:24:08