,PHP中的&传值引用的问题,在foreach循环的结果能帮解释下输出的结果原理是什么?

用户投稿 151 0

关于“php_unset_&”的问题,小编就整理了【3】个相关介绍“php_unset_&”的解答:

PHP中的&传值引用的问题,在foreach循环的结果能帮解释下输出的结果原理是什么?

HP中的&传值引用的问题,在foreach循环的结果能帮解释下输出的结果原理是什么?

代码如下:

$arr = array('one','two','three');

foreach ($arr as &$value){ echo 'Value:'.$value.'

'; }

foreach ($arr as $value){ echo 'Value:'.$value.'

'; }

?>

输出结果:

Value:one

Value:two

Value:three

Value:one

Value:two

Value:two

第一次带&的foreach并没有改变数组的内容。。

而是最后一次循环$value引用了数组的最后一个项 (可以测试一下,在第一次循环结束后unset($value),第二次循环的结果就不会有变化),

在你第二个foreach也是使用的$value变量,这才造成了怪异的问题(可以换个变量,比如$val,输出的数组就不会有变化)。

第二个foreach是赋值给$value,但是这时的$value是引用的数组的最后一个值,

所以

第一次循环把one赋值给了最后一个值,

php中字符串销毁变量的函数是?

PHP unset()函数是用来销毁变量的,也可以用变量名=null来赋值。

php查询内存信息操作示例?

查看当前内存使用情况使用:memory_get_usage()函数。

查看内存使用峰值:memory_get_peak_usage()函数。

<?php

header("Content-Type:text/html;charset=utf-8");

/**

* 格式化字节大小

* @param number $size 字节数

* @param string $delimiter 数字和单位分隔符

* @return string 格式化后的带单位的大小

*/

function format_bytes($size, $delimiter = '') {

$units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB');

for ($i = 0; $size >= 1024 && $i < 5; $i++) $size /= 1024;

return round($size, 2) . $delimiter ." ".$units[$i];

}

echo "内存初始状态:".format_bytes(memory_get_usage());

到此,以上就是小编对于“php_unset_&”的问题就介绍到这了,希望介绍关于“php_unset_&”的【3】点解答对大家有用。

抱歉,评论功能暂时关闭!