![零基础PHP学习笔记](https://wfqqreader-1252317822.image.myqcloud.com/cover/195/36710195/b_36710195.jpg)
2.5 PHP变量
把一个值赋给一个名字,例如把值“明日科技小助手”赋给$name,$name就称为变量。在大多数编程语言中,都把这种情况称为“把值存储在变量中”。在计算机内存中的某个位置,字符串序列"明日科技小助手"已经存在。你不需要知道它们到底在哪里,只需要告诉PHP这个字符串序列的名字是$name,从现在开始就要通过这个名字来引用这个字符串序列。这个过程就像快递存放处一样,内存就像一个巨大的货物架,在PHP中使用变量就像给快递贴标签,如图2.3所示。
顾客的快递存放在货物架上,上面贴着写有编号的标签。当顾客来取快递时,并不需要知道它们存放在这个大型货架的具体位置,只需要提供编号,快递员就会把快递交送到顾客手上。实际上,顾客的快递可能并不在原先所放的位置,不过快递员会记录快递的位置,要取回顾客的快递,只需要提供顾客的编号即可。变量也一样,你不需要知道信息存储在内存中的哪个位置,只需要记住存储变量时所用的名字即可。
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/051-1.jpg?sign=1739264961-JW17tsfcw0SUrpAgy0mz5v4YtYmzWzwn-0-efedfd8e43cf2cdacc96461b3be7fcd8)
图2.3 货物架中贴着标签的快递
2.5.1 变量赋值及使用
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/40266-00-051-02.jpg?sign=1739264961-uvJB7zG7shQ8slXZ4PrCSlgdZVkPNAnO-0-ca2b59c070c4eb942c25e15b97b45c9b)
在PHP中使用变量之前不需要声明变量(PHP 4之前需要声明变量),只需为变量赋值即可。PHP中的变量名称用“$+标识符”表示。标识符是由字母、数字和下画线组成的,并且不能以数字开头。另外,变量名是区分大小写的。
变量赋值是指给变量赋予一个具体的数据值,对于字符串和数字类型的变量,可以通过“=”来实现,其格式为:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/051-2.jpg?sign=1739264961-55tecpj7EU5wdQf4uR9BTkUyYfyToo2Z-0-70630189ce6ba7893d55b30b7c23467c)
对变量命名时,要遵循变量命名规则。下面的变量命名是合法的:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/051-3.jpg?sign=1739264961-U0MCD7Cq3D7rvND1YMoL8Xq4YNtJsxOs-0-ba15e33a6ce308277937dd4465b3bcbd)
下面的变量命名则是非法的:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/051-4.jpg?sign=1739264961-TkehvOmNRpbKNOqKvZautURidIHVqEGp-0-4f6859dd4e7c83501baa60e156f69401)
除了直接赋值,还有两种方式可以为变量赋值。一种是变量间的赋值,变量间的赋值是指赋值后两个变量使用各自的内存,互不干扰,代码如下:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/052-1.jpg?sign=1739264961-NStGYM7fupHgey6bO1hLB0YI1nU2ugan-0-83284c7bbf9639b96edd6cfd1a767594)
结果如下:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/052-2.jpg?sign=1739264961-oNj2KFa2vjmjfEdQwN6jHTnP8ctCjuID-0-65fba27d7132a606d0e517b1e6d51eb1)
变量间的赋值就像在网上买了一个商品,一天后又下单买了相同的商品。这样在快递存放处就有两个一样的快递,这两个快递占用两个不同的货架位置,互不干扰。
另一种是引用赋值。从PHP 4开始,PHP引入了引用赋值的概念。引用赋值的概念是用不同的名字访问同一个变量内容,当改变其中一个变量的值时,另一个变量的值也跟着发生变化。使用&符号来表示引用,例如,变量$j是变量$i的引用,当给变量$i赋值后,$j的值也跟着发生变化。代码如下:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/052-3.jpg?sign=1739264961-kucaNUrIwr7U1Za3yQyjcJqAr3rcrcYn-0-d556f492cad1982aa929bd3967f3639d)
结果如下:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/052-4.jpg?sign=1739264961-s946LBMVpmyvtzdHZ4cMP9NytxdaTRfZ-0-f54eb1990c48c71636cade6f5278eadc)
引用赋值就像在填写快递信息时,为避免和因重名被别人误取快递,在“收货人”位置上写了两个名字,一个是真名,另一个是昵称。尽管是两个名字,但却是同一个商品,占用同一个货架。
学习笔记
复制和引用的区别在于:复制是将原变量的内容复制下来,开辟一个新的内存空间来保存,而引用则是给变量的内容再取一个名字。
2.5.2 PHP预定义变量
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/40266-00-053-01.jpg?sign=1739264961-EA6PapzfYncrxIx2hY8IphV4GYs7PXOk-0-32d6ab29ffafe4d5ccd99c6522afcd8c)
PHP还提供了很多非常实用的预定义变量,通过这些预定义变量可以获取用户会话、用户操作系统的环境和本地操作系统的环境等信息。常用的预定义变量如表2.5所示。
表2.5 常用的预定义变量
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/053-1.jpg?sign=1739264961-AHt8Vqxz2fJFOFZkgzXx5i8DTWWLssfN-0-c548da8e37027d96dd72aba8c8c4afb2)