<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Class Constants</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="language.oop5.properties.html">Properties</a></div> <div class="next" style="text-align: right; float: right;"><a href="language.oop5.autoload.html">Autoloading Classes</a></div> <div class="up"><a href="language.oop5.html">Classes and Objects</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="language.oop5.constants" class="sect1"> <h2 class="title">Class Constants</h2> <p class="para"> It is possible to define constant values on a per-class basis remaining the same and unchangeable. Constants differ from normal variables in that you don't use the <var class="varname"><var class="varname">$</var></var> symbol to declare or use them. </p> <p class="para"> The value must be a constant expression, not (for example) a variable, a property, a result of a mathematical operation, or a function call. </p> <p class="para"> It's also possible for interfaces to have <em>constants</em>. Look at the <a href="language.oop5.interfaces.html" class="link">interface documentation</a> for examples. </p> <p class="para"> As of PHP 5.3.0, it's possible to reference the class using a variable. The variable's value can not be a keyword (e.g. <em>self</em>, <em>parent</em> and <em>static</em>). </p> <div class="example" id="example-178"> <p><strong>Example #1 Defining and using a constant</strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">MyClass<br /></span><span style="color: #007700">{<br /> const </span><span style="color: #0000BB">CONSTANT </span><span style="color: #007700">= </span><span style="color: #DD0000">'constant value'</span><span style="color: #007700">;<br /><br /> function </span><span style="color: #0000BB">showConstant</span><span style="color: #007700">() {<br /> echo </span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">CONSTANT </span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /> }<br />}<br /><br />echo </span><span style="color: #0000BB">MyClass</span><span style="color: #007700">::</span><span style="color: #0000BB">CONSTANT </span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$classname </span><span style="color: #007700">= </span><span style="color: #DD0000">"MyClass"</span><span style="color: #007700">;<br />echo </span><span style="color: #0000BB">$classname</span><span style="color: #007700">::</span><span style="color: #0000BB">CONSTANT </span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">; </span><span style="color: #FF8000">// As of PHP 5.3.0<br /><br /></span><span style="color: #0000BB">$class </span><span style="color: #007700">= new </span><span style="color: #0000BB">MyClass</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$class</span><span style="color: #007700">-></span><span style="color: #0000BB">showConstant</span><span style="color: #007700">();<br /><br />echo </span><span style="color: #0000BB">$class</span><span style="color: #007700">::</span><span style="color: #0000BB">CONSTANT</span><span style="color: #007700">.</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">; </span><span style="color: #FF8000">// As of PHP 5.3.0<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-179"> <p><strong>Example #2 Static data example</strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">foo </span><span style="color: #007700">{<br /> </span><span style="color: #FF8000">// As of PHP 5.3.0<br /> </span><span style="color: #007700">const </span><span style="color: #0000BB">BAR </span><span style="color: #007700">= <<<'EOT'<br /></span><span style="color: #DD0000">bar<br /></span><span style="color: #007700">EOT;<br />}<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p> Unlike heredocs, nowdocs can be used in any static data context. </p></div> </div> <blockquote class="note"><p><strong class="note">Note</strong>: <p class="para"> Nowdoc support was added in PHP 5.3.0. </p> </p></blockquote> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="language.oop5.properties.html">Properties</a></div> <div class="next" style="text-align: right; float: right;"><a href="language.oop5.autoload.html">Autoloading Classes</a></div> <div class="up"><a href="language.oop5.html">Classes and Objects</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>