1、const用于类成员变量定义,一旦定义且不能改变其值,如果定义的常量由多个单词组成,使用 _ 连接,这是约定。define定义全局常量,在任何地方都可以访问。
2、define不能在类中定义而const可以。
3.、const采用一个普通的常量名称,define可以采用表达式作为名称。
4、const只能接受静态的标量,而define可以采用任何表达式。
5、const 总是大小写敏感,然而define()可以通过第三个参数来定义大小写不敏感的常量
define('FOO', 'BAR', true);
echo FOO; // BAR
echo foo; // BAR
总结:使用const简单易读,它本身是一个语言结构,而define是一个方法,用const定义在编译时比define快很多。
const的调用:
(1)<?php
class fun
{
const A="这是类常量,";
const A_B="这也是类常量";
}
echo fun::A.'使用类名::常量名来调用';
echo "<br/>";
echo fun::A_B;
?>
页面输出:这是类常量,使用类名::常量名来调用
这也是类常量
6.
self 调用类中静态属性或方法
this 调用类中非静态属性或方法
parent 调用的是当前类继承的父类中的属性或方法
案例:
<?php
//self的使用
//self:: 访问当前类的静态成员
class people {
static $name= "大家好";
static public function man(){
//此处注意了, self::$name是在方法里面写的
echo "我说123".self::$name.'<br/>';
return self::$name.'你好吗?'.'<br/>';
}
public function woman(){
//使用self:: 调用静态属性
return self::$name;
//使用self:: 调用静态方法
return self::man();
}
}
//调用静态方法 类名::方法名
echo people::man();
//调用静态属性 类名::属性
echo people::$name.'<br/>';
//实例化类
$pop= new people();
echo $pop->woman();
class cat extends people{
public $password="123";
public function abc(){
//调用父类的成员方法
return parent::$name;
}
public function asd(){
//调用父类的成员方法
return parent::man();
}
}
//实例化类
$cat1 = new cat();
echo $cat1->abc();
echo $cat1->asd();
?>