PHP类中常量的使用

时间:2012-11-15     作者:smarteng     分类: PHP相关


在类中可以定义常量(constant),用来表示不会改变的值。我们使用const定义一个常量,定义的这个常量不能被改变。在PHP5中const定义的常量与定义变量的方法不同,不需要加$ 修饰符。 const PI = 3.14; 这样就可以。而使用const 定义的常量名称一般都大写,这是一个约定,在任何语言中都是这样。如果定义的常量由多个单词组成,使用下划线"_"连接,这也是约定。对于从该类实例化的任何对象来说,常量值在这些对象中的整个生命周期中都保持不变。类常量如下创建:
const NAME = "VALUE";
例如,假设创建一个与数字有关的类,其包括一些定义数组函数的方法以及很多常量:
class math_funcitons
{
const PI='3.14159265';
const E='2.7182818284';
const EULER='0.5772156649';
}
然后就可以像下面这样使用类常量:
echo math_functions::PI
类中的常量使用起来类似静态变量,不同点只是它的值不能被改变。我们使用类名::常量名来调用这个常量。
<?php
//声明一个final类Math
class Math{
const PI=3.14;
  public function __construct() {
  return "这是Math类";
  }
  //这里写了一个算圆面积的方法,使用了Const常量,
  //注意使用的方法,类似于静态变量。
  public final function area($r) {
  return $r*$r*self::PI;
  }
  public final function max($a,$b) {
  return $a>$b?$a:$b;
 
}

echo Math::PI;
?>
尝试为const定义的常量赋值,将会出现错误。
<?php
//说明一个final类Math
class Math {
const PI=3.14;
public function __toString() {
  return "这是一个Math类";
  }
  //这里写了一个算圆面积的方法,使用了Const常量,
  //注意使用的方法,类似与静态变量。
  public final function area($r) {
  return $r*$r*self::PI;
  }
  public final function max($a,$b){
  return $a>$b?$a:$b;
  }
  public function setPI($a) {
  self::PI=3.1415;
  }  
}
//据说中使用方法比定义常量要方便,而且效率高。
echo Math::PI;
?>