php高级编程-函数-郑阿奇

小芳吖_1811

小芳吖_1811

2016-06-13

1476人浏览

原创

1.php函数
1.用户自定义函数

复制代码 代码如下:


function 函数名字([$parameter,[,…]])
{
//函数代码
}


注意:函数名不能与系统函数或用户已经定义的函数重名。
$parameter为函数参数,函数一般可以有0个或多个参数,
2.参数的传递
参数是通过值来传递的,例如前面定义func()函数是通过变量$a和$b的值传递的。通过值传递参数不会因为函数内部参数值的变化而改变函数外部的值。

复制代码 代码如下:


function color(&$col) //定义函数color()
{
$col="yellow";
}
$blue="blue";
color($blue); //调用函数color(),参数使用变量$blue
echo $blue; //输出"yellow"
?>


3.函数变量的作用域
在主程序定义的变量和在函数中定义的变量都是局部变量。在函数中定义的变量只能在函数内部使用。在主程序中定义的变量
只能在主程序中使用,而不能在函数中使用。

复制代码 代码如下:


function sum()
{
$count=2;
}
sum();
echo $count;
?>


由于函数中的变量无法作用于函数外部,所以上面运行时出错,提示$count变量未定义。
4.函数的返回值
函数声明时,在函数代码中使用return 语句可以立即结束函数的运行,程序返回到时调用该函数的下一条语句。

复制代码 代码如下:


function my_function($a=1)
{
echo $a;
return; //结束函数的运行,下面的语句将不被运行
$a++;
echo $a;
}
my_function(); //输出1
?>


中断函数并不是return语句常用的功能,许多函数使用return语句返回一个值来与调用它们的代码进行交互。函数的返回值可以是任何类型,包括列表对象
5.函数的调用
在函数声明后可以被调用了,另外函数如果没有返回值,调用进使用函数名即可。如果函数具有返回值,则可以将函数的返回值赋给一个变量。

btpanel phpsite 宝塔面板PHP网站
btpanel phpsite 宝塔面板PHP网站

宝塔面板 PHP 网站管理:站点创建、删除、启停、PHP 版本切换、域名管理、SSL证书管理、伪静态管理、数据库管理

下载

复制代码 代码如下:


//对一个数组进行升序排序的函数my_sort()
function my_sort($array)
{
for($i=0;$i{
for($j=$i+1;$j{
if($array[$i]>$array[$j])
{
$tmp=$array[$j];
$array[$j]=$array[$i];
$array[$i]=$tmp;
}
}
}
return $array;
}
$arr=array(6,4,7,5,9,2); //未排序的数组
$sort_arr=my_sort($arr); //将排序后的数组赋给$sort_arr
foreach($sort_arr as $num)
echo $num; //输出245679
?>


6.递归函数
php支持递归函数,递归函数就是自己调用自已,可以实现循环的作用。
求10!
例如:

复制代码 代码如下:


function factorial($n)
{
if($n==0)
return 1; //如果$n为0则返回1
else
return $n*factorial($n1); //递归调用,直到$n等于0为止 }
echo factorial(10); //输出3628800
?>


使用递归一事实上要给出递归终止条件,否则函数将一直执行下去直到内存耗尽,或达到最大调用次数。
使用递归一事实上要给出递归终止条件,否则函数将一直执行下去直到内存耗尽,或达到最大调用次数。
7.变量函数
php有函数变量这个概念,在变量的后面加上一对小括号就构成一个变量函数。
$count();
8.系统函数
9.实例-设计一个计算器程序

复制代码 代码如下:




计算器程序














function cac($a, $b, $caculate) //定义cac函数,用于计算两个数的结果
{
if($caculate=="+") //如果为加法则相加
return $a+$b;
if($caculate=="-") //如果为减法则相减
return $a-$b;
if($caculate=="*") //如果为乘法则返回乘积
return $a*$b;
if($caculate=="/")
{
if($b=="0") //判断除数是否为0
echo "除数不能等于0";
else
return $a/$b; //除数不为0则相除
}
}
if(isset($_POST['ok']))
{
$number1=$_POST['number1']; //得到数1
$number2=$_POST['number2']; //得到数2
$caculate=$_POST['caculate']; //得到运算的动作
//调用is_numeric()函数判断接收到的字符串是否为数字
if(is_numeric($number1)&&is_numeric($number2))
{
//调用cac函数计算结果
$answer=cac($number1,$number2,$caculate);
echo "<script>alert('".$number1.$caculate.$number2."=".$answer."')</script>";
}
else
echo "<script>alert('&#36755;&#20837;&#30340;&#19981;&#26159;&#25968;&#23383;&#65281;')</script>";
}
?>

php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

2026.11.12

80

15

Go-Zero安装与goctl环境配置教程
Go-Zero安装与goctl环境配置教程

本专题围绕Go-Zero的安装与工具链配置展开,讲清Go版本要求、goctl安装方式、代理镜像、protoc依赖与环境变量设置,说明多版本共存、升级回退与CI流水线安装的做法,并整理安装阶段的常见报错与验证步骤。

2026.11.12

60

15

Go-Zero零基础入门教程
Go-Zero零基础入门教程

本专题整理Go-Zero的入门知识,从框架定位、环境准备到跑通第一个API服务,讲清目录分层、配置加载、日志与中间件的基本用法,并对比Gin、Kratos的差异,帮助Go开发者建立整体认知,判断它是否适合当前项目。

2026.11.12

40

15

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

140

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

120

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

120

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

100

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

80

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

100

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
墨刀帮助中心
墨刀帮助中心

共0课时 | 0人学习

MyEclipse学习中心
MyEclipse学习中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习