目录
1.变量声明
变量用美元符$后跟标识符来表示。变量名是区分大小写的。
$a = 1;
2.变量分类
2.1全局变量(global)
函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。如果函数内部需要使用,需使用global关键字调用。
<?php
$a = 1;
$b = 2;
function Sum()
{
global $a, $b;
$b = $a + $b;
}
Sum();//输出3
echo $b;//输出3
?>
2.2静态变量(static)
通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。要完成这一点,请在您首次声明变量时使用 static 关键词:
<?php
function test()
{
static $a = 0;
echo $a;
$a++;
}
?>
注意:该变量仍然是函数的局部变量。
2.3实例变量
类 内部声明的非静态变量。
2.4局部变量(local)
函数内部声明的变量拥有 Local 作用域,只能在函数内部进行访问。
3.可变变量
一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。
使用了两个美元符号($)以后,就可以作为一个可变变量。
$a = 'hello';
$$a = 'world';
//输出hello world
echo "$a ${$a}";
//等同于
echo "$a $hello";
4.内置超级全局变量
内置超级全局变量的作用域是PHP脚本的任何地方。完整列表如下:
- $GLOBALS,引用全局作用域中可用的全部变量的数组;
- $_SERVER,服务器环境变量数组;
- $_GET,HTTP GET 变量数组;
- $_POST,HTTP POST 变量数组;
- $_FILES,HTTP 文件上传变量数组;
- $_REQUEST,HTTP Request 变量数组;
- $_COOKIE,Cookie变量数组;
- $_SESSION,Session 变量数组;
- $_ENV,环境变量数组。
5.常量
常量名称与变量的区别就是前面没有 $ 符号,一般全部大写字母。常量的作用域是全局的,它们可以在函数内外使用。
5.1define()函数定义法
define()函数定义的常量的值,除了支持const定义的值以外,还可以是任意表达式。
define(string $constant_name, mixed $value): bool
5.2const关键字定义法
const定义的常量的值,只可以是 标量类型(bool, int, float and string)的值、null值、包含标量类型的array 值。
const CONSTANT = 'Hello World';
5.3类常量
const CONSTANT = 'constant value';
5.4final类常量
可以在类常量前面加final关键字,以禁止它们在子类中被重写。
class Foo
{
final public const XX = "foo";
}
class Bar extends Foo
{
public const XX = "bar"; // Fatal error
}
6.魔术常量
名字 | 说明 |
---|---|
__LINE__ | 文件中的当前行号。 |
__FILE__ | 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。 |
__DIR__ | 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__) 。除非是根目录,否则目录中名不包括末尾的斜杠。 |
__FUNCTION__ | 当前函数的名称。匿名函数则为 {closure} 。 |
__CLASS__ | 当前类的名称。类名包括其被声明的作用域(例如 Foo\Bar )。当用在 trait 方法中时,__CLASS__ 是调用 trait 方法的类的名字。 |
__TRAIT__ | Trait 的名字。Trait 名包括其被声明的作用域(例如 Foo\Bar )。 |
__METHOD__ | 类的方法名。 |
__NAMESPACE__ | 当前命名空间的名称。 |
ClassName::class | 完整的类名(含路径)。 |
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/php/phplang/4937.html