我在接受采访时被问到这个问题,请回复一下: 什么是Php全局变量,常量,定义(定义常量),静态变量和非静态变量中所有这些类型的变量之间的差异。
答案 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关键字。
非静态:当一个函数完成/执行时,它的所有变量都被删除,然后再次初始化。