PHP - 常量(static)

声明

PHP 中常量使用 define() 函数声明。常量是一个简单值的标识符,在脚本执行期间该值不能改变(除了所谓的魔术常量,它们其实不是常量)。

常量默认为大小写敏感,也就是常量标识符需要全部使用大写字母,如:FOO,FUNCT 等等。

define()

语法:

fefine(name, value, case_insensitive = false)

参数:

  1. $name:必须。 常量名称,即标志符。
  2. $value:必须。 常量的值。
  3. $case_insensitive :可选。 如果设置为 TRUE,该常量则大小写不敏感(默认敏感)。

使用

我们利用 fefine() 声明一个常量,然后打印出来。

# 声明
define("FOO", "Hello,define!");

# 使用
echo FOO;//Hello,define!

使用时无需加 $ 符号即可识别。需要注意的是常量 无法改变值再次同名赋值

# 声明
define("FOO", "Hello,define!");

# 尝试赋值
FOO = true;

# 使用
echo FOO;//Error

全局作用域

在 PHP 中定义的常量拥有全局作用域,只要你定义在外部其他作用域就可以访问到。

# 声明
define("FOO", "Hello,function!");
function fun(){
    echo FOO;//Hello,function!
}

# 访问
fun();

如果你在 函数内定义 常量,那么外部无法访问:

# 声明
function fun(){
    define("FOO", "Hello,function!");
}

# 访问
echo FOO;//Error

因为函数 fun 没有得到执行,所以 define() 也得不到执行,常量 FOO 也就没有声明。


说白了,就是 编译型 / 解释型语言的问题 ,你看下面代码:

# 声明
function fun(){
    define("FOO", "Hello,function!");
}

# 先执行后输出
fun();
echo FOO;//Hello,function!
发布了262 篇原创文章 · 获赞 408 · 访问量 82万+

猜你喜欢

转载自blog.csdn.net/weixin_44198965/article/details/104342459