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 09 PHP
开发大型 PHP 项目的方法
Jan 02 PHP
PHP伪静态写法附代码
Jun 20 PHP
PHP远程连接MYSQL数据库非常慢的解决方法
Jul 05 PHP
php 远程图片保存到本地的函数类
Dec 08 PHP
php对mongodb的扩展(初出茅庐)
Nov 11 PHP
使用PHP导出Word文档的原理和实例
Oct 21 PHP
PHP 下载文件时自动添加bom头的方法实例
Jan 10 PHP
Yii Framework框架获取分类下面的所有子类方法
Jun 20 PHP
PHP在线书签系统分享
Jan 04 PHP
PHP中调用C/C++制作的动态链接库的教程
Mar 10 PHP
PHP 将dataurl转成图片image方法总结
Oct 14 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 删除cookie方法详解
2014/12/01 PHP
PHP实现转盘抽奖算法分享
2020/04/15 PHP
php实现微信支付之企业付款
2018/05/30 PHP
关于JavaScript中string 的replace
2013/04/12 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
2017/04/14 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
2018/09/26 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
vue data恢复初始化数据的实现方法
2019/10/31 Javascript
js实现有趣的倒计时效果
2021/01/19 Javascript
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
python skimage 连通性区域检测方法
2018/06/21 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
python实现将文件夹内的每张图片批量分割成多张
2019/07/22 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
python drf各类组件的用法和作用
2021/01/12 Python
EMU Australia澳大利亚官网:澳大利亚本土雪地靴品牌
2019/07/24 全球购物
什么是数据库锁?Oracle中都有哪些类型的锁?
2015/08/21 面试题
J2EE中的容器都包括哪些
2013/08/21 面试题
小学毕业感言300字
2014/02/19 职场文书
超市仓管员岗位职责
2014/04/07 职场文书
公司投资建议书
2014/05/16 职场文书
中学生关于梦想的演讲稿
2014/08/22 职场文书
单位租房协议书范本
2014/12/04 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
社会实践心得体会范文
2016/01/14 职场文书
本地通过nginx配置反向代理的全过程记录
2021/03/31 Servers
python四种出行路线规划的实现
2021/06/23 Python