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插件 HTMLPurifier HTML解析器
Jul 01 PHP
php class类的用法详细总结
Oct 17 PHP
windwos下使用php连接oracle数据库的过程分享
May 26 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
Aug 19 PHP
一个经典的PHP验证码类分享
Nov 18 PHP
PHP多线程之内部多线程实例分析
Mar 09 PHP
php统计数组元素个数的方法
Jul 02 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
May 20 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
Apr 10 PHP
php实现的顺序线性表示例
May 04 PHP
PHP rmdir()函数的用法总结
Jul 02 PHP
laravel-admin 在列表页添加自定义按钮的例子
Sep 30 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基于PDO实现功能强大的MYSQL封装类实例
2017/02/27 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
Javascript的匿名函数小结
2009/12/31 Javascript
JavaScript中的作用域链和闭包
2012/06/30 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
jQuery表格(Table)基本操作实例分析
2017/03/10 Javascript
Nodejs搭建wss服务器教程
2017/05/24 NodeJs
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
JS实现简单表格排序操作示例
2017/10/07 Javascript
浅谈Vue.js路由管理器 Vue Router
2018/08/16 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
2018/11/29 Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
2019/01/03 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
vue使用video.js进行视频播放功能
2019/07/18 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
Vue路由权限控制解析
2020/11/09 Javascript
vue浏览器返回监听的具体步骤
2021/02/03 Vue.js
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
Python中运算符&quot;==&quot;和&quot;is&quot;的详解
2016/10/08 Python
Python 性能优化技巧总结
2016/11/01 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
利用Python实现手机短信监控通知的方法
2019/07/22 Python
浅谈matplotlib.pyplot与axes的关系
2020/03/06 Python
python单例模式的应用场景实例讲解
2021/02/24 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
Sperry官网:帆船鞋创始品牌
2016/09/07 全球购物
应届生妇产科护士求职信
2013/10/27 职场文书
日语系毕业生推荐信
2013/11/11 职场文书
yy生日主持词
2014/03/20 职场文书
2015毕业寄语大全
2015/02/26 职场文书
2015年路政工作总结
2015/05/22 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
JavaScript实现登录窗体
2021/06/22 Javascript
各国货币符号大全
2022/02/17 杂记