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中的加密功能
Oct 09 PHP
php实现mysql数据库备份类
Mar 20 PHP
PHP 判断变量类型实现代码
Oct 23 PHP
php 图片加水印与上传图片加水印php类
May 12 PHP
PHP迅雷、快车、旋风下载专用链转换代码
Jun 15 PHP
php set_magic_quotes_runtime() 函数过时解决方法
Jul 08 PHP
如何解决CI框架的Disallowed Key Characters错误提示
Jul 05 PHP
YII Framework框架教程之安全方案详解
Mar 14 PHP
PHP转换文本框内容为HTML格式的方法
Jul 20 PHP
PHP请求远程地址设置超时时间的解决方法
Oct 29 PHP
PDO::setAttribute讲解
Jan 29 PHP
PHP DB 数据库连接类定义与用法示例
Mar 11 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
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
2016/07/09 PHP
PHP自定义多进制的方法
2016/11/03 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
2019/04/10 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
javascript[js]获取url参数的代码
2007/10/17 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
2013/08/28 Javascript
JavaScript实现网站访问次数统计代码
2015/08/12 Javascript
学习使用bootstrap3栅格系统
2016/04/12 Javascript
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
jquery模拟多级复选框效果的简单实例
2016/06/08 Javascript
微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍
2016/10/13 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
详解Vue生命周期的示例
2017/03/10 Javascript
JS数组操作之增删改查的简单实现
2017/08/21 Javascript
Javascript之高级数组API的使用实例
2019/03/08 Javascript
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
Python3.4实现远程控制电脑开关机
2018/02/22 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
2019/02/16 Python
Flask 上传自定义头像的实例详解
2020/01/09 Python
python用opencv 图像傅里叶变换
2021/01/04 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
用纯css3和html制作泡沫对话框实现代码
2013/03/21 HTML / CSS
html5指南-1.html5全局属性(html5 global attributes)深入理解
2013/01/07 HTML / CSS
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
养殖行业的创业计划书
2014/01/05 职场文书
中药专业毕业自荐书范文
2014/02/08 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
课文《燕子》教学反思
2016/02/17 职场文书
小学一年级语文教学反思
2016/03/03 职场文书