你眼中的变量
「变量」是任何编程语言中都必然存在的一个基础元素,语法简单、概念明确,几乎所有新人都能在短时间内掌握它。但可惜的是,几乎所有人都对「变量」没有足够的认识与重视。
记重点:变量,是程序中唯一可变的元素,代表着极大的不确定性,也是大多数BUG的来源。
基础概念
先让我们重新认识一下变量。
基本语法
$str = 'abc'; echo $str;
$str
是变量名,abc
是它代表的值;之后可以通过变量名 $str
得到它对应的值,比如 echo $str
,就会输出 abc
。
$str = 'abc'; $str = '123';
之所以叫变量,是因为「变量」可以重新赋值。如上代码,
$str
真正代表的值是123
变量对于程序而言,有多重要?
10086
客服电话,就相当于一个变量名,无论换多少个客服小姐姐,10086
这个号码永远都不变。
数据类型
根据 值
进行分类,变量有很多种数据类型。
//整数(int) $var = 123; //浮点数(小数)(float) $var = 1.23; //字符串(string),注意和整数的区别 $var = '123'; //布尔值(bool)true = 真,false = 假 $var = true; //数组 $var = [1,2,3]; //对象 $var = new StdClass; //资源对象、null、回调类型,忽略不讲
判断数据类型的最佳方法:var_dump($var)
var_dump($var);//可能输出:string(3) "abc"
- string,说明是字符串类型
- (3),表示字符串长度为3个字节
- abc,是具体的值
对于数组、对象这种数据类型,var_dump()
尤其好用。
单双引号的区别
只要被引号包围的字符,都是字符串,但使用但双引号是有区别的。
$a = 1; //原样输出 $str1 = '输出:$a'; //先解析 $a 变量,再输出 $str2 = "输出:$a";
简单来说:双引号能够识别变量,而单引号不能(还包含一些其他制表符,暂时略过)
记重点
- 只要看到
$
符,就一定是变量 - 只要是变量,就一定有数据类型
- 只要是变量,就可以用 var_dump() 来查看它的细节
这些也是变量
$user = $_GET['user']; $pwd = $_POST['pwd']; $cookie = $_COOKIE['cookie']; //还有其他的,我就不写了,他们都是:超全局变量
特别提醒大家,有很多同学搞不清楚 $_GET、$_POST
他们是什么,记住我们上面说的:有$
符,就是变量,就可以用 var_dump($_GET)
打印它,就能看到它的数据类型。(他们都是数组)
程序报错、出BUG怎么办?
先用 var_dump()
打印所有变量的值,看看结果是否和你想象的一样。绝大多数情况下,BUG都是因为变量值错误。
记重点:变量是程序中唯一可变的环节,所以也是最不可预料的环节,排错之前必须确保变量值
如你所想。而var_dump($变量)
是调试变量的最佳选择。
文章内容来自:1024编程实验室(www.sodevel.com)2019-01-16 首次编写。