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.





Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.