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


Posted in PHP onJuly 04, 2011

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

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

注意:函数名不能与系统函数或用户已经定义的函数重名。
$parameter为函数参数,函数一般可以有0个或多个参数,
2.参数的传递
参数是通过值来传递的,例如前面定义func()函数是通过变量$a和$b的值传递的。通过值传递参数不会因为函数内部参数值的变化而改变函数外部的值。
<?php 
function color(&$col) //定义函数color() 
{ 
$col="yellow"; 
} 
$blue="blue"; 
color($blue); //调用函数color(),参数使用变量$blue 
echo $blue; //输出"yellow" 
?>

3.函数变量的作用域
在主程序定义的变量和在函数中定义的变量都是局部变量。在函数中定义的变量只能在函数内部使用。在主程序中定义的变量
只能在主程序中使用,而不能在函数中使用。
<?php 
function sum() 
{ 
$count=2; 
} 
sum(); 
echo $count; 
?>

由于函数中的变量无法作用于函数外部,所以上面运行时出错,提示$count变量未定义。
4.函数的返回值
函数声明时,在函数代码中使用return 语句可以立即结束函数的运行,程序返回到时调用该函数的下一条语句。
<?php 
function my_function($a=1) 
{ 
echo $a; 
return; //结束函数的运行,下面的语句将不被运行 
$a++; 
echo $a; 
} 
my_function(); //输出1 
?>

中断函数并不是return语句常用的功能,许多函数使用return语句返回一个值来与调用它们的代码进行交互。<FONT color=#c0504d>函数的返回值可以是任何类型,包括列表对象</FONT>
5.函数的调用
在函数声明后可以被调用了,另外函数如果没有返回值,调用进使用函数名即可。如果函数具有返回值,则可以将函数的返回值赋给一个变量。
//对一个数组进行升序排序的函数my_sort() 
function my_sort($array) 
{ 
for($i=0;$i<count($array);$i++) 
{ 
for($j=$i+1;$j<count($array);$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!
例如:
<?php 
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.实例-设计一个计算器程序
<html> 
<head> 
<title>计算器程序</title> 
</head> 
<body> 
<form method=post> 
<table> 
<tr><td><input type="text" size="4" name="number1"> 
<select name="caculate"> 
<option value="+">+ 
<option value="-">- 
<option value="*">* 
<option value="/">/ 
</select> 
<input type="text" size="4" name="number2"> 
<input type="submit" name="ok" value="计算"> 
</td> 
</tr> 
</table> 
</form> 
</body> 
</html> 
<?php 
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('输入的不是数字!')</script>"; 
} 
?>
PHP 相关文章推荐
PHP连接MySQL查询结果中文显示乱码解决方法
Oct 25 PHP
php页码形式分页函数支持静态化地址及ajax分页
Mar 28 PHP
神盾加密解密教程(三)PHP 神盾解密工具
Jun 08 PHP
php实现的CSS更新类实例
Sep 22 PHP
php之curl设置超时实例
Nov 03 PHP
PHP实现链式操作的核心思想
Jun 23 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
Mar 01 PHP
php+ajax注册实时验证功能
Jul 20 PHP
php头像上传预览实例代码
May 02 PHP
php对xml文件的增删改查操作实现方法分析
May 19 PHP
php生成条形码的图片的实例详解
Sep 13 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
Mar 25 PHP
php 日期和时间的处理-郑阿奇(续)
Jul 04 #PHP
php 目录与文件处理-郑阿奇(续)
Jul 04 #PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
Jul 04 #PHP
第4章 数据处理-php字符串的处理-郑阿奇(续)
Jul 04 #PHP
第4章 数据处理-php数组的处理-郑阿奇
Jul 04 #PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
Jul 03 #PHP
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
Jul 03 #PHP
You might like
一些PHP写的小东西
2006/12/06 PHP
最新最全PHP生成制作验证码代码详解(推荐)
2016/06/12 PHP
php英文单词统计器
2016/06/23 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
laravel 框架配置404等异常页面
2019/01/07 PHP
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
利用jQuery 实现GridView异步排序、分页的代码
2010/02/06 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
Table冻结表头示例代码
2013/08/20 Javascript
js中substr,substring,indexOf,lastIndexOf的用法小结
2013/12/27 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
原生JS+Canvas实现五子棋游戏
2020/05/28 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
2020/05/19 Javascript
pycharm+django创建一个搜索网页实例代码
2018/01/24 Python
pyqt5中QThread在使用时出现重复emit的实例
2019/06/21 Python
python不到50行代码完成了多张excel合并的实现示例
2020/05/28 Python
加拿大床上用品、家居装饰、厨房和浴室产品购物网站:Linen Chest
2018/06/05 全球购物
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
工商学院毕业生自荐信
2013/11/12 职场文书
投标邀请书范文
2014/01/31 职场文书
春季运动会广播稿大全
2014/02/19 职场文书
安全责任书范文
2014/03/12 职场文书
施工安全标语
2014/06/07 职场文书
小组口号大全
2014/06/09 职场文书
大学生活动总结模板
2014/07/02 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
党员志愿者服务倡议书
2015/04/29 职场文书
董事长年会致辞
2015/07/29 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
2021/04/13 Javascript
python scipy 稀疏矩阵的使用说明
2021/05/26 Python