<html>
<head>
<title>test</title>
<body>
<?php
function dealdata(&$value,&$key)
{
$value.="123";
$key.="456";
$cnt++;
}
$cnt = 0;
$states = array("a"=>"aa","b"=>"bb","c"=>"cc"); echo $cnt."<br/>";
print_r($states);
array_walk($states,"dealdata");
echo $cnt."<br/>";
print_r($states);
?>
</body>
</html>
问题1:我觉得$cnt是全局的,所以我认为cnt应该是3啊(我之前是学C++的)
问题2:$states的值变了,为什么键没变呢?我明明key和value都改了啊?
求指点,越详细越好
<head>
<title>test</title>
<body>
<?php
function dealdata(&$value,&$key)
{
$value.="123";
$key.="456";
$cnt++;
}
$cnt = 0;
$states = array("a"=>"aa","b"=>"bb","c"=>"cc"); echo $cnt."<br/>";
print_r($states);
array_walk($states,"dealdata");
echo $cnt."<br/>";
print_r($states);
?>
</body>
</html>
问题1:我觉得$cnt是全局的,所以我认为cnt应该是3啊(我之前是学C++的)
问题2:$states的值变了,为什么键没变呢?我明明key和value都改了啊?
求指点,越详细越好
解决方案 »
- 求在linux下和设备通信的解决方案,在线等待,谢谢!(我是新手,请多帮助,谢谢!)
- PhpExcel 如何 一边生成文件,一边下载
- php连mysql的时候,我怎么觉得有些慢呢
- 求教 一小段 asp 转换成 php!
- PHP代码嵌入HTML网页的方式是哪四种
- 哪位提供一个smartemplate使用行和列构建table的使用方法?
- 关于php调用dll得问题!
- 求:PHP源码,如论坛、聊天室、留言板等。
- PHP从数据库里取日期时为什么格式是这样的'2004 四月 26'? 我想转成'2004-04-26'怎样转?
- 正则替换表情,伤不起,求帮助。。
- 解析JSON的问题
- PHP页面之间如何通过json传递数组
是的,$cnt是全局的 ,但是你是在函数里面更改它的值,只在函数里面有效,函数外面无效.问题2
你只能通过 array_walk 修改他的value , 去看看手册。
与 C++ 不同,php 在函数中屏蔽一切外部变量
如在函数中使用外部变量,则需有 global (全局)声明问题2:$states的值变了,为什么键没变呢?我明明key和value都改了啊?
在 array_walk 中不允许改变宿主的结构
改变 key 就是改变结构,所以是不允许做到的
改变 value 也只在传引用时有效