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采集利器 Snoopy 试用心得
Jul 03 PHP
PHP include任意文件或URL介绍
Apr 29 PHP
php对称加密算法示例
May 07 PHP
PHP判断表单复选框选中状态完整例子
Jun 24 PHP
php天翼开放平台短信发送接口实现方法
Dec 22 PHP
php中使用gd库实现下载网页中所有图片
May 12 PHP
PHP flush 函数使用注意事项
Aug 26 PHP
windows7配置Nginx+php+mysql的详细教程
Sep 04 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
Jun 12 PHP
Ajax+PHP实现的模拟进度条功能示例
Feb 11 PHP
php实现简单的守护进程创建、开启与关闭操作
Aug 13 PHP
PHP强制转化的形式整理
May 22 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程序Laravel 5框架的优化技巧
2016/07/18 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
PHP实现通过strace定位故障原因的方法
2018/04/29 PHP
Yii2.0实现的批量更新及批量插入功能示例
2019/01/29 PHP
关于JavaScript与HTML的交互事件
2013/04/12 Javascript
JS 日期比较大小的简单实例
2014/01/13 Javascript
js无刷新操作table的行和列
2014/03/27 Javascript
js+csss实现的一个带复选框的下拉框
2014/09/29 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
jQuery中 attr() 方法使用小结
2015/05/03 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
jQuery移动web开发中的页面初始化与加载事件
2015/12/03 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
JavaScript实现图片切换效果
2017/08/12 Javascript
用Vue写一个分页器的示例代码
2018/04/22 Javascript
Vue.js的复用组件开发流程完整记录
2018/11/29 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
[02:38]2018年度DOTA2最佳劣单位选手-完美盛典
2018/12/17 DOTA
python通过zlib实现压缩与解压字符串的方法
2014/11/19 Python
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
python fabric实现远程部署
2017/01/05 Python
Python如何快速实现分布式任务
2017/07/06 Python
Django如何配置mysql数据库
2018/05/04 Python
Python使用matplotlib实现基础绘图功能示例
2018/07/03 Python
tensorflow实现图像的裁剪和填充方法
2018/07/27 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
2019/03/26 Python
Python字节单位转换实例
2019/12/05 Python
从python读取sql的实例方法
2020/07/21 Python
Python3爬虫RedisDump的安装步骤
2021/02/20 Python
说明书格式及范文
2014/05/07 职场文书
财务会计专业自荐书
2014/06/30 职场文书
帮一个朋友写的求职信
2014/08/09 职场文书
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle