首页 > 资讯列表 >  本页面生成深入分析专题报道,深入分析滚动新闻,深入分析业界评论等相关报道!
  • php函数method_exists()与is_callable()的区别分析

    php函数method_exists()与is_callable()的区别分析

    本文为大家讲解的是php函数method_exists()与is_callable()的区别分析,感兴趣的同学参考下吧, php函数method_exists() 与is_callable()的区别在哪?在php面相对象设计过程中,往往我们需要在调用某一个方法是否属于某一个类的时候做出判断,常用的方法有 method_exists()和is_callable(),相比之下,is_callable()函数要高级一些,它接受字符串变量形式的方法名作为 第一个参数,如果类方法存在并且可以调用,则返回true。如果要检测类中的方法是否能被调用,可以给函数传递一个数组而不是类的方法名作为参数...

    PHP 2014-12-16 00:36:05
  • 深入解析PHP垃圾回收机制对内存泄露的处理

    深入解析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 session会话的安全性分析

    PHP session会话的安全性分析

    本文为大家讲解的是PHP session会话的安全性分析,感兴趣的同学参考下 会话的用途常常是帮助用户在Web应用程序的各个部分之间跳转,(这句话说的比较不全面,其实主要是为了能共享数据。) 从而达到方便快捷的目的,但是它在存储信息的时候往往会有一些敏感的东西,这些东西可能成为被攻击的目标,如银行的账号、信用卡事务或档案记录等...

    PHP 2014-12-15 10:33:24
  • PHP 字符串长度判断效率更高的方法分析

    PHP 字符串长度判断效率更高的方法分析

    本文为大家讲解的是PHP 字符串长度判断效率更高的方法分析,感兴趣的同学参考下. 在php里当需要判断一个字符串长度时,我们首先想到的是strlen()函数,不错,strlen()返回的就是字符串的长度,这样使用没有任何问题。不过,如果要从php程序优化的角度来看,使用strlen()判断字符串长度未免是最好的写法 有经验的程序员发现,php判断字符串长度,使用isset()在速度上比strlen()更快,执行效率更高...

    PHP 2014-12-15 09:48:05
  • php 字符串压缩方法比较分析

    php 字符串压缩方法比较分析

    本文为大家提供的是php 字符串压缩方法比较分析,感兴趣的同学参考下. php 提供的字符串压缩方法有 1.gzcompress — Compress a string This function compress the given string using the ZLIB data format. 2.gzencode — Create a gzip compressed string This function returns a compressed version of the input data compatible with the output of the gzip program 3.gzdeflate — Deflate a string This function compress the given string using the DEFLATE data format. 4.bzcompress — 把一个字符串压缩成 bzip2 编码数据 bzc...

    PHP 2014-12-15 08:36:04
  • PHP中array_merge和array相加的区别分析

    PHP中array_merge和array相加的区别分析

    本文为大家讲解的是PHP中array_merge和array相加(+号)的区别分析,感兴趣的同学参考下。 今天处理一个这样的问题:如何获取字符键名相同值不同的两个数组值集合,用array_merge和数组相加都不可行,让我认真比较了下PHP中array_merge和array相加的区别 首先来看看键名是string,两者区别: <?php $arr1 = array('a'=>'PHP'); $arr2 = array('a'=>'JAVA'); //如果键名为字符,且键名相同,array_merge()后面数组元素值会覆盖前面数组元素值 print_r(array_merge($arr1,$arr2)); //Array ( [a] => JAVA ) //如果键名为字符,且键名相同,数组相加会将最先出现的值作为结果 print_r($arr1+$arr2); //Array ( [a] => PHP ) ?> 如果键名是数字,两者...

    PHP 2014-12-15 07:27:04
  • 深入PHP变量存储的详解

    深入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
  • php unset全局变量示例分析

    php unset全局变量示例分析

    本文为大家讲解的是php unset全局变量示例分析,感兴趣的同学参考下。 PHP unset全局变量在实际使用中只能销毁局部变量,并不能实现全局变量的目的...

    PHP 2014-12-15 07:15:05
  • PHP中逗号与点号的区别分析

    PHP中逗号与点号的区别分析

    本文为大家讲解的是PHP中逗号与点号的区别分析,感兴趣的同学参考下。 大部分同学都知道逗号要比点号快,但就是不知道为什么,更不知道逗号与点号这两者之间到底有什么区别...

    PHP 2014-12-15 06:18:04
  • PHP垃圾回收机制引用计数器概念分析

    PHP垃圾回收机制引用计数器概念分析

    本文为大家讲解的是PHP垃圾回收机制引用计数器概念分析,感兴趣的同学参考下。 php变量存在一个叫"zval"的变量容器中,"zval"变量容器包括含变量的类型和值,还包括额外的两个字节信息,分别是“is_ref”表示变量是否属于引用,“refcount”指向这个zval变量容器的变量个数 如果你安装了xdebug,就可以用xdebug_debug_zval()显示“zval”的信息了...

    PHP 2014-12-15 01:51:04
  • PHP及Zend Engine的线程安全模型分析

    PHP及Zend Engine的线程安全模型分析

    本文为大家讲解的是PHP及Zend Engine的线程安全模型分析,感兴趣的同学参考下。 在阅读PHP源码和学习PHP扩展开发的过程中,我接触到大量含有“TSRM”字眼的宏...

    PHP 2014-12-14 23:12:20
  • PHP中慎用双等于(==)的原因分析

    PHP中慎用双等于(==)的原因分析

    本文为大家讲解的是为什么PHP中慎用双等于(==)的原因分析,感兴趣的同学参考下。 PHP比较运算符出现的频率实在是太高了,尤其是 == if(a == b){ // do something } 但是,你真的掌握了 == 了吗?细节很重要! 来看下面的代码,说出你认为正确的答案 var_dump('  123fg456'==123); var_dump('some string' == 0); var_dump(123.0 == '123d456'); var_dump(0 == "a"); var_dump("1" == "01"); var_dump("1" == "1e0"); 先想出你的答案,然后再运行一次看看...

    PHP 2014-12-14 21:51:13

站长搜索

http://www.adminso.com

Copyright @ 2007~2025 All Rights Reserved.

Powered By 站长搜索

打开手机扫描上面的二维码打开手机版


使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

站长搜索目录系统技术支持