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 相关文章推荐
层叠菜单的动态生成
Oct 09 PHP
怎样在php中使用PDF文档功能
Oct 09 PHP
PHP获取当前url的具体方法全面解析
Nov 26 PHP
PHP中使用memcache存储session的三种配置方法
Apr 05 PHP
浅析PHP微信支付通知的处理方式
May 25 PHP
使用php的HTTP请求的库Requests实现美女图片墙
Feb 22 PHP
php轻松实现文件上传功能
Mar 03 PHP
PHP中explode函数和split函数的区别小结
Aug 24 PHP
php 生成Tab键或逗号分隔的CSV
Sep 24 PHP
Laravel使用消息队列需要注意的一些问题
Dec 13 PHP
PHP中单例模式的使用场景与使用方法讲解
Mar 18 PHP
Swoole 5将移除自动添加Event::wait()特性详解
Jul 10 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
PHP4实际应用经验篇(4)
2006/10/09 PHP
PHP 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
实现复选框全选/全不选切换
2006/12/23 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
2015/03/12 Javascript
php利用curl获取远程图片实现方法
2015/10/26 Javascript
JS设置下拉列表框当前所选值的方法
2015/12/22 Javascript
AngularJS 应用身份认证的技巧总结
2016/11/07 Javascript
如何使用headjs来管理和异步加载js
2016/11/29 Javascript
如何提高数据访问速度
2016/12/26 Javascript
手把手教你搭建ES6的开发运行环境
2017/07/11 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
2017/09/12 Javascript
浅谈Node模块系统及其模式
2017/11/17 Javascript
对于防止按钮重复点击的尝试详解
2019/04/22 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
jQuery实现日历效果
2020/09/11 jQuery
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
TensorFlow实现卷积神经网络
2018/05/24 Python
python: 判断tuple、list、dict是否为空的方法
2018/10/22 Python
Python实现字符串匹配的KMP算法
2019/04/04 Python
Python3中的bytes和str类型详解
2019/05/02 Python
python的pstuil模块使用方法总结
2019/07/26 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
python openpyxl模块的使用详解
2021/02/25 Python
CSS3 RGBA色彩模式使用实例讲解
2016/04/26 HTML / CSS
夜大毕业生自我评价分享
2013/11/10 职场文书
网络事业创业计划书范文
2014/01/09 职场文书
幼儿园中班教学反思
2014/02/10 职场文书
节水标语大全
2014/06/11 职场文书
校长四风对照检查材料
2014/09/27 职场文书
幼师小班个人总结
2015/02/12 职场文书
2015年教师学期工作总结
2015/04/30 职场文书
员工辞职信范文大全
2015/05/12 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书
Python爬虫框架之Scrapy中Spider的用法
2021/06/28 Python
详解JavaScript中Arguments对象用途
2021/08/30 Javascript