1.变量的介绍
说明:可以存储变化的量(数据)的空间,可以变化的量是通过上下文来决定的,属于弱类型语言
2.变量的声明
说明:变量的声明四用‘$’来进行定义的声明的,在内存中需要定义变量并赋值
语法:$变量名=变量值;
变量名的范围:数字、大小写字母、下划线且不能以数字开头
变量名一般是见名知意的定义,
3.可变变量
说明:可以把某个变量的值当成另一个变量的名开使用,这个时候的好处是减少变量的定义,节省内存空间
案例:
4.变量的传值方式
-
值传递:把一个变量的值复制一份,然后在赋值给另一个变量,这个时候的两个变量没有任何关系的
-
引用传递:把一个变量的值的地址给另一个变量,这个时候的两个变量公用同一个地址对应的值,指向同一个地址,这两个变量值有关系的。&取地址值符号
5.变量的范围
说明:在php中变量分为三种访问方式,局部变量、全局变量、静态变量
-
全局变量:在函数外定义的变量就称为全局变量,正常情况只能在函数外使用
-
局部变量:在函数中定义的变量称为局部变量。正常情况只能在函数中使用
-
静态变量:在正常情况下是在运行完当前页面后进行销毁的(php自己的特性),如果不想销毁可以使用静态变量
说明:调用函数age1,因为$age1变量变成静态,所以调用一次函数后,变量并没有销毁,执行$age1++后变量就会增加1,所以再次调用的时候,值就变了
全局转局部或者局部转全局
说明:局部变量可以在函数内部声明为全局变量,这个时候局部就可以在函数外使用,声明方式:$GLOBALS和global
局部转全局
全局转局部
6.变量常用的5个函数
- isset():判断变量是否存在
- unset():删除或销毁变量
- empty():判断变量是否为空
- echo:输出打印值,不能输出复合和特殊的数据类型的值
- var_dump():输出打印值、类型、长度、打印复合或特殊类型的值
isset()
//isset()用法 //用法一,最基础的判断变量是否存在 $user_name = 'admin'; $res = isset($user_name,$abs);//判断变量user_name和abs是否存在 var_dump($res) ;//输出结果为false,因为虽然$user_name存在 但是$abs不存在,所以结果为假 //用法二,目的是防止用户直接访问当前页面,如果直接访问会查不到$use_age下标,结果会报错 $use_age = isset($_GET['use_age'])?$_GET['use_age']:''; //用法三, if (isset($age,$name)) { # code... echo "存在"; } else { # code... echo "不存在"; }
unset():unset不止可以删除变量,还可以删除数组中的某个元素
empty():判断是否为空
echo
var_dump()
<?php /** * @Author: admin * @Date: 2018-08-11 16:50:35 * @Last Modified by: admin * @Last Modified time: 2018-08-12 10:09:02 */ //可变变量 $name='张三'; $$name='hello'; echo $$name;//相当于把张三当作一个变量名,把hello赋值给张三,打印结果为hello echo $name; echo '<br>'; //值传递 $name = '张三'; $zs = $name;//帮变量$name赋值给$zs ,相当于把张三赋值给$zs echo $name,$zs;//打印结果为两个张三 $name = '李四';//给变量重新赋值,用现在的值覆盖原来的值 echo $name; echo "<br>"; $age = 23; $zsage = &$age;//&取地址值符号,&是获取$age的数据的地址值 echo $age,$zsage;//打印结果是两个23 echo '<br>'; $age = 24;//修改age的值,引用传递方式修改,修改一个另一个也会改变 echo $age,$zsage;//打印结果$age=24,$zsage=24 echo '<br>'; //删除变量$age,另一个结果不受影响 unset($age); echo $age,$zsage;//打印结果$age报错,$zsage=24; //全局变量 $name = '张三'; function user(){ echo $name;//在函数外定义一个变量$name,在函数中调用,结果会报错,说明全局变量正常情况是不能在函数中调用 } user(); function age(){ $age=24;//在函数中定义变量 echo $age; } age();//调用函数,结果会打印24 echo "<hr>"; echo $age;//在函数外打印变量$age //静态变量 $age=24; $age++; echo $age;//输出结果为25 function age1(){ static $age1=16;//定义一个静态变量$age1,static 就是静态变量的声明方式,静态变量声明后运行完当前页面不在销毁这个变量,而是保留 echo $age1;//打印age1的值为16 $age1++; } //调用函数age1,因为$age1变量变成静态,所以调用一次函数后,变量并没有销毁,执行$age1++后变量就会增加1,所以再次调用的时候,值就变了 age1();//调用一次,结果为16 age1();//调用第二次,结果17, age1();//调用第三次,结果18, age1();//调用第四次,结果19, echo "<hr>"; //局部转全局 //定义一个函数 function sex(){ global $sex;//global就是把变量$sex声明成全局变量,这样就可以在全局使用 $sex='男';//global声明完之后,给变量赋值 echo $sex; } sex();//调用函数 结果为男 echo $sex;//在全局打印局部定义的变量,结果输出为男 //全局转局部 $names = '张三';//定义一个全局变量$names //定义函数 function names(){ //用global声明变量$names为局部变量 global $names; echo $names;//打印$names.结果为张三 } //调用函数 names(); //isset()用法 //用法一,最基础的判断变量是否存在 $user_name = 'admin'; $res = isset($user_name,$abs);//判断变量user_name和abs是否存在 var_dump($res) ;//输出结果为false,因为虽然$user_name存在 但是$abs不存在,所以结果为假 //用法二,目的是防止用户直接访问当前页面,如果直接访问会查不到$use_age下标,结果会报错 $use_age = isset($_GET['use_age'])?$_GET['use_age']:''; //用法三, if (isset($age,$name)) { # code... echo "存在"; } else { # code... echo "不存在"; } //unset()销毁变量 $a =1; unset($a);//销毁变量a if (isset($a)) { # code... echo "存在"; } else { # code... echo "不存在"; } //empty() $v=1; if (empty($v)) { # code... echo '存在'; } else { # code... echo "不存在"; } //echo $b=1; $arr = array(1,2,3); echo $b,$arr;//打印结果b=1,但是$arr是数组,echo打印会报错Notice: Array to string conversion //var_dump() var_dump($arr,$b);//var_dump可以打印复合型的数据,所以可以打印数组
评论前必须登录!
注册