Home »
PHP »
PHP find output programs
PHP find output programs (static variables, classes, methods) | set 2
Find the output of PHP programs | static variables, classes, methods | Set 2: Enhance the knowledge of PHP static variables, classes, methods concepts by solving and finding the output of some PHP programs.
Submitted by Nidhi, on January 25, 2021
Question 1:
<?php
class Sample
{
private $count = 0;
public static function AddCount()
{
self::$count = self::$count + 1;
}
public static function PrintCount()
{
echo "<br>Count is: " . self::$count;
}
}
Sample::AddCount();
Sample::AddCount();
Sample::AddCount();
Sample::PrintCount();
?>
Output:
PHP Fatal error: Uncaught Error: Access to undeclared static property:
Sample::$count in /home/main.php:7
Stack trace:
#0 /home/main.php(16): Sample::AddCount()
#1 {main}
thrown in /home/main.php on line 7
Explanation:
The above program will generate syntax error because we cannot access a non-static member of a class form static function.
Question 2:
<?php
function fun()
{
static $VAR = 0;
$VAR = $VAR + 1;
return $VAR;
}
fun();
fun();
$count = fun();
echo "Function fun() called " . $count . " times";
?>
Output:
Function fun() called 3 times
Explanation:
In the above program, we created a function fun() that contains a static variable $VAR and increased by 1 on every function call, and return the value. We called function fun() three times then "Function fun() called 3 times" message will be printed on the webpage.
Question 3:
<?php
static class sample
{
function fun()
{
static $VAR = 0;
$VAR = $VAR + 1;
return $VAR;
}
}
Sample::fun();
Sample::fun();
$count = Sample::fun();
echo "Funtion fun() called " . $count . " times";
?>
Output:
PHP Parse error: syntax error, unexpected 'class' (T_CLASS),
expecting :: (T_PAAMAYIM_NEKUDOTAYIM) in /home/main.php
on line 2
Explanation:
The above program will generate syntax error because we cannot create declared a class as static in PHP.
Question 4:
<?php
class Sample
{
function fun()
{
static $VAR = 0;
$VAR = $VAR + 1;
return $VAR;
}
}
Sample::fun();
Sample::fun();
$count = Sample::fun();
echo "Funtion fun() called " . $count . " times";
?>
Output:
Function fun() called 3 times
Explanation:
In the above program, we created a class Sample that contains a function fun(). The function fun() that contains a static variable $VAR and increased by 1 on every function call, and return the value. We called function fun() three times then "Function fun() called 3 times" message will be printed on the webpage.
Question 5:
<?php
static $VAR = 0;
function fun()
{
$VAR = $VAR + 1;
return $VAR;
}
fun();
fun();
fun();
echo "Funtion fun() called " . $VAR . " times";
?>
Output:
Function fun() called 0 times
Explanation:
In the above program we defined a static variable $VAR, and increased $VAR by 1 in the function fun(), the static variable $VAR and variable $VAR inside the function fun() are different. That's why "Function fun() called 0 times" message will be printed on the webpage.