在本教程中,我们将学习如何使用PHP foreach循环语句来循环数组元素或对象的公共属性。
PHP提供了foreach循环语句来遍历数组的元素或对象的公共属性。
foreach循环语句只对数组和对象有效。如果将foreach循环语句与其他数据类型一起使用,则会报错。
要遍历索引数组的元素,可以使用以下语法:
<?php
foreach
(
$array
as
$element
) {
// 在这里处理元素$element
}
PHP在每次迭代中将索引数组的每个元素赋给$element变量。
请看下面的例子:
$nums
= [95,73,87];
$num
echo
;
在本例中,我们将$nums数组的每个元素分配给$num变量,并在每次迭代中显示元素$num的值。
要循环更改数组元素的值,必须使用foreach循环返回的引用。
要使foreach循环返回对数组元素的引用,需要在循环变量前面添加一个&符号,如下所示:
&
$value
下面的例子演示了如何更改一个索引数组的元素的值:
= [1,2,3];
*=
print_r(
);
// [1, 4, 9]
在例子中,我们遍历$nums数组的元素,并将每个元素的值改成其平方。
注意,对foreach循环中使用引用可能会有问题。请看以下示例:
= [
'a'
,
'b'
,3];
// 第一个循环
// 第二个循环
在第二个循环之后,$nums数组是:
[
]
原因是在第一个循环之后,$num变量总是引用$nums数组的第三个元素。
在第二个循环中:在第一次迭代中,我们将$nums数组的第一个元素分配给$num,因为$num地址指向$nums数组的第三个元素,因此,第一次迭代相当于:
$scores
[2] =
[0];
因此,在第一次迭代之后,$scores数组的内容是:
在第二次迭代中,我们将$scores数组的第二个元素分配给$score,并记住$score仍然指向$scores数组的第三个元素,因此,第二次迭代是:
[1];
所以在第二次迭代之后,$scores数组是:
在第三次(最后一次)迭代中,我们将$scores的第三个元素分配给自己:
[2];
因此,$scores数组的内容是:
希望这个解释能帮助您理解foreach循环中变量引用可能会导致的问题。
要解决此问题,应始终在循环后使用unset()函数来释放引用变量,如下所示:
$score
unset(
要遍历关联数组的元素,可以使用以下语法:
$key
=>
// 在这里处理元素的$key 和 $value
对于数组中的每个元素,元素的键被分配给$key变量,元素的值被分配给$value变量。
让我们看下面的例子:
$name
'one'
'tom'
'two'
'Hyman'
'three'
'ben'
];
.
':'
'<br>'
使用foreach循环遍历对象的公共属性的语法与遍历关联数组的元素相同。
class
Person
{
public
$firstName
$lastName
$middleName
function
__construct(
)
$this
->firstName =
->lastName =
->middleName =
$john
=
new
Person(
'benny'
$propName
$propValue
': '
首先,我们定义了Person类,它有三个公共属性:firstName、lastName和middleName。其次,我们创建了Person类的新对象$john。最后,我们使用foreach语句遍历$john对象的公共属性并显示它们的值。
原文链接:https://codingdict.com/