Home > Article > Backend Development > The difference between constants, static properties and non-static properties in PHP
This article mainly introduces the difference and introduction of constants, static properties, and non-static properties in PHP classes. Friends in need can refer to
1. Class constants: always in the class Values that remain unchanged are defined as constants
The constants of the class cannot use access restriction modifiers. They are public, inheritable, and can be overridden by subclasses. Double colons must be used to access the constants of the class: : , can be accessed using the class name or an instance of the class. Because it is a constant, the name cannot use the symbol representing the variable $.
You can define a value that always remains unchanged in the class as a constant. There is no need to use the $ symbol when defining and using constants.
The value of a constant must be a fixed value and cannot be a variable, class attribute, the result of a mathematical operation or a function call.
Constants can also be defined in interfaces. See the interface section of the documentation for more examples.
Since PHP 5.3.0, you can use a variable to dynamically call a class. But the value of this variable cannot be a keyword (such as self, parent or static).
Syntax: const constant= 'constant';
class Myclass{ const constant = '常量'; //类内部调用 public function test(){ echo self::constant.'<br>'; } } Myclass::test(); //类外部访问 echo Myclass::constant.'<br>'; //方法一 $obj = new Myclass(); //方法二 echo $obj::constant.'<br>';
2. Static attribute: It is a variable and can be constant syntax Access is::, which can be accessed without instantiation
Syntax: public static $my_static = 'similar constant';
class Myclass{ public static $static_val = '静态属性'; //类内部访问 public function test(){ return self::$static_val.'<br>'; } } //类外部访问 // echo Myclass::test(); echo Myclass::$static_val; //方法一 $obj = new Myclass(); //方法二 echo $obj::$static_val; echo $obj->test();
3. Non-static properties: A normal variable, which can be accessed after instantiation, using the -> symbol
Syntax: public $my_val = 'normal variable'
class Myclass{ public $normal_val = '非静态属性'; //类内部访问 public function test(){ return $this->normal_val ; } } //类外部访问 $obj = new Myclass(); echo $obj->normal_val; echo $obj->test();
PHP method to obtain the constants, properties, and method lists in a class
$r = new ReflectionClass($this); Zend_Debug::dump($r->getConstants(), "Constants"); Zend_Debug::dump($r->getProperties(), "Properties"); Zend_Debug::dump($r->getMethods(), "Methods");
The above is the entire content of this article, I hope it will be helpful to everyone's study.
Related recommendations:
PHPString definition methods and their differences
php substr function definition and usage summary
2017 php explode function definition and usage summary
The above is the detailed content of The difference between constants, static properties and non-static properties in PHP. For more information, please follow other related articles on the PHP Chinese website!