Php中全局变量,常量,定义变量,静态变量和非静态变量之间的差异

时间:2017-05-17 13:44:22

标签: php variables

我在接受采访时被问到这个问题,请回复一下: 什么是Php全局变量,常量,定义(定义常量),静态变量和非静态变量中所有这些类型的变量之间的差异。

1 个答案:

答案 0 :(得分:-1)

全局变量是指在函数外部定义的任何变量。

可以从脚本的任何部分(即函数内部和外部)访问全局变量。因此,可以像其他变量一样声明全局变量,但必须在函数定义之外声明

常量是简单值的标识符(名称)。该值不能在脚本期间更改。常量默认情况下区分大小写。按照约定,常量标识符始终为大写。没有用于声明常量的'$'符号。

const PI=3.14;

define('PI',3.14);

const cannot be used to conditionally define constants. To define a global constant, it has to be used in the outermost scope:
`
if (...) {
    const FOO = 'BAR';    // Invalid
}
// but
if (...) {
    define('FOO', 'BAR'); // Valid
}
`

这两种方式的根本区别在于,常量在编译时定义常量,而 define 在运行时定义常量。

静态:通常,当一个函数完成/执行时,其所有变量都将被删除。但是,有时我们希望不删除局部变量。我们需要它来做进一步的工作。为此,我们使用static关键字。

非静态:当一个函数完成/执行时,它的所有变量都被删除,然后再次初始化。