Heim  >  Artikel  >  Backend-Entwicklung  >  PHP中的常量

PHP中的常量

WBOY
WBOYOriginal
2016-07-30 13:30:061027Durchsuche

概述

常量在脚本执行期间值不能改变

常量一旦定义就不能被重新定义或者取消定义

常量默认为大小写敏感。传统上常量标识符总是大写的

用 define() 函数来定义常量,在 PHP 5.3.0 以后,可以使用 const 关键字在类定义之外定义常量。
不能在函数内,循环内以及 if 语句之内用 const 来定义常量。

常量只能包含标量数据(boolean,integer,float 和 string)。可以定义 resource 常量,但应尽量避免,因为会造成不可预料的结果。

与变量不同,不能在常量前面加上 $ 符号

<code><?php define("$a", "something");
echo $a; // 无效
?>
</code>

常量的作用域

常量可以不用理会变量的作用域而在任何地方定义和访问

<code><?php define("A", "something");
function fn() {
    echo A;
}
fn(); // something
?>

<?php define("A", "something");
echo A; // something
?>
</code>

看清常量的作用域

<code><?php echo A; // A
define("A", "something");
?>
</code>

魔术常量

所谓的魔术常量,其实不是常量

共有八个魔术常量,它们的值随着它们在代码中的位置改变而改变

名称 说明
__LINE__ 文件中的当前行号。
__FILE__ 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。
__DIR__ 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增)
__FUNCTION__ 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
__CLASS__ 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 __CLASS__ 对 trait 也起作用。当用在 trait 方法中时,__CLASS__ 是调用 trait 方法的类的名字。
__TRAIT__ Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 Foo\Bar)。
__METHOD__ 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
__NAMESPACE__ 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。

版权声明:本文为博主原创文章,未经博主允许不得转载。

以上就介绍了PHP中的常量,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn