前言
大家好,昨天我们主要学习了字符串的相关知识,并通过函数了解了变量的作用域。
回顾一下具体内容,
- 字符串的连接,单双引号的区别
- 布尔变量是什么
- 函数与注释
- 变量的使用范围(作用域)与超级全局变量
- 可变变量和常量
在变量的最后一讲,我们将了解几个php中常见的,用于处理变量的php内置函数,它们由php本身提供,不需要我们来定义。
今天我们会使用vscode来编辑,它拥有强大的代码提示功能,
记得先开启Apache,然后用vscode(或者npp)打开你htdocs下目录的index.php文件,再继续学习。
当然, http://www.coolapk.com/apk/com.sololearn 也可以练习。
0.函数的返回值
由于今天会用到大量的php内置函数,因此我们要了解一下函数的另一部分,
返回值。
拥有返回值的函数不光会替我们完成任务, 还会在完成后返回给我们一个变量。
具体像这样,
这个函数使用之后,不光输出了hello coolapk
,而且还输出了一个0
,0
就是那个返回值。
在函数中,return
就是函数有返回值的标志,
return
之后则是函数返回给我们的变量,
此处是一个0
,当然也可以是别的。
此时在函数外部,hello()
就不仅仅是一个函数了, 它可以作为一个变量使用。
马上你将会见到类似的形式,到时候记得不要惊讶“这是什么?”。
接下来我们来学习一下,php中几种用于处理变量的内置函数。
1.测试变量类型
gettype()
函数通过传入一个变量或者值可以获得它的类型, 但需要使用echo输出。
var_dump()
函数通过传入一个变量或者值,
直接输出它的类型,
如果这个变量或者值是字符串的话,
还会在括号中输出长度,
它同时也会输出变量的值。
因此我更推荐使用var_dump()
函数。
(附)常用变量类型名称:
int
整数,long
(长)整数,范围更大,float
浮点数,double
(双精度)浮点数,范围更大,bool
布尔,string
字符串,
以上两个函数可告诉我们变量是什么类型。
如果我们想知道某个变量是不是某个具体的类型,那么有更方便的函数,
bool is_int()
,bool is_float()
,bool is_string()
;
这三个函数返回给我们的结果,
是一个bool变量,
值是true
或者false
,表示他们是不是某个类型(int
,float
或者string
)的变量。
此外,还有一个特殊的bool is_numeric($a)
($a
是一个字符串变量)函数,
它用于判断$a
这个字符串是否是纯数字。
比如'123456'
,这就是一个纯数字字符串。
2.设置变量类型
尽管我们在之前提到过,php足够聪明,
能帮你自动设置变量类型,
但有时候我们想把’3′(字符串)变成3(整数),
或者把3(整数)变为3(浮点数),
php也允许我们这样做,甚至它还提供了三种方式,
一) 使用settype()函数,形式如下,
二) 使用int intval()
函数,
还有string strval()
和float floatval()
,
这两个自己试试。
使用形式如下,int/float/strval()
并不直接改变$a变量类型,而是生成了一个新类型的变量,因此需要对$a重新赋值。
三) 使用类似c语言的强制类型转换,
(int)$a
,(float)$a
,(string)$a
。
这种方式同样不直接改变$a变量类型,而是需要对其重新赋值。
3.测试变量状态
php是一种应用于网络中的语言,
它主要的作用就是处理网络访问中产生的数据
因此在实际应用中,这些数据形成的变量并不在我们的控制范围之内,
此时,我们需要对变量状态进行测试,防止产生错误。
比如我们有了一个值为0的变量,并将它作为一个被除数, 此时就会产生一个除以0的算术错误,导致warning(警告)。
甚至有时会产生error(错误)。
因此在对未知的变量进行使用前,测试它的状态很重要。
测试变量的函数有两个,bool isset($a)
,
检测变量$a是否存在(返回true表示为存在),
bool empty($a)
,
检测变量$a是否为空(返回true表示为空),
什么是存在?
定义过变量,且为变量赋过值,那么这个变量存在。
什么是为空?
空,一般代表空字符串。
即引号之间没有任何东西(包括空格)。
- 变量
$a
赋值为’3’,存在且不为空。 - 变量
$b
没有赋值, 不存在且为空。 - 变量
$c
赋值为”,存在但为空。 - 变量
$d
赋值为’ ‘(有空格), 存在且不为空。
简而言之,
如果isset()
为false
(不存在),
那么empty()
必定为true
(为空),
如果isset()
为true
(存在),empty()
需要视字符串情况而定。
请最好自己手打一遍加深理解!!!
最后总结一下:
1.使用var_dump()
测试变量类型。
使用is_int/float/string()
判断类型是否符合, 使用is_numeric()
,判断字符串是否是纯数字。
2.settype()
直接设置变量类型,intval()
与(int)$a
通过重新赋值改变变量类型。
3.isset()
检测变量是否存在,
empty()检测变量是否为空。
加深一下理解,尤其是“3.测试变量状态”。
如果想做作业
那么请把以上所有提到的函数,
自己用各种变量尝试一遍,
有问题可以在评论区留言。
我知道变量分了三讲有些长,你看的也有些累了,但它真的是php的基石与特色。
今天过后,你的学习进度将大大加快。 #(真棒)
谢谢观看,明天见! #(太开心)