php地址引用(php地址引用的效率问题)_php技巧

复制代码 代码如下:

<?php
echo 'begin time:'.$begin=microtime(false).'<br/>';//begin to count time
$array=array();
for ($i=1;$i<=10000;$i++) {//产生一个很大的数组
$array[$i]=$i;
}
/*
$arr=$array;//拷贝 拷贝并打印总时间0.02
foreach ($arr as $ar) {
echo $ar.'<br/>';
}
*/
/*
$newarr=&$array;//地址引用 时间总是控制在0.01之内 地址引用的优势体现出来了
foreach ($newarr as $r) {
echo $r.'<br/>';
}
*/
foreach ($array as $a) {//基本是0.02 很少是0.01 为什么没有地址引用的快呢?纳闷
echo $a.'<br/>';
}
echo 'end time:'.$end=microtime(false).'<br/>';//end to count time
echo 'total time:'.($end-$begin);
?>

时间: 2024-09-20 05:36:42

php地址引用(php地址引用的效率问题)_php技巧的相关文章

php中引用符号(&amp;amp;)的使用详解_php技巧

与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址变量的引用.PHP 的引用允许你用两个变量来指向同一个内容 复制代码 代码如下: $a="ABC"; $b =&$a; echo $a;//这里输出:ABC echo $b;//这里输出:ABC $b="EFG"; echo $a;//这里$a的值变为EFG 所以输出EFG echo $b;//这里输出EFG 函数的传址调用 传址调用我就不多说了 下面直接给出代码 复制代码 代

PHP引用符&amp;amp;的用法详细解析_php技巧

关于php的引用(就是在变量或者函数.对象等前面加上&符号)的作用,我们先看下面这个程序. 复制代码 代码如下: <?php   $a = 100; //声明变量a   $b = &$a; //声明变量b,引用自变量a   echo "$a <br />";     echo "$b <br />";   $a++; //变量a自增1   echo "$a <br />";   echo

PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码_php技巧

复制代码 代码如下: function ce_getmac() { if(PHP_OS == 'WINNT') { $return_array = array(); $temp_array = array(); $mac_addr = ""; @exec("arp -a",$return_array); foreach($return_array as $value) { if(strpos($value,$_SERVER["HTTP_CLIENT_IP&

PHP错误抑制符(@)导致引用传参失败Bug的分析_php技巧

看下面的例子: 复制代码 代码如下: <?php $array = array(1,2,3); function add (&$arr) { $arr[] = 4; } add(@$array); print_r($array); /** 此时, $array没有改变, 输出: Array ( [0] => 1 [1] => 2 [2] => 3 ) */ add($array); print_r($array); /** 不使用错误抑制的情况下, 输出正常: Array

获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)_php技巧

分析过程 这个来自一些项目中,获取用户Ip,进行用户操作行为的记录,是常见并且经常使用的. 一般朋友,都会看到如下通用获取IP地址方法. 复制代码 代码如下: function getIP() { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $realip = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { $realip = $_S

PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】_php技巧

在网上找了一些,大部分都已经失效,为此我重新整理了一下:特别放出126的代码,163是比较容易抓取的:126有点变态多了一次跳转,比较麻烦 复制代码 代码如下: <?php /** * @file class.126http.php * 获得126邮箱通讯录列表 * @author jvones<jvones@gmail.com> http://www.jvones.com/blog * @date 2009-09-26 **/ class http126 { private funct

PHP中使用foreach和引用导致程序BUG的问题介绍_php技巧

复制代码 代码如下: $a = array(1, 2); $b = array(11, 12); foreach($a as &$r){ } foreach($b as $r){ } echo $a[1]; // 输出 12 两个的循环的本意可能是: 第一个循环需要在循环中修改元素的内容, 所以使用引用; 但第二个循环只是把 $r 当作一个临时变量. 可是, 为什么 $a[1] 的值发生了改变呢? 当对 $a 的迭代完成后, $r 是 $a[1] 的引用, 改变 $r 的值, 就是改变 $a[1

PHP 递归效率分析_php技巧

而且是差了3倍的效率.所以,PHP中的递归一定要小心的对待. 最近写了一个快速排序的算法,发现PHP中的递归效率不能一刀切,在各种不同的服务器中,可能会表现不一样. 复制代码 代码如下: function qsort(&$arr) { _quick_sort($arr, 0, count($arr) - 1); } /** * 采用递归算法的快速排序. * * @param array $arr 要排序的数组 * @param int $low 最低的排序子段 * @param int $hig

PHP的array_diff()函数在处理大数组时的效率问题_php技巧

cisa 提交到 PHP 官方 BUG 页面上的方法 复制代码 代码如下: <?php /** * 解决 php 5.2.6 以上版本 array_diff() 函数在处理 * 大数组时的需要花费超长时间的问题 * * 整理:http://www.CodeBit.cn * 来源:http://bugs.php.net/47643 */ function array_diff_fast($data1, $data2) { $data1 = array_flip($data1); $data2 =