变量
基本理解
变量就是一个“标识符”,就是一个“名字”;
变量是一个可以表示和存储一定数据的“符号”;
var v1 = 1; //js语发的变量;
$v1 = 1; //php语法的变量;
一个变量,通常表示有两个内容:
变量名:
变量值:
- 变量名和变量值之间的关系可以称为“引用” (指向)
- 使用一个变量名其实是指使用该变量所“引用”(指向)的值
echo $v1 + 1; //
$v2 = $v1 + 10; //
变量名和变量值之间的关系(示意图):
以如下代码为例:
$v1 = 1;
变量的基本操作
只有4个:
取值:
任何使用一个变量并需要获取其值得场合!
echo $v1;
$v2 = $v1 + 10; //取得$v1的值
f1($v1, 2); // 调用函数时,取得$v1的值,并作为实参传递过去
赋值:
基本只有一个场合:在等号的左边出现的时候,就是给该变量赋值。
$v1 = 10;
$v1 = 10+2;
$v1 = pow(2, 4); //2的4次方
$v1 = 20;
$v1 + 1 = 21;//绝对错误!!!
特别注意:(一个)等号的左边只能是一个变量!!!
判断isset():
系统函数 isset()用于判断一个变量是否“存在”。判断的结果是布尔值:true/false
$v1 = 1;
$result1 = isset($v1); //true
$result2 = isset($v11); //false
$v2 = null;
$result3 = isset($v2); //???——结果是false!!!
可见:
1,如果一个变量从来没用过,就是不存在(false)
2,但如果一个变量里面的“值”是null,则isset()判断的结果仍然是false(不存在)。
可见,isset()函数,判断一个变量是否存在,其实可以理解为判断该变量是否“指向”(引用)了一个有效的数据。
删除(销毁)unset():
使用unset()函数来“断开”一个变量跟其所引用的数据之间的“关系”。
举例:
$v1 = 1;
然后:unset($v1);,则结果为:
行业规则
1,通常应该将一个变量命名为一个“易于理解”的形式。
2,变量命名的形式上,可以选择遵循一些常见的命名法:
A: 骆驼命名法:首单词小写,其后每个单词的首字母大写;
name, myName, myFatherName
B: 帕斯卡命名法:每个单词的首字母大写;
Name, MyName, MyFatherName
C: 下划线命名法:每个单词均小写,之间用下滑线分割:
name, my_name, my_father_name
变量的传值方式
基本理解
1,传值方式只有2个:值传递,引用传递
2,这里讨论的是“一个变量”传值给另一个变量的情形。
比如: $v2 = $v1; //有传值问题
$v2 = $v1 + 1; //没有传值问题!!!
值传递:
含义:
将等号右边变量的值复制(拷贝)一份,然后赋值给等号左边的变量;
并且注意:此时两个变量的值是一样的(相等),但他们是两个“没有关系的独立的变量”
示例并图示如下:
$v1 = 1;
$v2 = $v1; //值传递,复制了数据
传值之后结果图示如下:
$v2 = 2; //
echo $v1, $v2, //输出1和2
引用传递
含义:
将等号右边变量跟数据之间的关系复制(拷贝)一份,然后将该关系给等号左边的变量;
并且注意:此时两个变量都共同指向了一个数据(区),他们共享一份数据,但有两个变量并同样指向该数据
示例并图示如下:
$v1 = 1;
$v2 = &$v1; //引用传递,复制的是指向该数据的关系
传值之后结果图示如下:
$v2 = 2; //将变量v2所指向的数据赋值(修改)为2
echo $v1, $v2; //结果输出:2和2
一个说法:
PHP中,所有变量之间默认都是用“值传递”。
要想使用引用传递,必须使用引用符号“&”;
示例代码:
----------------------------系统预定义变量------------------------
$_SERVER[\'SERVER_NAME\'] = www.studyweb.com //代表服务器的名字也就是(域名)
$_SERVER[\'SERVER_ADDR\'] = 127.0.0.1 //当前运行脚本所在的服务器的 IP 地址(当前服务器的ip地址)。
$_SERVER[\'REMOTE_ADDR\'] = 127.0.0.1 //浏览当前页面的用户的 IP 地址。 【访问者(用户)的ip地址】。
$_SERVER[\'PHP_SELF\'] = /example/LAMP_PHP/unit1.php //代表当前浏览器url地址。
$_SERVER[\'QUERY_STRING\'] =a=3//代表该网页的get(所有)参数数据,其实是一个字符串
数据类型
数据类型概述
- 标量类型: int, float, string, bool
- 复合类型: array, object
- 特殊类型: null, resouce(资源)