PHP foreach – looping over elements of an indexed array
To loop over elements of an indexed array, you use the following syntax:
PHP assigns each element of the indexed array to the 
$element variable in each iteration. See the following example:
In the example, we assigned each element of the 
$scores array to the $value variable and displayed values of elements in each iteration.
To change the values of array elements inside the loop, you have to use a reference that returns by the 
foreach loop. To enable the foreach loop to return a reference to the array element, you add an ampersand ( &) symbol in front of the loop variable as follows:
The following example demonstrates how the change values of elements of an indexed array inside the loop:
In this example, we iterated over the elements of the 
$scores array and double the value of each element inside the loop.
Using a reference with the  
foreach loop could be problematic. See the following example:
In both  
foreach loops, it seems that we did not change the elements of the $scores array. However, after the second loop, the $scores array is:
The reason is after the first loop, the variable $score always referenced to the third element of the $scores array.
In the first iteration, we assigned 
$score the first element of the $scores array and because  $score is pointing to the third element of the $scores array, therefore, the first iteration is equivalent to:
Therefore, after the first iteration the content of the 
$scores array is:
In the second iteration, we assign 
$score the second element of the $scores array and keep in mind the $score is still pointing to the third element of the $scores array, therefore, the second iteration is:
So after the second iteration, the 
$scores array is:
In the third (last) iteration, we assigned the third element of the 
$scores to itself:
Therefore, the content of the 
$scores array is:
I hope this explanation helps you understand the problem with reference variable in the  
foreach loop.
To fix the problem, you should always reset the reference variable after the loop using the 
unset()function as follows:PHP foreach – iterate over elements of an associative array
To loop over elements of an associative array, you use the following syntax:
For each element in the array, the key is assigned to the 
$key variable and the value is assigned to the $value variable.
Let’s see the following example:
PHP foreach – iterate over public properties of an object
The syntax of iterating over the public properties of an object using  
foreach loop is the same as iterating over the elements of an associative array.
See the following example:
In this example:
- First, we defined Personclass that has three public properties:firstName,lastNameandmiddleName.
- Second, we created a new object of the Personclass named$john.
- Third, we used the foreachstatement to loop over the public properties of$johnobject and displayed their values.
In this tutorial, you have learned how to use the PHP foreach statement to iterate over elements of indexed arrays, associative arrays, and public properties of an object.
 
No comments:
Post a Comment