微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php类常量的使用详解

可以把在类中始终保持不变的值定义为常量。在定义和使用常量的时候不需要使用 $ 符号。

常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用

接口(interface)中也可以定义常量。更多示例见文档中的接口部分。

PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字(如 self,parent 或 static)。

Example #1 定义和使用一个类常量

rush:PHP;"> echo MyClass::constant . "\n";

$classname = "MyClass";
echo $classname::constant . "\n"; // 自 5.3.0 起

$class = new MyClass();
$class->showConstant();

echo $class::constant."\n"; // 自 PHP 5.3.0 起
?>

Example #2 静态数据示例

rush:PHP;"> PHP class foo { // 自 PHP 5.3.0 起 const bar = <<<'EOT' bar EOT; } ?>

和 heredoc 不同,Nowdoc 可以用在任何静态数据中。

Note:

Nowdoc 支持是在 PHP 5.3.0 新增的。

更多可以参考这篇文章PHP.net/manual/zh/language.oop5.constants.PHP#language.oop5.constants">http://PHP.net/manual/zh/language.oop5.constants.PHP#language.oop5.constants

注意:不像其他的面向对象编程语言,在PHP中,类不能对某个属性变量使用final修饰符。 如果要声明某个属性为常量,可以使用const关键字,并且无需使用美元符号作为变量名前缀,也无需使用访问权限修饰符。常量意味着虽然可以访问该变量,但不能修改该变量的值。例如下边的代码声明了常量属性con_var:

rush:PHP;"> PHP class Foo{ const con_var="常量属性的值不能被修改
"; public function method_a(){ echo (self::con_var); } } echo(Foo::con_var); $myFoo=new Foo(); echo ($myFoo->method_a()); ?>

常量属性不能使用对象访问,仅能使用类访问,在类本体内,可以使用“self::常量名”,在类本体外可以使用“类名::常量名”。

原文地址:https://www.jb51.cc/php/26384.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐