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 相关文章推荐
Zend Studio (eclipse)使用速度优化方法
Mar 23 PHP
php处理json时中文问题的解决方法
Apr 12 PHP
如何在Ubuntu下启动Apache的Rewrite功能
Jul 05 PHP
md5 16位二进制与32位字符串相互转换示例
Dec 30 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
Sep 02 PHP
php实现TCP端口检测的方法
Apr 01 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
Mar 30 PHP
WHOOPS PHP调试库的使用
Sep 29 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
Apr 20 PHP
php实现单笔转账到支付宝功能
Oct 09 PHP
PHP实现倒计时功能
Nov 16 PHP
PHP执行linux命令6个函数代码实例
Nov 24 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
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
使用YUI+Ant 实现JS CSS压缩
2014/09/02 PHP
smarty半小时快速上手入门教程
2014/10/27 PHP
js弹出确认是否删除对话框
2014/03/27 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
node.js中的fs.readdir方法使用说明
2014/12/17 Javascript
JavaScript 数组的深度复制解析
2016/11/02 Javascript
JavaScript正则替换HTML标签功能示例
2017/03/02 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
基于javaScript的this指向总结
2017/07/22 Javascript
详解Vuex管理登录状态
2017/11/13 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
2018/03/06 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
nodejs和react实现即时通讯简易聊天室功能
2019/08/21 NodeJs
Python读取Word(.docx)正文信息的方法
2018/03/15 Python
使用python实现mqtt的发布和订阅
2019/05/05 Python
python图形绘制奥运五环实例讲解
2019/09/14 Python
让你的Python代码实现类型提示功能
2019/11/19 Python
解决python彩色螺旋线绘制引发的问题
2019/11/23 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
Python Pillow(PIL)库的用法详解
2020/09/19 Python
canvas离屏技术与放大镜实现代码示例
2018/08/31 HTML / CSS
波兰补充商店:Muscle Power
2018/10/29 全球购物
会计专业职业规划:规划自我赢取未来
2014/02/12 职场文书
保密普查工作实施方案
2014/02/25 职场文书
毕业晚会主持词
2014/03/24 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
MySQL约束超详解
2021/09/04 MySQL
Java存储没有重复元素的数组
2022/04/29 Java/Android
Java死锁的排查
2022/05/11 Java/Android
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js