Static variable retains their value across multiple function calls. Let us take an example:
$fruits = ['apples', 'oranges', 'grapes'];
foreach( $fruits as $fruit ) {
$eaten = eat(); // assuming it returns true.
static $eaten_count = 1;
if ( $eaten_count == 1 && $eaten ) {
echo 'Eaten';
$eaten_count++;
}
}Here, the $eaten_count static variable is initialized to 1 and then incremented when if block is entered. So, that the Eaten is echoed only once.
This means $eaten_counts value is retained when the foreach loop continues.
If you don’t add static keyword in that variable, the output will be EatenEatenEaten
Note that duplicate declaration of static variable is considered a fatal error in PHP 8.3.
What is a static variable in PHP?