第一章 变量
1.1: 类型 (lesson 1)
整型 , 浮点型 , 字符串 , 布尔型 , 数组 , 对象 ,NULL, 资源
变量是个盒子 , 盒子里面装的是变量的值
不同的盒子就是变量类型
1) 整型 [integer] 数学中的整数
2) 浮点型 [float,double] 数学中的小数
3) 字符串 [string] 一串字符
4) 布尔 [boolean] 真假
5) 数组 [array] 键值对复合数据
6) 对象 [Object] [ 在后面的面向对象中会学到 ]
7) NULL 没有值
8) 资源 [resource] “ 吸管 ”
变量有 8 种类型 , 不必死记硬背 , 在实际运用中加深理解
1. 如何区分变量类型 ?
在计算机的世界里 , 最终只有两个数字 ,0,1
都是一对 0,1 , 如何区分是 字符串的 0100 0001 表示字母 A
还是理解为数字 65 呢 ?
盒子里面的变量值并不是只存储了变量值
还存储了它的变量类型NULL 是什么 ?
NULL 类型只标注了它的类型为 NULL
它的值的字段是空的 ,NULL 是没有值的
$a = 3;// 整型
$b = 3.14;// 浮点型
$c = null;//null 型
$d = ‘hello’;// 字符串
$e = true;// 布尔型
echo $D;
变量名称的命名规范 :
[a-zA-Z0-9] 和下划线 (_)
1) 变量名是区分大小写的
2) 不能以数字开头
$a
$_
$_%
$3c
$c3
1.2: 变量检测
echo 一个不存在的变量 , 会报 notice 级别的错误 ,
所以要检测一下这个变量是否存在
如何检测变量是否存在 如何检测变量是否存在 ?
isset — 检测变量是否设置
已声明的变量返回 true, 未声明的变量返回 false.
检测一个变量是否存在 :
就是看花名册中是否有这个变量名
$b = null;
$c = false;
$d = 0;
$e = ”;
// 分别检测上述变量是否存在
if(isset($a)) {
echo ‘ 变量 b 存在 ‘;
} else {
echo ‘ 变量 b 不存在 ‘;
}对于值为 NULL 的变量 , 也返回 false, 因为 null 没有值
未曾声明的变量 , 当然也不存在
1.3: 类型检测
检测一个变量 ,php 是把它存储成一个什么样的类型的
对于 php 而言获取它的变量类型是很简单的
因为箱子里面已经存储了它的变量类型
gettype — 获取变量的类型 [ 现成的系统函数 ]
$a = false;
echo gettype($a);
$b = “1”;
echo gettype($b);
$c = 1.11;
echo gettype($c);
$d = ‘hello’;
echo gettype($d);
$e = null;
echo gettype($e);
判断变量是否是某种类型 判断变量是否是某种类型
is_float()[is_double] 检测变量是否为浮点型
is_int()[is_integer] 检测变量是否为整型
is_string() 检测变量是否为字符串
is_object() 检测变量是否为对象
is_array() 检测变量是否为数组
is_resource 检测变量是否为资源类型
is_bool 检测变量是否是布尔型
is_null 检测变量是否为 NULL
$a = ‘hello’;
if(is_string($a)) {
echo ‘a 是字符串 ‘;
} else {
echo ‘a 不是字符串 ‘;
}
1.4: 调试打印变量
开发程序的时候 , 不可避免的要把变量的值打印出来看看
如何调试打印变量 如何调试打印变量 ?
echo 字符串 , 数字
print_r 打印层次化的数据 , 比如 : 数组 , 对象
var_dump 打印变量的类型及其值 [ 调试代码比较方便 ]
$a = ‘hello’;
$b = array(1,2,”3″);
$c = false;
$d = null;
$e = 18;
$f = true;
// 布尔型的 true 会打印出 1,false 和 null 什么都不显示
echo $a,$b,$c,$d,$e,$f,'<hr>’;
//print_r 打印层次化的数据 , 比如数组和对象
print_r($b);print_r($c);
print_r($d);
print_r($f);
// 不要用 echo 和 print_r 打印布尔型的值 , 因为会干扰我们
// 用 var_dump 打印布尔和 null
var_dump($c);
var_dump($d);
1.5: 类型转换
PHP 中 , 变量的类型是可以随时转换的 , 非常的灵活
最常见的是字符转与数字之间的相互转换 ,
或者是数字 / 字符串 -> 布尔值的转换
字符串到数字的转换 字符串到数字的转换
从左到右截取 , 直道碰到不合法的数字 , 截取下来的部分转换为数字
$a = ’12’;
$b = $a + 3;
var_dump($b);
$a = ‘12.5hello’; //$a = ‘12.5hello99’;
$b = $a +3;
var_dump($b);
$a = ‘word12.5hello’;
$b = $a + 3;
var_dump($b);
数字到字符串的转换 数字到字符串的转换
$a = 123;
$b = $a . ‘hello’;
var_dump($b);
数字数字 / 字符串 字符串 / 数组等到布尔型值的转换 数组等到布尔型值的转换
$b = 3;
if( $b ) {
echo ‘b is true’;
} else {
echo ‘b is false’;
}
if 判断的应该是布尔型的值 , 那数字 3 被转成布尔型来理解
那它到底应该理解为真还是假呢 ?
以下值 以下值 , 都被理解为成布尔型值的假 都被理解为成布尔型值的假
”,’0′,0,0.0,false,NULL,array();
而其它值 , 都被当成布尔型的真
if(” == false) {
echo ‘ 空字符串果然假 ‘;
}
empty(var) — 检查一个变量是否为空 检查一个变量是否为空
如果 var 是非空或非零的值,则 empty() 返回 FALSE
换句话 说, “” 、 0 、 0.0 、 “0” 、 NULL 、 FALSE 、 array();
以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE
$arr = array();
if(empty($arr)) {
echo ‘ 变量为空 ‘;
}1.6: 赋值赋值 (6)
赋值有两种方式 :
1. 传值赋值 ;( 两个人看两台电视同一个台 )
2. 引用赋值 ;( 两个人看同一台电视 )
1. 传值赋值
变量名其实不是贴在盒子上的 , 而是有个变量表 ( 像班级的花名册 )
变量值和变量类型放在盒子里面 ; 变量表中的变量名指向它所对应的盒子 .
$li = 23;
$wang = $li;
echo $li, ‘~’, $wang;
以上代码在内存中发生了什么 ?
改变 $li 的值 ,$wang 的值会发生变换吗
$li = 99;
echo $li, ‘~’ ,$wang;
这个赋值过程 , 是把 $li 的值 , 赋给 $wang
*2. 引用赋值 *
$a = ‘tvb’;
$b = &$b; //$a,$b 共同指向同一个值
echo $a,’~’,$b;
加 & 引用赋值改变 $a 的值
$a = ‘btv’;
echo $a,’~’,$b;
1.7: 销毁
为什么要销毁变量 ?
因为 , 有时比较大的数组 , 或者比较大的对象
特别的 GD 画图时 , 比较耗费资源 , 将它 unset 掉 , 可以及时释放出内存
unset( 变量名 ); 销毁指定的变量
首先从变量表 ( 花名册 ) 中删除变量名 , 再找到它对应的盒子也删除掉 .
$a = 99;
//unset($a);
if(isset($a)) {
echo ‘a 存在 ‘;
} else {
echo ‘a 不存在 ‘;
}
注意 : 引用赋值 , 如果两个变量指向同一个盒子 , 当销毁其中一个变量的时候 , 盒子是不能被销毁掉的 .
$a = 99;
$b = &$a;
unset($a);
echo $a,$b;// 报一个 notice 的错误
重新给 $a 赋值一个新值
$a = 18;
echo $a,$b;
1.8: 动态变量名
动态变量名 , 可以体现 php 非常灵活的一个地方
用变量的值去做另一个变量的名
$laoda = ‘liubei’;
echo $laoda , ‘<br >’;
$paihang = ‘laoda’;
echo $paihang , ‘~’ , $$paihang;// 排行
$rank = ‘paihang’;
echo $$$rank;
写代码注意简洁和易读性
资
源
下
载
文件名称:布尔教育2016PHP加强视频教程
下载地址:百度网盘
资源来源:网络收集
提示:网盘资源均收集于网络,只作学习和交流使用,版权归原作者所有,请在下载后24小时之内删除!若作商业用途,请到原网站购买,由于未及时购买和付费发生的侵权行为,与本站无关。
请先
!