基础
PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。
有效的变量名由字母(A-Z
、a-z
或 128 到 255
之间的字节)或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。
按照正常的正则表达式,它将被表述为:^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$
。
注意:
PHP 不支持 Unicode 变量名,但是,某些字符编码(例如 UTF-8)会以这样的方式对字符进行编码,即多字节字符的所有字节都在允许的范围内,从而使其成为有效的变量名。
注意:
$this
是一个特殊的变量,它不能被赋值。PHP 7.1.0
之前,间接赋值(例如通过使用可变变量)是可能的。
示例 #1 有效和无效变量名
<?php
$var = 'Bob';
$Var = 'Joe';
echo "$var, $Var"; // 输出 "Bob, Joe"
$4site = 'not yet'; // 非法变量名;以数字开头
$_4site = 'not yet'; // 合法变量名;以下划线开头
$i站点is = 'mansikka'; // 合法变量名;可以用中文
?>
PHP 接受任意字节序列作为变量名。不遵循上述命名规则的变量名只能在运行时动态访问。有关如何访问变量的信息,请参阅可变变量。
示例 #2 访问模糊的变量名
<?php
${'invalid-name'} = 'bar';
$name = 'invalid-name';
echo ${'invalid-name'}, " ", $$name;
?>
变量默认始终传值赋值。那也就是说,当表达式的值赋值给变量时,整个原始表达式的值被赋值到目标变量。这意味着,例如,当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量。有关这种类型的赋值操作,请参阅表达式一章。
PHP 也提供了另外一种方式给变量赋值:引用赋值。这意味着新的变量简单的引用(换言之,“成为其别名” 或者 “指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。
使用引用赋值,简单地将一个 &
符号加到将要赋值的变量前(源变量)。例如,下列代码片断将输出“My name is Bob”两次:
有一点重要事项必须指出,那就是只有变量才可以引用赋值。
在 PHP 中声明变量不是必需的,但这是一种非常好的做法。访问未定义的变量将导致 E_WARNING
(在
PHP 8.0.0 之前,为 E_NOTICE
)。未定义的变量的默认值为 null
。isset()
语言结构可用于检测变量是否已初始化。
示例 #3 未初始化变量的默认值
<?php
// 未设置和未引用(不使用上下文)的变量。
var_dump($unset_var);
?>
Warning: Undefined variable $unset_var in ...
NULL
PHP 允许从未定义的变量自动生成数组(自动创建新数组)。
将元素追加到未定义的变量将创建一个新数组,并且不会生成警告。
示例 #4 未定义变量自动生成数组
<?php
$unset_array[] = 'value'; // 不会生成警告。
?>
警告
当将一个文件包含在另一个使用相同变量名的文件中时,依赖未初始化变量的默认值是有问题的。
可以使用 unset() 语言结构来销毁变量。
有关变量相关函数的信息,请参阅变量函数参考。
anisgazig at gmail dot com ¶3 years ago
clear concept of variable declaration rules and classification
variable declaration rules:
1.start with dollar sign($)
2.first letter of variable name comes from a-zA-z_
3.next letters of variable name comes from a-zA-Z0-9_
4.no space,no syntex
classification of variables:
Variable are mainly Two types
1.Predefined Variable
2.User Define Variable
Predefined Variable
There are 12 predefined variables in php 8
1.$GLOBALS
2.$_SERVER
3.$_REQUEST
4.$_FILES
5.$_ENV
6.$_SESSION
7.$_COOKIE
8.$_GET
9.$_POST
10.$http_response_header
11.$argc
12.$argv
User Define Variable
User Define variable are 3 types
1.variable scope
2.variable variables
3.reference variable
Variable Scope
variable scope are 3 types
1.local scope
2.global scope
3.static variable