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简单系统查询模块代码打包下载
Jun 07 PHP
10条PHP高级技巧[修正版]
Aug 02 PHP
深入PHP FTP类的详解
Jun 13 PHP
php操作xml
Oct 27 PHP
php中文字符串截取方法实例总结
Sep 30 PHP
php5.4传引用时报错问题分析
Jan 22 PHP
PHP模糊查询的实现方法(推荐)
Sep 06 PHP
php中分页及SqlHelper类用法实例
Jan 12 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
Nov 24 PHP
php实现数组中出现次数超过一半的数字的统计方法
Oct 14 PHP
php 实现银联商务H5支付的示例代码
Oct 12 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
Feb 18 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实现aes加密类分享
2014/02/16 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
2014/09/16 PHP
标准PHP的AES加密算法类
2015/03/12 PHP
PHP安全上传图片的方法
2015/03/21 PHP
PHP生成静态HTML页面最简单方法示例
2015/04/09 PHP
通过PHP简单实例介绍文件上传
2015/12/16 PHP
Yii隐藏URL中index.php的方法
2016/07/12 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
Yii2框架数据验证操作实例详解
2018/05/02 PHP
php实现分页功能的详细实例方法
2019/09/29 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
php变量与字符串的增删改查操作示例
2020/05/07 PHP
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
JavaScript通过this变量快速找出用户选中radio按钮的方法
2015/03/23 Javascript
jQuery实现隔行变色的方法分析(对比原生JS)
2016/11/18 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
vue项目搭建以及全家桶的使用详细教程(小结)
2018/12/19 Javascript
JS浏览器BOM常见操作实例详解
2020/04/27 Javascript
vue将文件/图片批量打包下载zip的教程
2020/10/21 Javascript
python 生成器生成杨辉三角的方法(必看)
2017/04/10 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
Python寻找路径和查找文件路径的示例
2019/07/10 Python
django将网络中的图片,保存成model中的ImageField的实例
2019/08/07 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
2020/02/07 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
css3实现多个元素依次显示效果
2017/12/12 HTML / CSS
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
2013/01/31 HTML / CSS
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
你的自行车健身专家:FaFit24
2016/11/16 全球购物
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
党员先进性教育整改措施
2014/09/18 职场文书
教师节祝酒词
2015/08/11 职场文书
班组长如何制订适合本班组的工作计划?
2019/07/10 职场文书
MySQL表字段数量限制及行大小限制详情
2022/07/23 MySQL