1、系统为每一个变量分配一个存储单元,变量名实质上就是计算机内存单元的名字,因此借助变量名就可以访问内存中的数据
2、PHP在使用变量之前并不需要先声明(PHP4之前需要先声明),只需为变量赋值即可。
3、PHP中变量名由$+标识符组成。
4、PHP中变量名区分大小写
5、PHP中给变量赋值的方法:
①直接赋值:字符串和数字类型的变量,用"="实现。
②变量间的赋值:赋值后两个变量使用各自的内存,互不干扰,是两块内存。
③引用赋值:PHP4之后引入的概念,用不同的名字访问同一个变量内容,使用&符号来实现,一个修改后全都都会修改。
6、按作用域划分:
①局部变量:
函数内部定义变量,作用域是该函数
②全局变量:
定义在所有函数外的变量,作用域是整个PHP文件,但在用户自定义函数内部不可用,除非使用global关键字在函数内部声明。
| 123456789101112131415 | <?php $str1='全局变量1'; $str3='全局变量2'; function test(){ $str2='局部变量'; global $str3; global $str4; $str4='函数内部定义的全局变量'; echo '函数内部:'.$str3.'<p>'; echo '函数内部:'.$str4.'<p>'; } test(); echo '全局:'.$str3.'<p>'; echo '全局:'.$str4.'<p>';?> |
③静态变量
在函数调用结束后扔保留变量值,当再次回到作用域时,还可继续使用原先的值。使用静态变量需要用static关键字。
用处:静态变量可以用来记录浏览人数,用户的聊天记录。
注意:静态变量只在第一次碰到时进行初始化,以后再碰到就不会进行初始化
<?php function test1(){ static $num=0; $num+=1; echo $num.' '; } function test2(){ $num=0; $num+=1; echo $num.' '; } for($i=0;$i<10;$i++){ test1(); } echo '<p>'; for($i=0;$i<10;$i++){ test2(); }?> |
7、PHP中for循环的demo
for($i=0;$i<10;$i++){ //执行代码} |
8、可变变量:允许动态改变一个变量的名称,其工作原理是该变量的名称由另一个变量的值来确定。实现过程就是在变量的前面再加一个($)
| 12345 | <?php $str1='str2'; $str2='字符串2'; echo $$str1;?> |
分析:$$str1=$str2='字符串2'
9、预定义变量:通过预定义变量可以获取用户会话、用户OS的环境和本地OS的环境信息。
| $_SERVER['SERVER_ADDR'] | 当前运行脚本所在的服务器的IP |
| $_SERVER['SERVER_NAME'] | 当前运行脚本所在的服务器的主机名 |
| $_SERVER['REQUEST_METHOD'] | 访问页面请求的方法,GET / HEAD / POST / PUT等 |
| $_SERVER['REMOTE_ADDR'] | 正在浏览当前页面的用户的IP |
| $_SERVER['REMOTE_HOST'] | 正在浏览当前页面的用户的主机名 |
| $_SERVER['REMOTE_PORT'] | 正在浏览当前页面的用户端口 |
| $_SERVER['SCRIPT_FILENAME'] | 当前执行脚本的绝对路径 |
| $_SERVER['SERVER_PORT'] | 服务器使用的端口,默认为80 |
| $_SERVER['SERVER_SIGNATURE'] | 包含服务器版本和虚拟主机名的字符串 |
| $_SERVER['DOCUMENT_ROOT'] | 当前运行脚本所在的文档根目录,在服务器的配置文件中定义 |
| $_COOKIE | 通过HTTPCookie传递到脚本的信息 |
| $_SESSION | 包含与所有会话变量有关的信息 |
| $_POST | 包含通过POST传递的参数的信息,用于获取通过POST方法提交的数据 |
| $_GET | 包含通过GET传递的参数的信息,用于获取通过GET方法提交的数据 |
| $GLOBALS | 由所有已定义全局变量组成的数组,变量名就是数组的索引 |