我不确定该怎么说。
请看下面的例子。
<?
$arr = array('first','second','third', 'fourth');
foreach ($arr as $k=>&$n) {
$n = $n;
}
var_dump($arr);
>?
退货
array(4) {
[0]=>
string(5) "first"
[1]=>
string(6) "second"
[2]=>
string(5) "third"
[3]=>
&string(6) "fourth"
}
完全有道理,为什么会有什么变化?好吧,添加第二个循环甚至什么也没做是我迷路的地方。
<?
$arr = array('first','second','third', 'fourth');
foreach ($arr as $k=>&$n) {
$n = $n;
}
foreach ($arr as $k=>$n) {
;
}
var_dump($arr);
?>
退货
array(4) {
[0]=>
string(5) "first"
[1]=>
string(6) "second"
[2]=>
string(5) "third"
[3]=>
&string(5) "third"
}
数组的最后一个值与倒数第二个相同。为什么?
参考方案
您正在将$n
转换为参考:
foreach ($arr as $k=>&$n) {
^----
像这样“引用” PHP变量后,它将保持引用,因此在您的下一个循环中:
foreach ($arr as $k=>$n) {
该$n
仍将是您在第一个循环中迭代的LAST项目的引用。
举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…
PHP-将日期插入日期时间字段 - php我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数
PHP:将数组值加在一起 - php我相信这比标题听起来要难一些,但我可能完全错了。我有一个像这样的数组:[["londrina",15],["cascavel",34],["londrina",23],['tiradentes',34],['tiradentes',21]] 我希望能够采用通用…
PHP strtotime困境 - php有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00…
PHP-全局变量的性能和内存问题 - php假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…