1.变量
1.1判断isset(变量名):
作用:判断该变量是否存在,或该变量是否有数据值。
若变量存在或有数据值,就是true,否则就是false。
1.2 删除unset(变量名):
含义:删除一个变量,并不是指将该变量从程序中删掉,而是,“断开”该变量名跟该变量原有的数据值之间的“引用关系”(联系),此时,会有这样的结果:
1.该变量名已经不指向(引用)任何数据了,则此时其isset()判断的结果就是false。
2.该数据(可能)没有任何变量指向它了,就成为“无法使用的数据”——通常就被自动回收了。
$v1 = 1;
unset($v1);
$s1 = isset($v1); //false
1.3变量的传值方式
1.变量的传值方式,是指“一个变量,传给另一个变量”的内部细节形式——单对单。
2.变量的传值方式,只有两种:值传递,引用传递。
1.3.1值传递
$v1 = 1;
$v2 = $v1; //这就是值传递
图示理解:可见,值传递,就是变量v1的值进行了复制,然后在给另一个变量v2赋值。
注意:
1.这两个变量此时是值相等的。
2.这两个变量又是互相独立的——互不影响。
$v1 = 10;
echo $v2 ;//输出1
1.3.2引用传递
php中,只有一种语法形式可以实现变量的引用传值方式:&符号。
$m1 = 1;
$m2 = & $m1; //引用传值方式
注意:
1,此时仍然有了2个变量,但只有一个数据值(数据空间),2个变量都共同指向该数据空间。
2,对其中任何一个变量的操作,其实都是在操作数据值(空间)。
$m1 = 10;
echo $m2 ;//输出10
1.4可变变量
$s1 = "abc"; //这是一个变量,里面存储的是字符串”abc”
$abc = 10; //abc的值是10
echo $$s1; //输出10
- 在php中,一个”$”后面,总是跟着一个变量名!
- 这里,echo输出的这个变量(以第一个$为标识)的名字是:$s1, 即”abc”
- 所以,这里输出的是 $abc, 即 10
- 这种连续出现“$”的变量形式,就是所谓的“可变变量”;
$v1 = 1;
$v2 = 12;
$v3 = 33;
$v4 = 44;
$v5 = 115;
//求这5个变量的和;
//其他语言,只能“一个一个”加起来。
$sum = 0; //用于存储总和
for($i = 1; $i <= 5; $i++){
$v = "v" . $i; //这里,结果其实只是一个“字符串”,比如"v1","v2"...
$sum += $$v;
}
echo "sum = $sum<br />";
1.5预定义变量
所谓预定义变量,其实指,php这个语言工具中,预先就定义好的变量;
我们只是“拿来使用”。
主要有:$_GET, $_POST, $_REQUEST, $_SERVER,\ $GLOBALS。
特点:
均是数组
系统定义与维护——即我们不应该其给其赋值或销毁其值,只应该去“用其值”。
具有超全局作用域——哪里都可以使用。
不同情形下可能具有不同的值
1.5.1$_POST变量
1.含义:
它代表用户通过表单以post方式( method=”post” )提交的时候所提交的所有数据——这个称为post数据。
2.基本演示:
- post.html:
<meta charset="utf-8">
<form action="post.php" method="post">
数据1:<input type="text" name="data1">
</br>
数据2:<input type="text" name="data2">
</br>
<input type="submit" value="提交">
</form>
- post.php
<?php
$d1 = $_POST['data1'];
$d2 = $_POST['data2'];
echo ("$d1 $d2");
echo "<hr/ >";
print_r($_POST);
?>
1.5.2$_GET变量
1.含义:
它代表用户通过get方式( 有5种get形式 )提交的时候所提交的所有数据——这个称为get数据。
2.提交get数据有3种形式:
- 形式1
<meta charset="utf-8">
<form action="post.php" method="post">
数据1:<input type="text" name="data1">
</br>
数据2:<input type="text" name="data2">
</br>
<input type="submit" value="提交">
</form>
这种形式的get数据,跟post数据类似,数据内容由用户填写或选择而得到。
- 形式2
<a href="get.php?data1=5&data2=cctv&age=18">链接文字</a>
- 形式3
<?php
//语法形式: header(“location: 目标网页地址”);
header("location: get.php?data1=5&data2=cctv&age=18");
?>
小结:
上述多种get形式提交数据,都可以理解为:
(1)跳转到某个页面,并“同时”携带(提交)一定的get数据过去。
(2)不管哪种形式的get数据提交,接收get数据,都只有一种形式,跟post类似。
输出:
<?php
$v1 = $_GET['data1']; //取得一个get数据项的值:比如$_GET[‘data1’],$_GET[“age”];
echo "$v1";
echo "<hr />";
print_r($_GET); //“输出”所有get数据
?>
1.5.3$_REQUEST变量
含义:
一句话,它是$_GET变量和$_POST变量数据的“合集”:它里面同时存储了这两种数据。
<meta charset="utf-8">
<!--以下action中的?号后面的数据都会以get方式提交-->
<form action="request.php?data1=5&data2=cctv&age=18" method="POST">
<!--以下表单项的数据都会以post方式提交-->
<input type="text" name="n1" />
<input type="text" name="n2" />
<input type="submit" value="提交" />
</form>
<?php
if(!empty($_POST)){
echo "<p>post数据:<br />";
print_r($_POST);
}
if(!empty($_GET)){
echo "<p>get数据:<br />";
print_r($_GET);
}
if(!empty($_REQUEST)){
echo "<p>requset数据:<br />";
print_r($_REQUEST);
}
?>