Detailed explanation of the differences between PHP class constants, static properties, and non-static properties

伊谢尔伦
Release: 2023-03-11 21:48:02
Original
1298 people have browsed it

1. ClassConstant: The value that always remains unchanged in the class is defined as a constant

The constant of the class cannot use the access restriction modifier, he is It is public, can inherit, and can be overridden by subclasses. You must use double colons to access the constants of the class::. You can use the class name or instance of the class to access. Because it is a constant, the name cannot be used to represent a variable. The symbol $.

can define a value that 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.&#39;<br>&#39;;
 } 
}
Myclass::test();
//类外部访问
echo Myclass::constant.&#39;<br>&#39;; //方法一

$obj = new Myclass();  //方法二
echo $obj::constant.&#39;<br>&#39;;
Copy after login

2.staticAttribute: It is a variable that can be accessed using constant syntax, which is:: , It can be accessed without instantiation

Syntax: public static $my_static = 'similar constant';

class Myclass{
 public static $static_val = &#39;静态属性&#39;;
 //类内部访问
 public function test(){
  return self::$static_val.&#39;<br>&#39;;
 } 
}

//类外部访问
// echo Myclass::test();
echo Myclass::$static_val;  //方法一
$obj = new Myclass();    //方法二
echo $obj::$static_val;
echo $obj->test();
Copy after login

3. Non-static attributes: a normal variable, instance It can be accessed after being transformed, using the -> symbol

Syntax: public $my_val = 'normal variable'

class Myclass{
 public $normal_val = &#39;非静态属性&#39;;

 //类内部访问
 public function test(){
  return $this->normal_val ;
 } 
}
//类外部访问
$obj = new Myclass(); 
echo $obj->normal_val;
echo $obj->test();
Copy after login

PHP gets the list of constants, attributes, and methods in the class Method

$r = new ReflectionClass($this); 
Zend_Debug::dump($r->getConstants(), "Constants"); 
Zend_Debug::dump($r->getProperties(), "Properties"); 
Zend_Debug::dump($r->getMethods(), "Methods");
Copy after login

The above is the detailed content of Detailed explanation of the differences between PHP class constants, static properties, and non-static properties. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!