Can you use static constants in PHP?

后端 未结 6 1160
面向向阳花
面向向阳花 2021-02-01 12:55

I expected the following to work but it doesn\'t seem to.



        
6条回答
  •  你的背包
    2021-02-01 12:59

    In PHP, static and const are two different things.

    const denotes a class constant. They're different than normal variables as they don't have the '$' in front of them, and can't have any visibility modifiers (public, protected, private) before them. Their syntax:

    class Test
    {
        const INT = "/^\d+$/";
    }
    

    Because they're constant, they're immutable.

    Static denotes data that is shared between objects of the same class. This data can be modified. An example would be a class that keeps track of how many instances are in play at any one time:

    class HowMany
    {
        private static $count = 0;
    
        public function __construct()
        {
            self::$count++;
        }
    
        public function getCount()
        {
            return self::$count;
        }
    
        public function __destruct()
        {
            self::$count--;
        }
    }
    
    $obj1 = new HowMany();
    $obj2 = new HowMany();
    
    echo $obj1->getCount();
    
    unset($obj2);
    
    echo $obj1->getCount();
    

提交回复
热议问题