PHP 函数
PHP 函数
内容导读:
掌握函数的定义、调用,以及参数传递
掌握变量函数库中经典函数
掌握日期时间、数学、文件系统及 MySQL 中的经典函数
1 函数
1.1 定义和调用函数
函数,就是将一些重复使用到的功能写在一个独立的代码块中,在需要时单独调用。
基本语法格式为:
function fun_name($str1,$str2…$strn){ fun_body; }
说明:function
:为声明自定义函数时必须使用到的关键字。
fun_name
:为自定义函数的名称。
$str1,$str2…$strn
:为函数的参数。
fun_body
:为自定义函数的主体,是功能实现部分。
当函数被定义后,所要做的就是调用这个函数。调用函数的操作十分简单,只需要引用函数名
并赋予正确的参数
即可完成函数的调用。
1.2 在函数间传递参数
在调用函数时需要向函数传递参数,被传入的参数称为实参
,而函数定义的参数为形参
。参数传递的方式有按值传递
、按引用传递
和默认参数
3 种。
a.按值传递方式按值传递是指将实参的值复制
到对应的形参中,在函数内部的操作针对形参进行,操作的结果不会影响到实参
,即函数返回后,实参的值不会改变。
b.按引用传递方式按引用传递
就是将实参的内存地址传递到形参中
。这时,在函数内部的所有操作都会影响到实参的值
,返回后实参的值会发生变化。引用传递方式就是传值时在原基础上加&号
即可。
c.默认参数(可选参数)默认参数即可选参数。可以指定某个参数为可选参数,将可选参数放在参数列表末尾
,并且指定其默认值
。
1.3 从函数中返回值
通常,函数将返回值传递给调用者的方式是使用关键字 return。其将函数的值返回给函数的调用者
,即将程序控制权返回到调用者的作用域。
注意:如果在全局作用域内使用 return 关键字,那么将终止脚本的执行。
1.4 变量函数
也称作可变函数
。如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且将尝试执行它。这样就可以将不同的函数名称赋给同一个变量,赋给变量哪个函数名,在程序中使用变量名并在后面加上圆括号时,就调用哪个函数执行。
function add($a,$b){ return $a+$b;}function mul($a,$b){ return $a*$b;}$result="add";echo $result(1,2);//调用add函数
类似面向对象中的多态特性
。变量函数还可以被用于实现回调函数
、函数表
等
1.5 对函数的引用
按引用传递参数可以修改实参的内容。引用不仅可用于普通变量、函数参数,也可作用于函数本身。对函数的引用,就是对函数返回结果
的引用。函数定义和调用两处地方
都需要加上&
才是对函数的引用。
<?phpfunction &test(){ static $b=0;//申明一个静态变量 $b=$b+1; echo $b; return $b;}//注意test()、&test()异同;$a=test();//这条语句会输出 $b的值为?$a=5;$a=test();//这条语句会输出 $b的值为?$a=&test();//这条语句会输出 $b的值为?$a=5;$a=test();//这条语句会输出 $b的值为??>
注意: 函数的引用返回多用在对象中。
1.6 取消引用
当不再需要引用时,可以取消引用。取消引用使用unset()
函数。
注意:unset()
只是断开
了变量名和变量内容之间的绑定
,而不是
销毁变量内容。
2 变量函数库
除了用户自行编写的函数库外,PHP 自身也提供了很多内置的函数,变量函数库就是其中一个。但并不是所有的函数都会经常用到。
empty^[1]^ — 检查一个变量是否为空
gettype^[2]^ — 获取变量的类型
intval^[3]^ — 获取变量的整数值
is_array^[4]^ — 检测变量是否是数组
is_int^[5]^ — 检测变量是否是整数
is_numeric^[6]^ — 检测变量是否为数字或数字字符串
isset^[7]^ — 检测变量是否已设置并且非 null
print_r^[8]^ — 以易于理解的格式打印变量。
settype^[9]^ — 设置变量的类型
unset^[10]^ — 释放给定的变量
var_dump^[11]^ — 打印变量的相关信息
更多请参阅: PHP 手册>函数参考>变量与类型相关扩展>Variable handling
if(isset($_POST['Submit']) && $_POST['Submit']=="登录"){ //通过isset()函数对登录按钮进行判断$user=$_POST['user']; //通过 $_POST数组调用表单文本域的值$pass=$_POST['pass']; if(empty($user)||empty($pass)){ //通过if语句判断用户名或是密码不能为空 echo "<script>alert('用户名或密码不能为空');</script>"; //用户名或是密码为空时,给出提示 }}
3.其他常用函数库
3.1 字符串函数库
addcslashes^[12]^ — 以 C 语言风格使用反斜线转义字符串中的字符
addslashes^[13]^ — 使用反斜线引用字符串
explode^[14]^ — 使用一个字符串分割另一个字符串
echo^[15]^ — 输出一个或多个字符串
ltrim^[16]^ — 删除字符串开头的空白字符(或其他字符)
md5^[17]^ — 计算字符串的 MD5 散列值
strlen^[18]^ — 获取字符串长度
str_ireplace^[19]^ — str_replace 的忽略大小写版本
substr_replace^[20]^ — 替换字符串的子串
strchr^[21]^ — 别名 strstr
substr_replace^[22]^ — 替换字符串的子串
strtr^[23]^ — 转换指定字符
substr^[24]^ — 返回字符串的子串
trim^[25]^ — 去除字符串首尾处的空白字符(或者其他字符)
更多请参阅: PHP 手册>函数参考>文本处理
3.2 日期时间函数库
checkdate^[26]^ — 验证一个格里高里日期
date^[27]^ — 格式化一个本地时间/日期
microtime^[28]^ — 返回当前 Unix 时间戳和微秒数
mktime^[29]^ — 取得一个日期的 Unix 时间戳
strftime^[30]^ — 根据区域设置格式化本地时间/日期
strptime^[31]^ — 解析由 strftime 生成的日期/时间
strtotime^[32]^ — 将任何字符串的日期时间描述解析为 Unix 时间戳
time^[33]^ — 返回当前的 Unix 时间戳
更多请参阅: PHP 手册>函数参考>日期与时间相关扩展
3.3 数学函数库
ceil^[34]^ — 进一法取整
mt_rand^[35]^ — 生成更好的随机数
mt_srand^[36]^ — 播下一个更好的随机数发生器种子
rand^[37]^ — 产生一个随机整数
round^[38]^ — 对浮点数进行四舍五入
floor^[39]^ — 舍去法取整
fmod^[40]^ — 返回除法的浮点数余数
mt_getrandmax^[41]^ — 显示随机数的最大可能值
max^[42]^ — 找出最大值
min^[43]^ — 找出最小值
更多请参阅: PHP 手册> 函数参考> 数学扩展> Math
3.4 文件系统函数库
basename^[44]^ — 返回路径中的文件名部分
copy^[45]^ — 拷贝文件
file_exists^[46]^ — 检查文件或目录是否存在
file_get_contents^[47]^ — 将整个文件读入一个字符串
file_put_contents^[48]^ — 将一个字符串写入文件
file^[49]^ — 把整个文件读入一个数组中
filetype^[50]^ — 取得文件类型
fopen^[51]^ — 打开文件或者 URL
fread^[52]^ — 读取文件(可安全用于二进制文件)
is_dir^[53]^ — 判断给定文件名是否是一个目录
is_uploaded_file^[54]^ — 判断文件是否是通过 HTTP POST 上传的
mkdir^[55]^ — 新建目录
move_uploaded_file^[56]^ — 将上传的文件移动到新位置
readfile^[57]^ — 输出文件
rmdir^[58]^ — 删除目录
unlink^[59]^ — 删除文件
更多请参阅: PHP 手册> 函数参考>文件系统相关扩展
3.5 MySQL 函数库
mysql_close^[60]^ — 关闭 MySQL 连接
mysql_connect^[61]^ — 打开一个到 MySQL 服务器的连接
mysql_create_db^[62]^ — 新建一个 MySQL 数据库
mysql_errno^[63]^ — 返回上一个 MySQL 操作中的错误信息的数字编码
mysql_error^[64]^ — 返回上一个 MySQL 操作产生的文本错误信息
mysql_fetch_array^[65]^ — 从结果集中取得一行作为关联数组
mysql_fetch_assoc^[66]^ — 从结果集中取得一行作为关联数组
mysql_fetch_field^[67]^ — 从结果集中取得列信息并作为对象返回
mysql_fetch_object^[68]^ — 从结果集中取得一行作为对象返回
mysql_fetch_row^[69]^ — 从结果集中取得一行作为枚举数组
mysql_num_rows^[70]^ — 取得结果集中行的数目
mysql_query^[71]^ — 发送一条 MySQL 查询
mysql_select_db^[72]^ — 选择 MySQL 数据库
更多请参阅: PHP 手册> 函数参考>数据库扩展>针对各数据库系统对应的扩展 >MySQL> Mysql(原始)
3.6 数组函数库
count^[73]^ — 计算数组中的单元数目,或对象中的属性个数
array_push^[74]^ — 将一个或多个单元压入数组的末尾(入栈)
array_pop^[75]^ — 弹出数组最后一个单元(出栈)
array_unique^[76]^ — 移除数组中重复的值
array_keys^[77]^ — 返回数组中部分的或所有的键名
array_search^[78]^ — 在数组中搜索给定的值,如果成功则返回首个相应的键名
explode^[79]^ — 使用一个字符串分割另一个字符串并存入数组
implode^[80]^— 将一个一维数组的值转化为字符串
arsort^[81]^ — 对数组进行逆向排序并保持索引关系
asort^[82]^ — 对数组进行排序并保持索引关系
in_array^[83]^ — 检查数组中是否存在某个值
www.dhlnw.com
rezhajuanban.com/
www.rezhajuanban.com/
glahyyb.com
www.glahyyb.com
turuiblog.com
www.turuiblog.com
styletg.com
www.styletg.com
dhlnw.com
本作品采用《CC 协议》,转载必须注明作者和本文链接