PHP const Keyword Explained

By Avinash

December 28, 2011Tutorial5 Comments

With PHP we can define such variables whose values can not be changed after assigning. These varibles called CONSTANTS.

What is const?

Constants are one type of variable which we can define for any class with keyword const. Value of these variables can not be changed any how after assigning.

Class constants are diffrent than normal variables, as we do not need $ to declare the class constants. Values for the class constants can not be mathematical operation, function call, variable or property. It can have constant expression.

We can use these constants in interface also. If you are not sure what is Interface then you can refer this article for Interface in PHP.

If we are inside the class then values of the constants can be get using self keyword, but accessing the value outside the class you have to use Scope Resolution Operator ::.

If you access constant using class object and Arrow Operator ->, you will end up with Notice of Undefined Property.

Example

class example_class { const first_constant = "value of Constant"; const second_constant = 345; function display_constants() { // Inside Class self is used echo self::first_constant . "\n"; echo self::second_constant . "\n"; } } // :: used to refer the Class Constants echo example_class::first_constant . "\n"; $class = new example_class(); // Will print two Constants $class->display_constants(); // Shows Notice of Undefined Property echo $class->first_constant;
  class example_class
  {
    const first_constant = "value of Constant";
    const second_constant = 345;
       
    function display_constants()
    {
      // Inside Class self is used
      echo  self::first_constant . "\n";
      echo  self::second_constant . "\n";
    }
  }

  // :: used to refer the Class Constants
  echo example_class::first_constant . "\n";

  $class = new example_class();
 
  // Will print two Constants
  $class->display_constants();

  // Shows Notice of Undefined Property
  echo $class->first_constant;

Conclusion

It will be better to use these Class Constants when you have variables with the fixed value, so It can not be changed further. Your suggestions?

Share This Article

  • http://bhinekanews.com saujiro

    Thank you sir for your tut, and I am very interested with frame for your example code. May I know what kind of plugin or script you used or maybe some tut for that…

  • http://voveris.eu Faifas

    should be const FIRST_CONST;

    • http://www.xpertdeveloper.com Avinash

      Why? If you think that Constant name must in CAPITAL form then its not true.

      • http://WebinSightsLLC.com David

        The reason Faifas mentioned it is because it’s been a, many decades long, common practice for constants (and manifest constants) to be in all capital letters. I believe this was started in the original C and has carried through in all languages which use a variant of C style syntax (which PHP is one).

  • http://www.itoctopus.com itoctopus

    It would have been nice if you displayed what will happen (the error that you will receive) if you try to assign a value to a constant after it’s already assigned.

    For example, what will happen if you try:

    $class->first_constant = “test”;